1. 程式人生 > >javaoo重要一點的知識總結

javaoo重要一點的知識總結

數據運算 實體 輸入 每一個 大於 原因 執行者 隱藏對象 用法

面向對象:

1.對象:萬物皆對象,對象因關註而產生。

2. 類:是對象的抽象。

3. 屬性:是對象身上的值數據。 4. 行為:是對象的功能。 特點: 1:將復雜的事情簡單化。 2:面向對象將以前的過程中的執行者,變成了指揮者。 3:面向對象這種思想是符合現在人們思考習慣的一種思想。 訪問修飾符: 修飾符有4個: private ,默認 , protcter , public。 可選修飾符現在學了4個:static,abstract,final,default 方法的重載: 定義:是在一個類中,多個方法的方法名相同,但是參數列表不同。參數列表: 指的是參數個數,參數類型,參數順序的不同。 註意:1.重載必須通過不同的參數列表不同來進行重載。 2.不能通過訪問權限,返回類型,拋出異常來進行重載。 3.可以有不同的訪問修飾符。 方法的重寫: 定義:在繼承中,子類繼承父類的方法。但是子類需要和父類不同的實現,擴展或者 覆蓋父類的方法實現則需要對方法進行重新書寫。這種則是方法的重寫。重寫是發生 在繼承類中的。 註意:1.子類的參數列表,方法名必須和父類的參數列表方法名完全一致。 2.返回類型必須一致。 3.方法修飾符必須大於或者等於父類的方法修飾符。 4.子類重寫不能拋出比父類被重寫方法更多的異常。 封 裝(面向對象特征之一):是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。 好處:將變化隔離;便於使用;提高重用性;安全性。 封裝原則:將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提供公共方法對其訪問。 this:代表對象,就是所在函數所屬對象的引用。 繼承: 定義:是類與類之間的關系,把具有相同的屬性和行為進行抽取,設計為父類。子 類通過繼承,就可以自動具備父類的屬性和行為。 關鍵字:extend 優點:1.增加代碼的重用性。 2.擴展性也增加了。 3.設計程序變得簡單。 註意:1.java是單繼承。(類層次更清晰,但是缺少了豐富度) 2.Object類是所有類,包括數組的超類。 3.繼承的實現是通過內存疊加的方式實現的。(先造父類對象部分,再造子類 對象部分) 4.子類需要重新實現父類中的方法行為時,需要用到方法的重寫。 多態: 定義:相同的行為,不同的實現。 --------針對的是方法多態。 分類:靜態多態,和動態多態。 類型轉換: 1.向上轉:把子類的對象賦給父類的變量。 (一定成功) 2.向下轉:把父類的值(引用值)賦值給子類的變量。(不一定成功) 向下轉:需要用到關鍵字 instanceof 用於判斷前面的變量,是否指向後面的類型。 多態的自我理解: 即是在方法中,需要輸入一個對象。但是對象具體是誰,並不知道。就需要用到 用父類定義一個 作為形參傳入方法中。 如果需要具體判斷是哪一個對象,就需 要用到instanceof,來調用這個對象特有的方法。如果是父類中的方法,可以直 接用父類定義的形參對象來調用需要調用的方法。 this 與 super this: 本類中的所有屬性和方法,可以看到繼承與父類的的訪問修飾符允許 看到的 2.this()代表調用同一個類的其他構造器。 註意:this()只能放在構造器的第一句。 uper: 1.super()調用父類的指定構造,也只能放在構造器的第一句,和this() 不能同時出現。 2.super()有默認,不會寫也有(調用父類無參),this()沒有默認。 3.super.****** 當前對象的父類對象,訪問不到本類定義的任何屬性和方法 也可以看到繼承父類的屬性和方法,也受訪問修飾符限制,和this相同。 綜上:super可以看到的,this也可以看到。 this看到的 ,super就不一定看的到,所以this比較好。 抽象類: 有抽象方法的類一定是抽象類。(在類的聲明部分加上abstract) 特點: 1.不能產生對象。(原因:對象是個具體的,實際存在的,不應該有不確定的。) 2.抽象類存在的意義在於產生子類。 3.抽象類裏面也有屬性方法等等一個類該有的都有。 4.語法上:抽象類可以沒有抽象方法,但是這樣就失去設計的意義。 5.抽象類可以繼承於抽象類。 6.抽象類中可以重載構造方法。 註意:子類繼承抽象類,必須實現抽象類中的所有抽象方法,除非這個類也是抽象類。 abstract只針對類和方法。 用法:一般用在父類中,所有子類共有的,都要重寫的,就一般寫為抽象方法,自然父 類就是抽象類了。 在代碼中: @overriding 可以進行標註提醒。 接口: 特點:1.是一種獨立的數據類型。 2.接口關註的是行為的共享(接口不能產生對象) 1> 定義 1.關鍵字:interface 2.接口在語法上訪問修飾符只有public和default(默認) 屬性:只能是公共,靜態,常量屬性(三個都得滿足) 就算不寫public statc final,默認也算常量。 構造:接口無構造方法。 方法:接口裏面定義的方法只能是公共的,抽象的方法。 ublic abstract 可以省略不寫。 沒有實例初始化塊,也沒有靜態初始化塊。 公共借口的名字必須和他所在的Java文件名保持一致。 註意:在jdk1.8中,接口有了新的功能,也就是能寫方法實現部分。用default修飾。 java分了5片內存。 1:寄存器。2:本地方法區。3:方法區。4:棧。5:堆。 棧:存儲的都是局部變量 ( 函數中定義的變量,函數上的參數,語句中的變量 ); 只要數據運算完成所在的區域結束,該數據就會被釋放。 堆:用於存儲數組和對象,也就是實體。啥是實體啊?就是用於封裝多個數據的。 1:每一個實體都有內存首地址值。 2:堆內存中的變量都有默認初始化值。因為數據類型不同,值也不一樣。 3:垃圾回收機制。 成員變量和局部變量的區別: 1:成員變量直接定義在類中。 局部變量定義在方法中,參數上,語句中。 2:成員變量在這個類中有效。 局部變量只在自己所屬的大括號內有效,大括號結束,局部變量失去作用域。 3:成員變量存在於堆內存中,隨著對象的產生而存在,消失而消失。 局部變量存在於棧內存中,隨著所屬區域的運行而存在,結束而釋放。 構造函數:用於給對象進行初始化,是給與之對應的對象進行初始化,它具有針對性,函數中的一種。 特點: 1:該函數的名稱和所在類的名稱相同。 2:不需要定義返回值類型。 3:該函數沒有具體的返回值。 構造函數和一般函數有什麽區別呢? 1:兩個函數定義格式不同。 2:構造函數是在對象創建時,就被調用,用於初始化,而且初始化動作只執行一次。 一般函數,是對象創建後,需要調用才執行,可以被調用多次。

javaoo重要一點的知識總結