JAVA 中一些常常混淆的概念 (整理)
阿新 • • 發佈:2019-02-12
Person
person;
person
= new Person( "張三" );
|
這兩行程式碼實現的功能和上面的一行程式碼是完全一樣的。大家都知道,在Java中new是用來在堆上建立物件用的,如果person是一個物件的話,那麼第二行為何還要通過new來建立物件呢?由此可見,person並不是所建立的物件,是什麼?上面的一段話說的很清楚,“操縱的識別符號實際是指向一個物件的引用”,也就是說person是一個引用,是指向一個可以指向Person類的物件的引用。真正建立物件的語句是右邊的new Person("張三");
再看一個例子:
1
2
3 |
Person
person;
person
= new Person( "張三" );
person
= new Person( "李四" );
|
這裡讓person先指向了“張三”這個物件,然後又指向了“李四”這個物件。也就是說,Person person,這句話只是聲明瞭一個Person類的引用,它可以指向任何Person類的例項。這個道理就和下面這段程式碼一樣:
1 2 3 |
int a;
a= 2 ;
a= 3 ;
|
這裡先聲明瞭一個int型別的變數a,先對a賦值為2,後面又賦值為3.也就是說int型別的變數a,可以讓它的值為2,也可以為3,只要是合法的int型別的數值即可。
1 2 |
Person
person1 = new Person( "張三" );
Person
person2 = person1;
|
person1和person2都指向了“張三”這個物件。