Java——面向對象

面向對象基礎:

  1. 面向對象能夠幫助咱們從宏觀上把握、從總體上分析整個系統。 可是具體到實現部分的微觀操做(就是一個個方法),仍然須要面向過程的思路去處理。java

  2. 類能夠當作一類對象的模板,對象能夠當作該類的一個具體實例。程序員

  3. 對於一個類來講,通常有三種常見的成員:屬性field、方法method、構造器constructor。ide

  4. 構造器也叫構造方法,用於對象的初始化。構造器是一個建立對象時被自動調用的特殊方法,目的是對象的初始化。構造器的名稱應與類的名稱一致。this

  5. Java引入了垃圾回收機制,令C++程序員最頭疼的內存管理問題迎刃而解。Java程序員可將更多的精力放到業務邏輯上而不是內存管理工做,大大提升開發效率。線程

  6. this的本質就是「建立好的對象的地址」! this不能用於static方法中。code

  7. 在類中,用static聲明的成員變量爲靜態成員變量,也稱爲類變量。類變量的生命週期和類相同,在整個應用程序執行期間都有效。在static方法中不可直接訪問非static的成員。對象

  8. Java方法中全部參數都是「值傳遞」,也就是「傳遞的是值的副本」。也就是說,咱們獲得的是「原參數的複印件,而不是原件」。所以,複印件改變不會影響原件。繼承

  9. 經過package實現對類的管理;若是咱們要使用其餘包的類,須要使用import導入,從而能夠在本類中直接經過類名來調用。接口

· 高級語言可分爲:面向過程和麪向對象兩大類生命週期

1. 面向過程與面向對象都是解決問題的思惟方式,都是代碼組織的方式。

  2. 解決簡單問題能夠使用面向過程。

  3. 解決複雜問題:宏觀上使用面向對象把握,微觀處理上仍然是面向過程。

· 對象和類的關係是特殊到通常,具體到抽象的關係。

· 棧內存

1. 每一個線程私有,不能實現線程間的共享!

  2. 局部變量放置於棧中。

  3. 棧是由系統自動分配,速度快!棧是一個連續的內存空間!

· 堆內存

1. 放置new出來的對象!

  2. 堆是一個不連續的內存空間,分配靈活,速度慢!

· 方法區

1. 被全部線程共享!

  2. 用來存放程序中永遠是不變或惟一的內容(類代碼信息、靜態變量、字符串常量)。

· 屬性用於定義該類或該類對象包含的數據或者說靜態屬性。屬性做用範圍是整個類體。Java使用默認的值對其初始化。

· 方法則用於定義該類或該類實例的行爲特徵和功能實現。方法是類和對象行爲特徵的抽象。

· 構造器又叫作構造方法(constructor),用於構造該類的實例。Java經過new關鍵字來調用構造方法,從而返回該類的實例,是一種特殊的方法。

· 垃圾回收機制

1. 程序員無權調用垃圾回收器。

  2. 程序員能夠經過System.gc()通知垃圾回收器(Garbage Collection,簡稱GC)運行,可是Java規範並不能保證馬上運行。

  3. finalize方法,是Java提供給程序員用來釋放對象或資源的方法,可是儘可能少用。

· 方法的重載是指一個類中能夠定義有相同的名字,但參數不一樣的多個方法。 調用時,會根據不一樣的參數表選擇對應的方法。

· this關鍵字的做用

1. 讓類中的一個方法,訪問該類的另外一個方法或屬性。

  2. 使用this關鍵字調用重載構造方法,能夠避免相同的初始化代碼,只能在構造方法中用,而且必須位於構造方法的第一句。

· static關鍵字

1. 在類中,用static聲明的成員變量爲靜態成員變量,也稱爲類變量。

  2. 用static聲明的方法爲靜態方法。

  3. 能夠經過對象引用或類名(不須要實例化)訪問靜態成員。

· package的做用

1. 能夠解決類之間的重名問題。

  2. 便於管理類:合適的類位於合適的包!

· impport的做用

1. 經過import能夠導入其餘包下面的類,從而能夠在本類中直接經過類名來調用。

· super關鍵字的做用

1. super是直接父類對象的引用。能夠經過super來訪問父類中被子類覆蓋的方法或屬性。

· 面向對象的三大特徵:繼承、封裝、多態。

· Object類是全部Java類的根基類。

· 訪問權限控制符:範圍由小到大分別是private、default、protected、public。

· 引用變量名 instanceof 類名 來判斷該引用類型變量所「指向」的對象是否屬於該類或該類的子類。

