0.解壓密碼:www.mfhk8.com
1.變量的意義:由于我們操作基本數據類型時不可能操作數據地址,所以聲明變量和對應的棧中的地址一一對應,這樣操作方便。對于操作引用數據類型,我們使用變量管理時,通過操作棧空間變量對應的地址的變量,來操作堆空間的數據。
2.關于變量的作用域,當 變量在{ } 結束之后 ,會被JVM(java虛擬機)回收。
3.Java 在處理char 類型數據時,在底層是按照unicode碼來處理的。
4.Java 構造方法:(1).構造方法名稱必須與類名一致,構造方法沒有返回值。(2).構造方法主要是為類中的屬性初始化。(3).每個類在實例化之后都會調用構造方法,如果沒有構造方法,系統默認會創建一個無參的什么都不帶的構造方法。(4).構造方法也可以重載。
5.匿名對應 針對于只是用一次的對象,換句話說就是OC里面的[Person new].tell。
6.Java封裝 就是將對應的類的屬性聲明為私有的,之后通過setter 方法和getter 進行數據的賦值的獲取。
7.this 關鍵字:(1).表示當前類中的屬性好調用方法,(2).調用本類中的構造方法(默認的構造方法),(3).表示當前類對象。與OC中的self相似。
8.static: (1),使用static 聲明屬性,static 聲明全局屬性 (2)使用static聲明方法,直接使用類名調用,(3)靜態方法不能調用非靜態的方法和屬性.(個人理解:被static 修飾的無論屬性還是方法 都相當于變成對應的在該類的屬性)
9.final :(1) final 關鍵字在java中被稱為完結器,標識最終的意思.(2).final聲明類.方法.屬性. 使用final聲明的類不能被繼承,使用final聲明的方法不能被重寫,使用final 聲明的變量變成常量,常量是不能被修改的。
10.抽象類:包含一個抽象方法(聲明而未被實現的方法,抽象方法必須使用abstract 關鍵字聲明)的類,抽象類不能被實例化,而是通過子類集成的方式,zilei(如果不是抽象類)必須重寫抽象類中的所有抽象方法。定義格式:
11,接口 ?
接口本身不能實例,而是可以多繼承的子類可以通過implements實現方法進行實例。
#@# 一個類可以同時實現抽象類和接口
@@ 一個接口不能繼承一個抽象類,但是卻可以通過extends 關鍵字同時繼承多個接口實現接口的多繼承
接口與抽象類的相同點和不同點
相同點
* 都不能被直接實例化,都可以通過繼承實現其抽象方法。
* 都是面向抽象編程的技術基礎,實現了諸多的設計模式。
不同點
* 接口只能定義抽象規則;抽象類既可以定義規則,還可能提供已實現的成員。
* 接口是一組行為規范;抽象類是一個不完全的類,著重族的概念。
* 接口可以用于支持回調;抽象類不能實現回調,因為繼承不支持。
* 接口只包含方法、屬性、索引器、事件的簽名,但不能定義字段和包含實現的方法;抽象類可以定義字段、屬性、包含有實現的方法。
* 接口可以作用于值類型和引用類型;抽象類只能作用于引用類型。例如,Struct就可以繼承接口,而不能繼承類。
12 .繼承
java 單繼承,子類要想訪問父類的私有屬性,可以通過setter 和getter 方法進行訪問 和OC 一樣。
13.對于父類和子類的構造方法 :系統先調用父類構造方法,再調用子類構造方法 Java 構造方法和類型相同 ,OC 中 -init ?super init
14.繼承中 方法的重寫
在方法的重寫的時候 注意super 的使用 ?java 中方法的重寫和OC 一樣
15.String 類型: String 類型 是不可更改的 改變的是 堆內存地址的指向。
16.StringBuffer 類型 :由于String 類型是不可更改的 ,但StringBuffer類型卻是可以進行更改的 (更改的是堆 中的內容)?
消耗資源和不消耗資源 ?第一種開辟101快內存空間 ?第二種開辟1塊內存空間,就是StringBuffer 內存可以修改
StringBuider 和StringBuffer 相類似 幾乎是一樣的
16.Java 多態性 主要體現在 重載 和 重構 繼承下的向上轉型和向下轉型(強制類型轉換) ,Java面向對象instanceof關鍵字 是用來判斷這個對象是不是 這個類的對象 返回值 為Bool