Java方法调用的回顾,值传递,引用传递的解读

Java方法调用的回顾

package oop;

public class Demo02 {

   public static void main(String[] args) {
       //静态方法 用static修饰
       Student.say();//直接调用
       //非静态方法
       //类名 对象名     对象值
       Student student = new Student();
       student.criticism();//调用类里面的方法
       //非静态方法的调用
       int add = new Demo02().add(2, 3);
       //形参与实参的类型要保持一致
       System.out.println(add);

  }
   public  static void a(){
       //b();//静态方法不能调用非静态方法



  }
   public  void b(){
       a();//非静态方法可以调用静态方法

  }
   public int add(int a,int b ){
       return a+b;
  }
}

值传递

package oop;

public class Demo03 {
   //值传递 java为值传递
   public static void main(String[] args) {
       int a = 1;
       System.out.println(a);//1
       Demo03.change(a);
       System.out.println(a);//1
       /*
       change没有返回值
        */

  }
   public static void change(int a ){
       a = 10;
  }
}

 

引用传递

package oop;

public class Demo04 {
   public static void main(String[] args) {
       //引用传递,传递对象,本质还是值传递
       Person person = new Person();
       System.out.println(person.name);//null
       Demo04.change(person);
       System.out.println(person.name);//我已经被赋值了

  }
   public static void change(Person person){
       //注意虽然没有返回值但是改变的是对象的值
       person.name="我已经被赋值了";
  }
}
class Person{
   String name;//没有赋值,返回值为null
}

 

posted @ 2021-03-11 20:05  默默努力的路人甲  阅读(41)  评论(0)    收藏  举报