JAVA对象和对象引用的区别

package com.company;

class tem
{
    int num;
    public void show() { System.out.println(num); }
    public  void set(int x){ num=x; }
}

public class Main
{
    public static void main(String[] args)
    {
        tem T = new tem();
        T.set(233);
        T.show();
    }
}

tem T = new tem();
在这条语句中,T是tem类对象的引用,而new tem()的结果是一个对象,这句话生成了两个量,并在两者之间产生了联系,一个对象,一个对象的应用,而对象生成后没用名称,所以我们在生成一个应用,作为对象的名字。换句话来说,new产生一个对象相当于开辟一个(对象)房间,刚开辟的房间都一样,因此我们要用门牌号(引用)来为房间命名,以此来区别和描述不同的房间。
同时,一个对象可以有多个引用,一个引用只能描述一个对象。

样例
package com.company;

class tem
{
    int num;
    public void show() { System.out.println(num); }
    public  void set(int x){ num=x; }
}

public class Main
{
    public static void main(String[] args)
    {
        tem T = new tem();
        tem T1 = new tem();
        tem T2 = T;
        T.set(1);
        T1.set(2);
        System.out.print("T1 = ");
        T1.show();
        System.out.print("T2 = ");
        T2.show();
        System.out.print("T = ");
        T.show();

        T2=T1;
        T2.set(233);

        System.out.print("T1 = ");
        T1.show();
        System.out.print("T2 = ");
        T2.show();
        System.out.print("T = ");
        T.show();
    }
}

输出
T1 = 2
T2 = 1
T = 1
T1 = 233
T2 = 233
T = 1

在这里,T1和T2是同一个对象的引用,因为当我改变T2的值的时候T1的值也被改变了,同时T的值没有被改变,也就是说此时T2不再是T的对象的引用,及表示一个引用只能指向一个对象

你可能感兴趣的:(java)