面向对象的方法的设计
方法引入:(Method)
循环语句(while ,do while,for)
循环操作目的(本质):解决代码重复的问题,条件(重复做某一件事情或者有一定规律的语句相同的问题)。
但是可以解决所有代码重复的问题吗?
答案肯定是不能的。
DRY原则:Don't Repeat Yourself(不要重复你自己的代码)。原因:意味着维护成本的增大。
需要方法的出现,把相同的代码片段放入一个方法中,在后期的使用中只需要调用就oK,在java中最小的程序单元是类,方法定义在类中。
方法的格式: 【修饰符】 【返回值类型】【方法名称】(形式参数){ 【方法体】; }
方法必须调用才会生效。当用stack修饰时,类名.方法名(参数);当没有用stack修饰时,对象.方法名(实参);就可以使用。
变量名,方法名命名:
- 首字母小写,
- 多个单词组成时,使用驼峰式
- 见名知意(不管是变量,方法名,形参等都要见名知意)
参数列表:参数的类型+参数的个数+参数的顺序
返回值:无返回值void , return 结束当前方法,返回结果值。
一、如何来设计方法?
- 定义什么样功能的方法?
- 返回值应该是什么类型?
- 需不需要参数,需要几个参数,类型是什么?
根据调用者的需要,要完成什么样的操作,以动词作为方法名(做到见名知意)
返回值根据调用者所需要的类型来确定。(对象,集合,基础类型)
该方法在完成的过程中,是否有未知的因素参与,如果有把它作为参数,没有则没有参数
二、方法的执行流程:
jvm --> main --> 代码逐行执行(方法的调用,传入实参,继续执行)
三、方法的重载设计:(overload)
定义:在同一个类中,某一个方法存在一个以上的同名方法、只要它的参数列表不同即可。
public class Dome{
public String Method( String a ){
}
public int Method( int a , int b){
}
}
调用时编译器根据传入的参数类型个数等,自己去寻找调用的是哪一个方法
eg:System.out.println();方法可以打印任意类型的参数,原因就是此方法发生的重载,有各种类型的参数。
四、方法的递归(方法自己调自己)
斐波纳契数列:F(0)=0,F(1)=1,...... F(n)=F(n-1)+(n-2)
//斐波纳契数列
static int fn(int n){
if(n==0){
return 0;
}else if(n==1){
return 1;
}else{
return fn(n-1)+fn(n-2);
}
}
浙公网安备 33010602011771号