JAVA編程日誌2020/01/09

1、如果對象在堆上沒有被引用,它將變成無法存取的狀態,那麼這個對象將被拋棄且能夠做垃圾收集器(GC)

2、數組也是對象,不管裏面的是不是primitive主數據類型。數組中有個稱爲length的變量,能夠返回元素的數目。

3、JAVA是通過值傳遞的,也就是通過拷貝傳遞的。

4、如何隱藏數據?----》 使用公有和私有兩個存取修飾符。封裝的基本原則:將實例變量標記爲私有的,並提供公有的getter和setter來控制存取動作。

5、實例變量聲明在類中,局部變量聲明在方法中。實例變量如果沒有被初始化會有默認值,但是局部變量沒有默認值,如果在變量被初始化之前就要使用的話,編譯器會顯示錯誤。

6、變量的比較,即primitive主數據類型或引用的比較。。。  ==只是用來比對兩個變量的字節組合,實質所表示的意義則不重要。字節組合要麼就是想等,要麼就是不相等。

7、有這種集合,它不是數組,而是個ArrayList,它是Java函數庫中的另一個類。ArrayList只能攜帶對象而不是primitive主數據類型,但編譯器能夠自動地將primitive主數據類型包裝成Object以存放ArrayList中。

8、子類繼承父類時可以覆蓋父類的方法,也可以添加新的方法、新的實例變量。用繼承可以防止子類中出現重複的程序代碼。程序猿需要決定子類是否需要讓某項行爲有特定不同的運作方式。編程者要確定某物是否應該要繼承另一物時,則可以用IS-A測試來檢驗,繼承層次設計的好,那麼所有的子類都應該通過任何一個上層父類的IS-A測試。

9、super,可以通過super關鍵詞來取用父類。

10、父類可以通過存取權限來決定子類是否能夠繼承某些特定的成員。四種存取權限; private  default  protected  public 

11、重載的意義是兩個方法的名稱相同,但參數不同。重載的方法不是用來滿足定義在父類的多態合約,重載的方法只是剛好有相同名字的不同方法,它與繼承或多態無關,重載的方法與覆蓋的方法不一樣。重載的條件是使用不同的參數,此時返回類型可以自由地定義。

12、接口:接口是一種100%抽象的類,即無法初始化的類。

13、爲什麼要有抽象的類一些類要防止被初始化,比如:Animal對象到底應該長什麼樣子?因此Animal的類不能被new出來。通過標記類爲抽象類的,編譯器就知道不管在哪裏,這個類不能創建任何類型的實例。設計抽象的類很簡單,在類聲明前面叫上抽象類關鍵詞abstract就好。及時父類是抽象的,子類對象也可以賦值給父類的引用。

14、抽象的類代表此類必須要被extend過,抽象的方法代表此方法一定要被覆蓋過。如果聲明一個抽象的方法,就必須將類也標記爲抽象的,你不能在非抽象類中擁有抽象的方法

15、爲什麼要有抽象的方法?將可繼承的方法體(帶有內容的方法)放在父類中是個好主意。但是有時就是沒有辦法給出任何子類都有意義的共同的程序代碼。抽象的方法的意義是就算無法實現出方法的內容,但是還是可以定義出一組子類共同的協議。

16、任何從ArrayList<Object>取出的東西都會當做Object類型的引用而不管它原來是什麼,編譯器無法將此對象識別爲Object以外的事物。當你把對象裝進ArrayList<Object>時,不管它原來是什麼,你只管把它當作是Object,代表你也只會取得Object的遙控器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章