一、什么是方法(method、函数):
- 方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中 也称为函数或过程。
- 将功能封装为方法的目的是,可以实现代码重用,简化代码 。
- Java里的方法不能独立存在,所有的方法必须定义在类里。
方法的声明格式:
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){ 方法体程序代码 return 返回值; } 其中: 修饰符:public,缺省,private, protected等
返回值类型:
- 一个方法最多有一个返回值 [思考,如何返回多个结果 返回数组 ]
- 返回类型可以为任意类型,包含基本类型或引用类型(数组,对象)
- 如果方法要求有返回数据类型,则方法体中最后的执行语句必须为 return 值; 而且要求返回值类型必须和 return 的 值类型一致或兼容
- 如果方法是 void,则方法体中可以没有 return 语句,或者 只写 return ;
方法名 :
遵循驼峰命名法,最好见名知义,表达出该功能的意思即可。
形参列表:
- 一个方法可以有0个参数也可以有多个参数,中间用逗号隔开。比如getSum(int n1,int n2)。
- 参数类型可以是任意类型。
- 调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数。
- 方法定义时的参数称为形式参数(形参),方法调用时传入的参数称为实际参数(实参)。实参和形参的类型要一致或兼容、个数和顺序必须一致
举个栗子:**
public class Test{ public static void main(String[] args){ Person person = new Person(); person.speak();//调用方法 } } class Person{ String name;//属性 int age;
public void speak(){
System.out.println("我是个java实习生");
}
}
从中可以看出来成员方法的好处:
- 提高代码的复用性
- 可以将实现的细节封装起来,然后供其他用户来调用即可
二、方法参数的值传递机制
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); }
引用数据类型的参数传递: public static void main(String[] args) { Person obj = new Person(); obj.age = 5; System.out.println("修改之前age = " + obj.age);// 5 // x是实参 change(obj); System.out.println("修改之后age = " + obj.age);// 3 } public static void change(Person obj) { System.out.println("change:修改之前age = " + obj.age); obj.age = 3; System.out.println("change:修改之后age = " + obj.age); }
结论:
基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参。
引用类型,传递的是地址,可以通过形参来影响实参。