java类和对象实例对象_Java类、对象和实例的理解
最近在看Python,這門面向對象的語言又引起了類的引用、對象和實例這些概念之間的糾結,我按照自己的理解總結了一下Java里三者的關系,如果有不對的地方還希望大家指出。
類的引用和對象的概念沒什么好弄混的,但是對象和實例之間的區別讓人疑惑,在《Thinking in Java》一書里提到:“每個對象都是某個類(class)的一個實例,這里類就是類型的意思”。很多地方提到對象和實例就是一個東西,在我理解看來,這種說法不準確,更準確的理解是實例表示的是對象和類的關系。
很多地方都拿這個例子做比方:
Person person=new Person();
這里new Person()新建了一個Person對象,而person則是一個指向Person對象的引用,這個Person對象就是Person類的一個實例,于是認為實例和對象是一樣的概念,在這里,這樣的理解是沒有問題的,但是如果出現了多態呢?就像下面的代碼所示:
//Child extends Person
Person person = new Child();
按照《Thinking in Java》里的說法,new Child()新建了一個Child對象,person是指向這個Child對象的引用,而這個Child對象應該是Person類的一個實例。這樣的話,實例就展示了對象和類之間的關系。
在我看來,實例是對象實例化后的結果,new Child()這個實例化過程顯然并沒有將Child類的所有函數實例化,因為person是無法調用Child類獨有的方法的,所以只是部分實例化,這也表現了實例和對象之間的區別。再舉個例子:動物下有狗這種子類,狗有一個對象叫做小汪,小汪也是動物的一個實例,關鍵是你怎么給小汪劃分類型了。
其實學語言沒必要糾結這些名詞之間的差異的,有些名詞的迷惑都是翻譯的鍋,但是有時候有些地方的描述讓人不得不理一下名詞之間的區別,這里只是個人看法,大家覺得這樣理解沒問題就這樣理解吧。
總結
以上是生活随笔為你收集整理的java类和对象实例对象_Java类、对象和实例的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java线程方法_Java线程的三种方式
- 下一篇: Java建造圆判断是否在园内_java