Java对象引用

Java对象引用

对象引用

public class Dog {
    String name;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Dog dog1 = new Dog();
        dog1.bark();
        dog1.name = "Bart";

        //创建Dog数组
        Dog[] myDogs = new Dog[3];

        myDogs[0] = new Dog();
        myDogs[1] = new Dog();
        myDogs[2] = dog1;

        myDogs[0].name = "Fred";
        myDogs[1].name = "Marge";

        System.out.print("Last dog's name is ");
        System.out.println(myDogs[2].name);

        int x = 0;
        while (x < myDogs.length) {
            myDogs[x].bark();
            x = x + 1;
        }

        dog1.name = "Bob";
        dog1.bark();
        myDogs[2].bark();

    }

    public void bark() {
        System.out.println(name + " says ruff!");
    }

}    

程序运行结果:
运行结果

  • 对象引用类似于指针,声明的类型不可改变;
  • myDogs[2] = dog1;两个变量指向同一个Dog对象,改变其中一个,另一个的值也会变