java Day004 笔记

方法


一.方法的概括

1.方法定义: 

指的就是能完成特定功能的代码段. 例如: main println print nextInt每个方法都能完成特定的工程, main: 程序的入口, println 带有换行的输出 print不带换行的输出  nextInt接受用户从控制台录入的整数.

2.方法用途

如果某段代码(某个功能)经常被使用, 每次用都要写一遍,做的都是重复(类似)的操作, 为了简化程序的设计难度, 使用一个大括号,把这段代码包裹起来, 然后取一个名字, 将来要使用这段代码的时候,直接使用这个名字就可以访问这段代码.

3.方法的好处:

1.提高了代码的复用性

2.提高了代码的封装性, 别人在使用方法是不能直接看到内部的实现,他只需要会调用即可.也能提高程序的安全性.

3.简化了程序的设计难度


二. 方法的定义

1. 方法的定义的格式

修饰符 返回值类型 方法名(参数列表 ) {

          方法体;

}

2. 方法格式的说明:

修饰符:

用来修饰方法访问权限, 目前全部都用: public static

返回值类型:

方法都具有一定的功能, 有可能会有一些数据产生, 就需要将数据返回给方法的调用者. 定义方法时需要告诉方法的调用者,应该使用什么样的数据类型接收方法产生的数据.  简单说: 返回值类型就是方法内部产生数据的数据类型. 注意:没有数据产生这里写: void (空)  例如:  int nextInt() 告诉调用者使用int类型变量接受返回的数据

方法名:

就是给封装的代码段起的名字,小驼峰命名法,见名知意即可.例如: getMaxOfTwo

参数列表:

这段代码要完成功能时,可能会需要一些数据, 这些数据就需要通过参数列表传入到方法的内部. 需要告诉调用者你要传入什么类型数据. 

参数列表的书写格式 (数据类型1  参数名1,  数据类型2 参数名2, ...) 这样调用者就知道要传入什么类型数据,以及传入几个数据.

例如: public static void chu(int a, int b)  我这方法需要要除法的运算, 需要外界把做除法运算的被除数和除数传入到方法内容,就在参数列表中,声明这个 参数,告诉调用者要传入两个int类型数据进来.

    如果一个方法不需要外界传入数据, 参数列表就只写一个小括号: 比如public static void printStarRect()

方法体:

能完成特定功能的代码段

如果方法内部有数据产生, 需要使用return(返回)关键字, 把方法内部产生的数据返回给调用者.

return 数据;

只要方法的返回值类型不是void.就必须写return,把要返回的数据跟到后面.


三. 方法的调用

1. 方法不调用是不会执行的

2.  方法调用的格式:  

方法名(实际参数)

实际参数: 就是让方法执行,真实传入的数据

3. 方法调用的其他形式

  1. 直接调用  

使用没有返回值产生的方法  方法名(实际参数);

2. 赋值调用  

必须是有返回值产生的方式,  数据类型 变量名 = 方法名(实际参数);

3. 打印(输出)调用 

必须是有返回值产生的方法

System.out.println(方法名(实际参数));


四.方法根据是否有返回值是否有参数的分类

1.无参数无返回值 -->无参无返

修饰符 void 方法名() {

    方法体;

}

2.无参数有返回值 --> 无参有返

修饰符 数据类型 方法名() {

    方法体;

      return 数据;

}

3.有参数无返回值 --> 有参无返

修饰符  void 方法名(数据类型1 参数名1, 数据类型2 参数名2,....) {

        方法体;

}

4.有参数有返回值 -->有参有返

修饰符 数据类型 方法名(数据类型1 参数名1, 数据类型2 参数名2,....) {

    方法体;

    return 数据;

}


五. 方法使用的注意事项

1. 方法定义的注意事项

1. 方法是不能嵌套定义的, 方法必须定义一个类后面的大括号中

  2. 方法定义先后是没有区别的

  3. 方法之间是平级的关系,没有优先级

2. 方法的调用:

1. 方法是可以嵌套调用的, 就是在一个方法中调用其他方法

2. 甚至一个方法可以自己调用自己, 这种现象叫做递归调用, 递归有风险, 效率极低(实际开发中基本不用)

3. 方法参数注意事项

1.定义方法的时候,叫做形式参数 (形参), 形参的书写格式 (数据类型  参数名, 数据类型  参数名, ...)  每个参数名前都要数据类型, 每定义完一个后要加逗号, 如果是最后一个就不加,

形参的作用: 告诉调用者需要什么类型数据以及的数据的个数.

2.调用方法的时候, 叫做实际参数(实参), 就是真正参与执行的数据,

1 )实参不要数据类型(直接常量, 变量名 )

2 )实参的数据类型一定要形参的数据类型一致(形参式类型,实参可以是小类型)   

3 )实参的个数一定要形参的个数一致

4 )实参的顺序一定要形参的顺序一致

4. return语句

1. 第一个作用,就是把有返回值的方法中产生的数据返回给调用者  return 数据;

2. 如果一个方法的返回值类型不是void, 那么就必须提供return语句.

3. 第二个作用, 可以提前结束一个方法, 一般用来结束返回值为void的方法.

4. 一个方法如果没有数据产生,也可以写return关键字, 但是必须写为: return; 表示提前结束方法

5. return语句之后不要在写代码了,方法执行时执行完return方法就结束,因为那段代码不能执行到,编译会报错.


方法的重载

1. 重载:  Overload

2. 方法的重载概念:

在同一个类中, 方法名相同,但是参数列表不同,与返回值类型无关, 这样多个方法之间的关系就是重载.

3. 概念的说明:

1. 在同一个类中: 

必须是写在一个类中的方法, 不同类的中是不可能发生重载的.

2. 方法名相同: 

方法名要一模一样

3. 参数列表不同: 

参数的类型不同, 参数的个数, 参数的顺序不同. 与参数的名字没有关系. 

4. 与返回值类型无关:  

即使返回值类型不同, 也不算重载, 这叫做方法重复.

4. 方法重载的好处

如果没有方法的重载, 咱们有很多个相同逻辑的代码段(方法),就需要为这多个相同逻辑的代码段取多个名字, 对于方法定义这来说,取名就是一个很重的负担. 同样对于方法的调用者来说也是一种负担,因为要记忆大量的名字.

有了重载之后,同一个类中相同逻辑的代码段,就可以只取一个名字, 定义方法的人工作量减轻了,调用者只需要记忆一个名字,就能访问多个相同逻辑的方法.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。