杰神之Java函数的封装与重载
2018-01-02 20:27
176 查看
函数
函数的基本概念和重载函数
什么是函数?函数是封装了特定功能的代码块
函数的好处
方便使用,减少重复代码的书写
函数的写法:
关键字(public static等) 返回值类型 函数名(参数类型 参数1,参数类型 参数2,...){ 函数中的语句1; 语句2; //return后面 返回的返回值 要跟函数的 返回值类型 对应 return 返回值 }
函数的书写位置
在类中书写
函数的分类:
1.无参数 无返回值的 函数
2.有参数 有返回值的 函数
3.有参数 无返回值的 函数
4.无参数 有返回值的 函数
函数的调用
使用 函数名(传入的参数);
编写函数的步骤:
1.确定函数有没有返回值 (我接下来是否要使用这个返回值)
2.确定函数有没有参数 有的话是几个 都是什么类型
3.写函数中的语句
函数的重载:
实现相同的功能,但是函数的内部实现不同。函数的重载是函数名字相同,并且只跟参数有关(参数的类型 参数的顺序 参数的个数有关),跟参数的返回值和参数名无关。
函数的重载有什么用?
只需记住一个函数名可以根据不同情况使用不同的功能
实例
需求:
计算两个数的最大值
计算三个数的最大值
计算四个数的最大值
计算五个数的最大值
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(max(1, 2,3,4,5)); } public static int max(int a,int b) { int max = Math.max(a, b); return max ; } public static int max(int a,int b,int c) { int max = max(max(a, c), b); return max ; } public static int max(int a,int b,int c,int d) { int max = max(max(a,b,c), d); return max ; } public static int max(int a,int b,int c,int d,int e) { int max = max(max(a, b, c, d), e); return max ; } //输出结果为:5
递归原理
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。* 递归的三个条件:
1.边界条件
2.递归前进段
3.递归返回段
当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
下面通过一个示例程序的两种方法来说明:
使用Java代码阶乘。(n的阶乘=n * (n-1) * …* 5 * 4 * 3 * 2 * 1)
public static void main(String[] args) { System.out.println(fun(5)); System.out.println(fun1(5)); } //递归 public static int fun(int i) { if (i == 1) { return 1; //递归的出口,没有出口相当于死循环 }else return i*fun(--i); } //累加思想 public static int fun1(int j ) { int num = 1; for(int i = 1;i <= j ;i++) num = num * i; return num; } //输出结果为: 120 120
分析
此题中,按照递归的三个条件来分析:
(1)边界条件:阶乘,乘到最后一个数,即1的时候,返回1,程序执行到底;
(2)递归前进段:当前的参数不等于1的时候,继续调用自身;
(3)递归返回段:从最大的数开始乘,如果当前参数是5,那么就是5*4,即5*(5-1),即n*(n-1)
相关文章推荐
- Java中函数的重载和重写
- JAVA - 函数重载和重写
- 黑马程序员--java入门之函数重载
- 杰神之JAVA数组常用的函数方法和排序法(冒泡 选择)
- Java中面向对象的封装,继承,重载重写
- 黑马程序员Java基础__函数的应用及重载
- 黑马程序员----java基础语法笔记(函数、重载、数组)(下)
- javascript的函数没有java的重载功能
- Java学习笔记 Day04 (for循环嵌套、函数以及函数重载、数组)
- JAVA 中的 函数重载例子
- Java中对象的初始化与函数重载1
- java函数的重载
- JAVA基础day03 循环 函数运用及函数的重载
- Java自学笔记(第三天)-while循环-do while循环-for循环-函数-函数重载
- java/构造函数,函数的重载,this的运用,构造函数的重载,静态函数,静态初始化,import,对象的继承,
- java函数重载和函数重写
- C++和Java在 子类继承父类时,两者成员函数重写和重载的特性
- java封装多态与重载
- java封装 继承 多态 重写 重载
- Java基础-->函数的重载以及构造函数