一:概述
????????1.1Java類及類的成員
????????????????屬性、方法、構造器、代碼塊、內部類
? ? ? ? ? (1)數組
????????????????????????java虛擬機內存劃分
????????????????????????????????
????????????????????????各區域作用
????????????????????????????????
????????????????????????內存解析
????????????????????????????????
????????????????????????基本使用
??????????????????????????????????
????????????????????????????????兩個變量指向一個一維數組
????????????????????????????????????????沒有new就不會在堆里新開辟空間
???????????????????????????????????????????????????? ?
?
????????????????(2)對象數組
????????????????????????????????
????????????????(3)方法
????????????????????????形參:方法聲明時,一對小括號聲明的一個或多個形式參數,簡稱形參
????????????????????????實參:方法被調用時,實際傳遞給形參的變量或常量,就稱為實際參數,簡稱實參
????????????????????????????????
????????????????????????值傳遞機制場景
????????????????????????????????方法內聲明的局部變量 ????
????????????????????????????????基本數據類型傳遞的是數據值 ??????????
????????????????????????????????????????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 引用類型傳遞的是地址值
???????????????????????????????????????????
???????????????????????????????形參與實參
??????????????????????????????????????? ?? ??
二:面向對象基礎
????????2.1面向對象的特征
????????????????封裝、繼承、多態(抽象)
????????2.2其它關鍵字的使用
????????????????This、super、package、import、static、final、interface、abstract
????????2.3面向對象和面向過程
? ? ? ? ? ? ? ? (1)面向過程
????????????????????????????????
? ? ? ? ? ? ? ? (2)面向對象
????????????????????????先找實現事情涉及到的主體(類)、后看類完成任務需要具備什么功能(方法)
????????????????????????????????
????????2.4類和對象
????????????????????????
? ? ? ? ? ? ? ? (1)類的聲明和使用
????????????????????????類的設計:設計類的成員,類的設計是為了實例化對象,調用類的屬性和方法
????????????????????????????????????????
????????????????(2)類的實例化
????????????????????????創建對象,是為了調用屬性的類和方法。對象的實例化是對獲取到類的屬性和方法賦值
? ? ? ? ? ? ? ? ? ? ? ? ?
????????????????(3)對象在內存中分配涉及到的內存結構
????????????????????????剛創建對象時存在默認值
????????????????????????創建對象即開辟了空間,而變量是獲取到了空間的首地址
????????????????????????兩個變量指向的是同一個對象
?????????????????????????????????
????????????????(4)通過方法調用對象
????????????????????????每調用一個方法,相當于一個新的棧針
????????????????????????引用類型變量其實都是地址
????????????????????????返回值返回給調用者,返回給對象沒有用,因為對象是棧針
????????????????????????main函數結束后,對應指針出棧,p1沒了,堆內p1對應空間無指針指向,后期垃圾回收器將堆回收
? ? ? ? ? ? ? ? ? ? ?????????? ?
三:面向對象三大特征
????????3.1 封裝
????????????????(1)權限修飾符
????????????????????????????????
? ? ? ? ????????(2)構造器
????????????????????????每個類都有構造器,包括抽象類(不能造對象)
????????????????????????聲明
????????????????????????????????權限修飾符 類名(新參列表){}
????????????????????????????????????????
????????????????????????作用
????????????????????????????????
????????????????????????使用說明
????????????????????????????????
? ? ? ? ????????(3)實例變量賦值過程
????????????????????????分類
????????????????????????????????
????????????????????????執行順序判斷:根據打印值是否覆蓋判斷
????????????????????????????????? ?
???????????????????????執行先后順序 執行次數
??????????????????????????????????
? ? ? ? ? ? ? ? ?(4)JavaBean
????????????????????????????????JavaBean是一種Java語言寫成的可重用組件
??????????????????????????????????
????????????????????????????????ideal技巧
????????????????????????????????Alt+inset:創建get、set方法
? ? ? ? ? ? ? ? ? ?(5)關鍵字this
????????????????????????????????使用場景
????????????????????????????????????????
????????????????????????????????概述
????????????????????????????????????????
????????????????????????????????調用屬性和方法
????????????????????????????????????????針對于方法內的使用情況(準確的說是非static1修飾的方法)
????????????????????????????????????????????????
????????????????????????????????????????構造器內使用情況
??????????????????????????????????????????????????
????????????????????????????????????????????????
????????????????????????????????????????this調用構造器
????????????????????????????????????????????????
????????????????????????????????????????This()調用當前空參構造器
????????????????????????????????????????????????
????????3.2 繼承
????????????????????????
? ? ? ? ? ? ? ? (1)場景
????????????????????????????????繼承不能打破封裝性(雖然繼承了但不能用)
????????????????????????????????
? ? ? ? ? ? ? ? (2)使用說明
????????????????????????????????
? ? ? ? ? ? ? ? (3)默認父類
????????????????????????????????
? ? ? ? ? ? ? ? (4)多層繼承
????????????????????????????????
? ? ? ? ? ? ? ? (5)方法重寫
????????????????????????????????定義
????????????????????????????????????????子類對父類繼承過來的方法進行的覆蓋、覆寫的操作,就稱為方法的重寫
????????????????????????????????????????
????????????????????????????????遵循規則
????????????????????????????????????????子類不能重寫父類中聲明為private權限修飾的方法
????????????????????????????????????????
? ? ? ? ? ? ? ? (6)super調用構造器
????????????????????????使用場景
????????????????????????????????
????????????????????????屬性不覆蓋
????????????????????????????????若子類中聲明了與父類同名屬性,子類中包含兩個同名屬性
????????????????????????????????????????
????????????????????????super調用屬性、方法
????????????????????????????????????????
????????????????????????super調用構造器
????????????????????????????????子類繼承父類時,不會繼承父類的構造器
????????????????????????????????在子類構造器首行 ?
????????????????????????????????????????
????????????????????????子類繼承父類時不繼承父類構造器,構造器只在同名類中有
????????????????????????子類構造器首行默認調用父類空參構造器
? ? ? ? ? ? ? ? (7)子類對象實例化
????????????????????????從結果來看,體現為類的繼承性
????????????????????????????????
????????????????????????從過程來看
????????????????????????????????
????????????????????????創建對象是new,構造器是用于初始化的
????????????????????????????????
????????3.3 多態
????????????????(1)定義
????????????????????????新建的對象必須為定義的變量類型的子類
??????????????????????????????????
?????????????????(2)使用前提
????????????????????????????????
????????????????(3)適用性
????????????????????????????????
?????????????????????????使用場景
????????????????????????????????
????????????????(4)好處
????????????????????????????????避免多次重載
????????????????????????????????新增子類時不用修改方法,對拓展進行開放,對修改進行關閉
????????????????????????????????? ??
????????????????(5)向下轉型
????????????????????????????????父類變量接受了子類對象后,不能調用子類擁有的特定方法
????????????????????????????????????????????????
????????????????(6)static
????????????????????????????????定義
????????????????????????????????實例變量是指每個對象都有自己的變量,被一個類所有實例所共享的成員變量叫類變量,不用創建對象也有
????????????????????????????????
????????????????????????????????使用
????????????????????????????????????????一個更改,其它人用的時候也是改變了的(在內存空間中只有一份)
????????????????????????????????static修飾方法
????????????????????????????????????????
? ? ? ? ? ? ? ? (7)單例設計模式
????????????????????????????????定義
????????????????????????????????????????
????????????????????????????????實現思路
????????????????????????????????????????
? ? ? ? ? ? ? ? (8)代碼塊
????????????????????????????????隨著類的加載而執行
????????????????????????????????? ??
????????????????????????????????案例使用
????????????????????????????????????????
? ? ? ? ? ? ? ? (9)Final
????????????????????????????????fina修飾類表示類不能被繼承,final修飾表示方法不能被重寫
????????????????????????????????final修飾的變量其實就變成了常量,意味著一旦賦值,就不可更改
????????????????????????????????????????
?????
? ? ? ? ? ? ??