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
再从头
文章目录