J2SE 物件導向

2021-09-08 00:11:54 字數 2012 閱讀 5008

public

static

void main(string args) throws

exception

}

資料型別:

容量從小到大基本型別 : byte short char int long  float double (boolean不能相互轉換)

容量小的自動轉換為大的

容量大的轉換為小的時需加上強制轉換符,可能造成精度降低或溢位

有多種型別的資料混合運算時,系統首先自動將所有的資料轉換成容量最大的資料型別,然後再進行計算

資料轉型:

instance of 是否是某種型別

animal a = new dog();(首先狗繼承了動物)(容量小的自動轉換為大的)a看不到狗的新屬性,只看到作為animal擁有的屬性和方法

dog d = (dog)a;(容量大的轉換為小的時需加上強制轉換符)d能看到狗的新屬性

子類的物件可以當做基類的物件來使用稱作向上轉型(upcasting),反之稱為向下轉型

static關鍵字:

static宣告的成員變數為靜態成員變數,它為該類的公用變數,在第一次使用時被初始化,對於該類的所有物件來說,static成員變數

只有乙份。

static宣告的方法為靜態方法,在呼叫該方法時,不會針對於某個物件的呼叫,所以不能訪問非靜態成員。

可以通過物件引用或類名訪問靜態成員

訪問控制:

修飾符       類內部    同乙個包   子類   任何地方

private      可以      

default      可以      可以

protected  可以       可以      可以

public        可以      可以      可以       可以

抽象類:

用abstract關鍵字來修飾乙個類時,這個類叫做抽象類(相對於介面來說部分方法已經很精練了不需要再重寫,而有部分需要去重寫,就是抽象類,全部需要去重寫就是介面)

抽象方法為:用abstract來修飾乙個方法時,該方法叫做抽象方法

特徵:含有抽象方法的類必須被宣告為抽象類,抽象類必須被繼承,抽象方法必須被重寫,或把子類也宣告為抽象方法就不需重寫抽象方法

抽象類不能被例項化

抽象方法只需宣告,不需實現

介面:是抽象方法和常量值的定義的集合。

本質上講,介面是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變數和方法的實現。(介面是提供類的功能的規範,僅僅只說明類的功能,具體工作即實現的方法,靜態方法不需要寫在介面中。如果有特定業務需要,那還不如用抽象類,那就違背介面的用法了)

介面中宣告屬性預設為public static final,也只能是public static final,

public ;使介面的擴充套件性擴大,任何地方都能訪問

static : 因反覆被實現,定成靜態的,其一就減少記憶體的消耗,其二當實現多個介面時,有的介面有相同名字的屬性

定義成靜態的,就能通過類名找到相應的「相同」屬性而不出現衝突

final  : 如果你要想實現什麼,你就必要按照我介面中所定義的標準來,否則就不行!如果屬性不設定成final了 ,

那實現了介面的類都可以定義乙個方法然後對這個屬性進行修改了,那麼原來介面定義的標準意義也就不存在了

介面中宣告方法預設就是public abstract的

public :介面就是乙個規則,就是讓別人看見實現的,所以它的訪問許可權是最低的,許可權太苛刻就沒意義了,別人看不到或少數人才能看到

abstract : 介面就是乙個規則,就是讓別人實現的

介面之間可以相互去繼承,但不可以實現(都是介面,方法中不能出現方法體,怎麼去實現)

多型存在:

要有繼承

要有重寫

父類引用指向子類

final :

屬性唯讀不寫

方法不能被重寫

類不能被繼承

J2SE 物件導向總結

物件導向,即oo。我將物件導向的內容分為兩部分,一部分是物件導向的思想精髓,另一部分是物件導向在機器記憶體中的具體實現。下面是我的總結 檢視導圖中更詳細內容 這裡,我們重點對比總結以下內容 類和物件 1.從定義上 類是乙個概念,是乙個模板,規定了一類具有共同特點的物件。物件是是乙個例項,是類例項化的...

J2SE自學(八) 物件導向之封裝

1 size large 封裝定義 隱藏屬性,方法與方法實現細節的過程稱為封裝 這個定義並不是很準確,但是可以這樣去理解 可以從兩個方面理解 1 隱藏屬性和方法。2 隱藏方法實現細節過程。size 補充 color red size large 封裝的優點 1 隱藏類的實現細節 2 讓使用者只能通過...

執行緒 建立 J2SE

建立執行緒的兩種方法 第一種,定義執行緒,實現 runnable介面 public class testthread1 class runner1 implements runnable start runner1和main thread交替執行。run runner1先執行,main thread...