Java方法小笔记


同一类下的方法是可以互相调用的

public class Demo1 {
    public void a(){
        b();
    }
    
    public void b(){
        a();
    }
}
public class Demo1 {   
    public static void a(){
        b();
    }
    
    public static  void b(){
        a();
    }
}

但必须是两个同为静态或者非静态的方法才可以

因为静态的方法是和类一起加载的,而非静态的方法是在类实例化之后才加载的

public static void main(String[] args){
        
        int a=1;
        System.out.println(a);//1
        change(a);
        System.out.println(a);//1
        
        
    }
    
    public static void change(int a){
        a = 10;
    }

Java是值传递,上面的a传给了change()但是change()并没有返回值,所以a还是1

public class Student {
    public static void main(String[] args){
        Person person = new Person();
        System.out.println(person.name);//null
        person.change(person);
        System.out.println(person.name);//zhan
    }
    
    
    public void say(){
        System.out.print("学生说话了");
    }
}

class Person{
    String name;
    
    public void change(Person person){
        person.name = "zhan";
    }
}

那为什么这个能改成功呢,因为

 person.change(person);改的不是main里面的值,person是一个对象,他指向的是一个类Person person = new Person();