J2SE学习笔记
如何學習Java
一、面向對象設計思想
1.面向對象:開車去新疆,車怎么去的我不管,我只調用車的go() 方法即可。
2.類和對象:類可以看成一類對象的模板,對象可以看成該類的一個具體實例。
3.類和類之間的關系:繼承關系,Java只支持單繼承;聚合關系(整體和部分,球員和球隊);實現關系
4.對象是Java程序的核心,在Java程序中“”萬事萬物皆對象“”。對象可以看成成員變量和方法的封裝體。
5.類的主要有定義有兩方面組成:成員變量和方法。
6.變量:需要先聲明再賦值,然后才能使用。
- 成員變量可以使用Java語言中的任何一種數據類型。(包括基本類型和引用類型)
- 在定義成員變量時可以對其初始化,如果不對其初始化,Java使用默認的值對其初始化。p.s.局部變量不會幫你初始化。
- 成員變量的作用范圍為整個類體
7.引用: 【一小塊內存——> 一大塊內存】
- Java語言中除了基本的8種類型之外,變量類型都稱之為引用類型。
- Java種的對象是通過引用對其操作的。 引用類型內存分析:
8.如何在內存中區分類和對象:
- 類是靜態的概念,存放在代碼區;
- 對象是new出來的,位于堆內存,類的每個成員變量在不同的對象中有不同的值(除了靜態變量)。而方法只有一份,執行的時候才占用內存。
9.對象的創建和使用:
- 必須使用new關鍵字創建對象。
- 使用對象(引用) 。成員變量 來引用對象的成員變量
- 使用對象(引用) 。方法(參數列表)來調用對象的方法。
- 同一類的每個對象有不同的成員變量存儲空間。
- 同一類的每個對象共享該類的方法。非靜態方法是針對每個對象進行調用。只要不是靜態方法,就必須要new一個對象,然后才能調用。
10.類和對象的關系 【理解了內存,理解了一切】
11.構造方法(構造函數)
- 使用new+構造方法,創建一個新的對象。
- 構造函數是定義在Java類中的一個用來初始化對象的函數。
- 構造函數與類同名且沒有返回值。
- 當沒有指定構造函數時,編譯器為類自動添加形如 類名(){ } 的構造函數。
12.約定俗成的命名規則:類名首字母大寫;變量名和方法名的首字母小寫;運用駝駝峰標識。
13.方法重載:一個類中可以定義有相同的名字,但參數不同的多個方法。調用時,會根據不同的參數表選擇對應的方法。 p.s. 構造方法也可以構成重載。
14.this關鍵字 【指向當前對象的引用】
- 在類的方法定義中使用的this關鍵字代表使用該方法的對象的引用。
- 當必須指出當前使用方法的對象是誰時要使用this。如:this.x = x;
- 有時使用this可以處理方法中成員變量和參數重名的情況。
- this可以看作是一個變量,它的值是當前對象的引用。
p.s. 當不知道一個變量是誰的變量時,找最近的那個聲明變量的。
15.static關鍵字
- 在類中,用static聲明的成員變量為靜態成員變量,它為該類的公用變量,在第一次使用時被初始化。對于該類的所有對象來說,static成員變量只有一份。 靜態變量存放在內存中的data seg 數據區。
- 用static聲明的方法為靜態方法,在調用該方法時,不會將對象的引用傳遞給它,所以在static方法中不可訪問非static的成員。p.s. 靜態方法不再是針對某個對象調用,所以不能訪問非靜態成員。
- 可以通過對象引用或類名(不需要實例化)訪問靜態成員。
16.package和import語句
- 為便于管理大型軟件系統中數目眾多的類,解決類的名名沖突問題,Java引入包package機制,提供類的多重命名空間。
- package語句作為Java源文件的第一條語句,指明該文件中定義的類所在的包。若缺省該語句,則指定為無包名。
- Java編譯器把包對應于文件系統的目錄管理,package語句中,用‘.’來指明包的層次,例如使用語句 package cn.guet ,則該文件中所有的類位于 .\cn\guet 目錄下。
17.類的繼承
- Java中使用extends關鍵字實現類的繼承機制。
- 通過繼承,子類自動擁有父類的所有成員變量和方法。
- Java只支持單繼承,不允許多繼承。一個子類只能有一個父類,一個父類可以有多個子類。
18.訪問控制
- private類內部可以訪問
- protected類內部、同一個包、子類可以訪問。
- public類可以在任意地方被訪問。
- default類只可以被同一個包內部的類訪問。
19.方法的重寫
- 在子類中可以根據需要對從父類中繼承來的方法進行重寫。
- 重寫方法必須和被重寫方法具有相同方法名稱、參數列表和返回類型。
- 重寫方法不能使用比被重寫方法更嚴格的訪問權限。
20.super關鍵字:Java類中使用super來引用父類的成分。指向父類的引用。
21.繼承中的構造方法:
- 子類的構造過程中必須調用父類的構造方法。
- 子類可以在自己的構造方法中使用 super(arugment_list)調用基類的構造方法。
- 使用this(arugment_list)調用本類的另外的構造方法
- 如果調用super,必須寫在子類構造方法的第一行。
- 如果子類的構造方法中沒有顯示地調用父類的構造方法,則系統默認調用父類無慘的構造方法。
- 如果子類構造方法中沒有顯式調用父類構造方法,而父類中又沒有無參的構造方法,則編譯錯誤。
22.Object類:Object類是所有類的根基類。如果類的聲明未使用extends關鍵字指明其父類,默認父類為Object類。
23.equals方法:對于任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象時,此方法才返回 true(x == y 具有值 true)。在String等類的中,重寫了其equals方法。
24.對象轉型:
- 一個基類的引用類型變量可以“指向”其子類的對象。
- 一個基類的引用不可以訪問其子類對象新增加的成員(屬性和方法)。
- 可以使用 引用變量 instanceof 類名來判斷該引用型變量所“指向”的對象是否屬于該類或該類的子類。
- 子類的對象可以當做基類的對象來使用稱作向上轉型,反之則稱為向下轉型。
25.動態綁定和多態
- 動態綁定是指在執行期間(而非編譯期)判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法。就是重寫了父類的方法,new的是哪個就去調用哪個的方法。
- 多態的存在要有三個必要條件: p.s.條件一旦滿足,調用父類中被重寫的方法的時候,實際當中new的是哪個子類對象,就調哪個子類對象的方法。
- 要有繼承
- 要有重寫
- 父類引用指向子類對象
26.抽象類:
- 用abstract關鍵字來修飾一個類時;這個類叫做抽象類:用abstract來修飾一個方法時,該方法叫做抽象方法。
- 含有抽象方法的類必須被聲明為抽象類,抽象類必須被繼承。抽象方法必須被重寫。
- 抽象類不能被實例化。
- 抽象方法只需聲明,而不需實現。
27.final關鍵字
- final的變量的值不能夠被改變。
- final的方法不能夠被重寫。
- final的類不能夠被繼承。
28.接口
- 多個無關的類可以實現同一個接口
- 一個類可以實現多個無關的接口
- 與繼承關系類似,接口與實現類之間存在多態性。
- 接口中定義的變量默認是 public static final
- 接口中的方法只能是抽象方法,寫不寫abstract都是抽象,而且是public
轉載于:https://www.cnblogs.com/xpz-python/p/10477195.html
總結
- 上一篇: kux格式怎么转换成mp4?简单快速的视
- 下一篇: Webpack按需加载秒开应用