· final關鍵字能夠修飾變量、修飾方法、修飾類。

· 抽象類是一種模版模式。抽象類爲全部子類提供了一個通用模版,子類能夠在這個模版基礎上進行擴展,使用abstract修飾。

· 使用abstract修飾的方法爲抽象方法必須被子類實現,除非子類也是抽象類。

· 使用interface聲明接口

1. 從接口的實現者角度看,接口定義了能夠向外部提供的服務。

  2. 從接口的調用者角度看,接口定義了實現者能提供哪些服務。

· 內部類分爲成員內部類、匿名內部類和局部內部類。

· String位於java.lang包中,Java程序默認導入java.lang包。

· 字符串的比較"=="與equals()方法的區別。

面向對象高級

· 高級語言可分爲:面向過程和麪向對象兩大類

1. 面向過程與面向對象都是解決問題的思惟方式,都是代碼組織的方式。

  2. 解決簡單問題能夠使用面向過程。

  3. 解決複雜問題:宏觀上使用面向對象把握,微觀處理上仍然是面向過程。

· 對象和類的關係是特殊到通常,具體到抽象的關係。

· 棧內存

1. 每一個線程私有,不能實現線程間的共享!

  2. 局部變量放置於棧中。

  3. 棧是由系統自動分配,速度快!棧是一個連續的內存空間!

· 堆內存

1. 放置new出來的對象!

  2. 堆是一個不連續的內存空間,分配靈活,速度慢!

· 方法區

1. 被全部線程共享!

  2. 用來存放程序中永遠是不變或惟一的內容(類代碼信息、靜態變量、字符串常量)。

· 屬性用於定義該類或該類對象包含的數據或者說靜態屬性。屬性做用範圍是整個類體。Java使用默認的值對其初始化。

· 方法則用於定義該類或該類實例的行爲特徵和功能實現。方法是類和對象行爲特徵的抽象。

· 構造器又叫作構造方法(constructor),用於構造該類的實例。Java經過new關鍵字來調用構造方法,從而返回該類的實例,是一種特殊的方法。

· 垃圾回收機制

1. 程序員無權調用垃圾回收器。

  2. 程序員能夠經過System.gc()通知垃圾回收器(Garbage Collection,簡稱GC)運行,可是Java規範並不能保證馬上運行。

  3. finalize方法,是Java提供給程序員用來釋放對象或資源的方法,可是儘可能少用。

· 方法的重載是指一個類中能夠定義有相同的名字,但參數不一樣的多個方法。 調用時,會根據不一樣的參數表選擇對應的方法。

· this關鍵字的做用

1. 讓類中的一個方法,訪問該類的另外一個方法或屬性。

  2. 使用this關鍵字調用重載構造方法,能夠避免相同的初始化代碼,只能在構造方法中用,而且必須位於構造方法的第一句。

· static關鍵字

1. 在類中,用static聲明的成員變量爲靜態成員變量,也稱爲類變量。

  2. 用static聲明的方法爲靜態方法。

  3. 能夠經過對象引用或類名(不須要實例化)訪問靜態成員。

· package的做用

1. 能夠解決類之間的重名問題。

  2. 便於管理類:合適的類位於合適的包!

· impport的做用

1. 經過import能夠導入其餘包下面的類,從而能夠在本類中直接經過類名來調用。

· super關鍵字的做用

1. super是直接父類對象的引用。能夠經過super來訪問父類中被子類覆蓋的方法或屬性。

· 面向對象的三大特徵:繼承、封裝、多態。

· Object類是全部Java類的根基類。

· 訪問權限控制符:範圍由小到大分別是private、default、protected、public。

· 引用變量名 instanceof 類名 來判斷該引用類型變量所「指向」的對象是否屬於該類或該類的子類。

· final關鍵字能夠修飾變量、修飾方法、修飾類。

· 抽象類是一種模版模式。抽象類爲全部子類提供了一個通用模版,子類能夠在這個模版基礎上進行擴展,使用abstract修飾。

· 使用abstract修飾的方法爲抽象方法必須被子類實現,除非子類也是抽象類。

· 使用interface聲明接口

1. 從接口的實現者角度看,接口定義了能夠向外部提供的服務。

  2. 從接口的調用者角度看,接口定義了實現者能提供哪些服務。

· 內部類分爲成員內部類、匿名內部類和局部內部類。

· String位於java.lang包中,Java程序默認導入java.lang包。

· 字符串的比較"=="與equals()方法的區別。

相關文章
相關標籤/搜索