方法的定义:
- 方法是类或对象的行为特征的抽象。
- Java中的方法不能独立存在,所有的方法必须定义在类中。
- 使用 “类名.方法” 或 “对象.方法” 的形式调用。
- 语法格式:
权限修饰符 返回值类型 方法名(参数类型 参数名) {
// 方法体
// 返回值
}
方法分类:
- 无参数无返回值
- 有参数无返回值
- 无参数有返回值
- 有参数有返回值
public class Method { public void aMethod() { System.out.println("无参数无返回值的方法"); } public void bMethod(int b) { System.out.println("有参数无返回值的方法"); } public int cMethod() { System.out.println("无参数有返回值的方法"); return 10; } public int dMethod(int d) { System.out.println("有参数有返回值的方法"); return d; } public static void main(String[] args) { int ret;
// 创建Method类的对象 Method md = new Method();
// 通过对象.方法调用 md.aMethod(); md.bMethod(10); ret = md.cMethod(); ret = md.dMethod(10); System.out.println(ret); } }
方法的参数:
方法可以没有参数,或者有多个参数,参数类型可以是任意类型
方法参数也是局部变量
参数为引用数据类型时:
当对象实例作为参数传递给方法时,传递的是对象的引用,为地址传递,接受参数的方法可以改变参数的值。
参数为简单数据类型时:
传递的是参数的副本,为值传递,接受参数的方法中不会改变参数的值。
public class MethodParam { /** * 方法的参数为基本数据类型时,传递的是值的副本(值拷贝) * 方法中不会改变元参数的值 */ public void swap(int a, int b) {//a, b为形参 int tmp; tmp = a; a = b; b = tmp; } int x = 100, y = 200; /** * 方法的参数为引用数据类型时,传递的对象的引用(传地址) * 方法中可以改变参数的值 */ public void swap2(MethodParam mp) { int tmp = mp.x; mp.x = mp.y; mp.y = tmp; } public static void main(String[] args) { MethodParam mp = new MethodParam(); int m = 10, n = 20; System.out.println("交换前:a = "+m+",b = "+n); mp.swap(m, n);// m,n为实参 System.out.println("交换后:a = "+m+",b = "+n); System.out.println("交换前:x = "+mp.x+",y = "+mp.y); mp.swap2(mp); System.out.println("交换后:x = "+mp.x+",y = "+mp.y); } }