Person p = new Person();
new Person();這句話中new Person;是在創建對象;()只是在創建對象時附帶的調用構造;這樣理解對嗎;對象是真實存在的;話雖然那么說new了一個對象;那是實例化的一個過程;過程完了之后那個對象的實例又在哪呢;
Person p 是申明一個引用;引用就是個指針;我隨意申明個指針指向對象也可以的.可是不行;為什么?
Person 準確的說是自己創的抽象的數據類型;而不是抽象類;對吧!
10 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
你問題問的很混亂...
- Person 準確的說是自己創的抽象的數據類型;而不是抽象類.這句話前面是對的;Person是你自定義的類,類可以看作一種數據類型;但后面這句,你扯出了另外一個概念(可能你是無意的),抽象類是不能實例化的(不能new)。
- Person p 是申明一個引用;引用就是個指針;我隨意申明個指針指向對象也可以的.這句話也沒錯。可是不行,為什么? 因為p聲明的是Person類型,只限于指向Person及其子孫類。就像int i= 5;可以i=1;i=2;但不可以i="hello world".
- new Person(),這個地方不知道你看什么書看來的,我是沒見過new Person和()分開說的。這個地方就是對象正式開始實例化了。這句話執行完就意味著內存的某個地方有一個實實在在的Person對象(對象就是實例),它有具體的名字、年齡...這些屬性,也有say“你好”...這些方法(賦予它姓名、年齡、say“你好”等等這些都是 new 構造函數的作用,但賦予它姓名屬性不代表賦予了它姓名,有可能這個階段還沒有給它起具體的名字)。

繁花如伊
TA貢獻2012條經驗 獲得超12個贊
@小梁丶: 剛入你要學的不是這個..是語法.
你先把語法學會了.再來想這些.
比如:基類的泛型靜態成員.在不同的泛型實現中.是不是不同的成員?
想學內存中的具體實現.就去從C/c++開始學.
添加回答
舉報
0/150
提交
取消