面向对象编程(四)

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)

一、方法的重载(overload)

概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。使用重载方法,可以为编程带来方便。
示例:
//返回两个整数的和
int add(int x,int y) {
return x + y;
}
//返回三个整数的和
int add(int x,int y,int z) {
return x + y + z;
}
//返回两个小数的和
double add(double x,double y) {
return x + y;
}
练习:
1) 编写程序,定义三个重载方法并调用。方法名为mOL。要求:三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main ()方法中分别用参数区别调用三个方法。
2) 定义三个重载方法max(),第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值,第三个方法求三个double值中的最大值,并分别调用三个方法。

二、可变个数的形参

JDK5.0以前:采用数组形参来定义方法,传入多个同一类型变量
如:public static void test(int a,String[] books);
JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量
如:public static void test(int a,String ... books);
说明:
1、 声明格式:方法名(参数的类型名 ... 参数名)
2、 可变参数:方法参数部分指定类型的参数个数是可变多个,0个、1个或多个
3、 可变个数形参的方法与同名的方法之间,彼此构成重载
4、 可变参数方法的使用与方法参数部分使用数组是一致的
5、 方法的参数部分有可变形参,需要放在形参声明的最后
6、 在一个方法的形参位置,最多只能声明一个可变个数形参
示例:
面向对象编程(四)
面向对象编程(四)

三、方法参数的值传递机制

方法必须由其所在类或对象调用才有意义,若方法含有参数,那么形参是方法声明时的参数,实参是方法调用时实际传给形参的参数值。
Java的实参值如何传入方法:
在Java中,方法的参数传递方式只有一种,即值传递,其将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
 形参是基本数据类型:将实参基本数据类型变量的“数据值”传递给形参
 形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参
基本数据类型的参数传递示例:
public static void main(String[] args) {
int x = 5;
System.out.println("修改之前x = " + x);// 5
// x是实参
change(x);
System.out.println("修改之后x = " + x);// 5
}

public static void change(int x) {
System.out.println("change:修改之前x = " + x);
x = 3;
System.out.println("change:修改之后x = " + x);
}
面向对象编程(四)
面向对象编程(四)
引用数据类型的参数传递
面向对象编程(四)
其中Person类定义为:
面向对象编程(四)
面向对象编程(四)
练习:
1、 阅读程序代码,写出结果
面向对象编程(四)
2、阅读程序代码,写出结果
面向对象编程(四)

四、递归(recursion)方法

定义:一个方法体内调用它自身。
说明:方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制;递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。
示例:计算1-100之间所有自然数的和
面向对象编程(四)
练习:
1、 请用Java写出递归求阶乘(n!)的算法。
2、 已知有一个数列:f(0) = 1,f(1) = 4,f(n+2)=2f(n+1) + f(n),其中n是大于0 的整数,求f(10)的值。
3、 已知一个数列:f(20) = 1,f(21) = 4,f(n+2) = 2
f(n+1)+f(n), 其中n是大于0的整数,求f(10)的值。
4、 输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值(斐波那契数列: 1 1 2 3 5 8 13 21 34 55... 规律:一个数等于前两个数之和),要求:计算斐波那契数列(Fibonacci)的第n个值,并将整个数列打印出来。

猜你喜欢

转载自blog.51cto.com/12859164/2546180