面向对象的方法的设计

方法引入:(Method) 

循环语句(while ,do while,for)

循环操作目的(本质):解决代码重复的问题,条件(重复做某一件事情或者有一定规律的语句相同的问题)。

但是可以解决所有代码重复的问题吗?

答案肯定是不能的。

DRY原则:Don't Repeat Yourself(不要重复你自己的代码)。原因:意味着维护成本的增大。

需要方法的出现,把相同的代码片段放入一个方法中,在后期的使用中只需要调用就oK,在java中最小的程序单元是类,方法定义在类中。

方法的格式: 【修饰符】 【返回值类型】【方法名称】(形式参数){   【方法体】;  }

方法必须调用才会生效。当用stack修饰时,类名.方法名(参数);当没有用stack修饰时,对象.方法名(实参);就可以使用。

变量名,方法名命名:

  1. 首字母小写,
  2. 多个单词组成时,使用驼峰式
  3. 见名知意(不管是变量,方法名,形参等都要见名知意)  

参数列表:参数的类型+参数的个数+参数的顺序

返回值:无返回值void , return 结束当前方法,返回结果值。

一、如何来设计方法?

  1. 定义什么样功能的方法?
  2. 返回值应该是什么类型?
  3. 需不需要参数,需要几个参数,类型是什么?

根据调用者的需要,要完成什么样的操作,以动词作为方法名(做到见名知意

返回值根据调用者所需要的类型来确定。(对象,集合,基础类型)

该方法在完成的过程中,是否有未知的因素参与,如果有把它作为参数,没有则没有参数

二、方法的执行流程:

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);
  }
}

 

posted on 2018-03-05 18:48  曾经的一去不返  阅读(177)  评论(0)    收藏  举报

导航