1. 什么是方法
方法一系列Java语句按照一定逻辑关系的组合,这个Java语句的组合可以执行来完成一个功能。
2. 方法的五大组成部分
访问修饰符(public/protected/private)、返回值类型(void/String等)、方法名、参数列表、方法体。
3. 方法的命名规则
驼峰式——第一个单词全字母小写,从第二个字母开始,每个单词首字母大写,其余字母小写。
4. 方法的调用
① 类的内部调用;② 在别的类中创建该类的对象,在别的类中通过对象来调用该类的方法。
5. 方法传值与传引用
形参是复制实参的一份拷贝(对于引用类型则是复制引用的拷贝,而且是在栈中的拷贝),所以在函数中改变形参是无法改变实参的值的,改变引用只是将形参所代表的引用指向另外的新的对象,而实参的引用还指向原来的对象,改变形参引用的成员的值当然会影响实参引用成员的值,因为它们的引用都指向同一个对象。(来源:Java中的传值与传引用)
6. 方法重载
重载(overload, PS:override是重写)是Java方法的一个重要特性,重载只要求两个方法的参数列表不同即可(甚至是参数列表里的参数顺序不同也行,但强烈不建议),访问修饰符、返回值类型、方法名完全相同都可以。
重载(overloading) 是在一个类里,访问权限、返回值类型可以相同也可以不同,方法名字必须相同,参数必须不同。因此每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常见的方法重载就是构造方法的重载。
重载原则
- 被重载的方法必须改变参数列表(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
(来源:方法的重写与重载:菜鸟教程)
7. 变量的作用域
这里涉及到变量的类型。Java中的变量分为局部变量和实例变量。局部变量声明在方法体(一般方法和构造方法)/语句块内,而实例变量则声明在类中,是在方法体和语句块外。局部变量仅在声明的代码块(即方法体或语句块)内有效,而实例变量则在整个类的内部(包括所有的方法和语句块)有效。
8. 特殊参数——可变长参数
特定的参数类型后加“…”即可,如:public static void printMax( double... numbers)。这里的numbers就是可变长参数,可以将其视为一个参数列表(数组),可用循环将所有参数值获取出来。
注意:可变长参数只能放在参数列表的最后面,而且一个方法只能有一个可变长参数。
9. 特殊的方法——构造方法
特点:方法名与类名完全相同(包括第一个字母大写),没有返回值类型,访问修饰符一般为public(特殊情况除外,比如单例模式中),不能有return语句。
作用:当使用该类来创建一个对象时,构造方法用来初始化该类的对象。
当一个类没有自定义构造方法时,Java会默认创建一个空的无参构造方法。如果有了自定义构造方法,则默认的无参构造方法就无效了,若此时需要无参构造方法,则需要自己重写。
10. 特殊的方法——finalize()方法
finalize()方法用于手动清除不再使用的对象,一般定义为protected,详细的finalize()方法理解见:Java finalize()方法使用