1. 方法的调用
方法分静态方法与动态方法
- 静态方法:通过
类名.方法()
调用,也可以用对象.方法()
调用,- 非静态方法:通过
new 类名().方法()
调用,也就是实例化后调用。示例:
package com.zctou.oop; public class Demo01 { public static void main(String[] args) { //方法的两种调用方法 //1.静态方法 Class名.方法()调用 Student.say("Static Method!!"); //2.非静态方法 new个对象再调用 Student student = new Student(); student.say(); //new的对象也可以使用静态方法 student.say("new个对象再调用:"); } } //===================================
输出:
Static Method!! 学生说话了 学生说话了 new个对象再调用: 学生说话了
2. 方法中的形参和实参
package com.zctou.oop;
public class Demo02 {
public static void main(String[] args) {
//形参与实参
int result = add(1, 2); //传进方法的是实参
System.out.println(result);
}
public static int add(int a,int b){ //方法定义的是形参
return a+b;
}
}
3. Java的值传递和引用传递
3.1 值传递示例:
package com.zctou.oop; public class Demo03 { //值传递演示 public static void main(String[] args) { int a = 1; System.out.println(a); //1 change(a); //调用方法change,但没返回值 System.out.println(a); //1 } public static void change(int a) { a = 10 ; } }
输出:
1 1
add()方法没有返回值,也就没有传递方法里改过的a=10
,所以输出的还是方法外的a=1
。
#### 3.2 引用传递
package com.zctou.oop; public class Demo04 { public static void main(String[] args) { //引用传递演示 //引用传递的本质还是值传递 Person person = new Person(); System.out.println(person.name); //null new Demo04().change(person); System.out.println(person.name); //再生头 } public void change(Person person) { person.name = "再从头"; } } class Person { String name; }
输出:
null 再从头