淺認類和物件

2021-10-06 22:04:42 字數 2209 閱讀 5129

1.類和物件的初步認識

物件導向的概念:

1.物件導向(opp)是思考問題的一種思考方式,是一種思想。比如:概念與例項。理論與實踐。名和實等等。

2.類就是一類物件的統稱。物件就是這一類具體化的乙個例項。

3.物件導向的好處:將複雜的事情變簡單了,只要面對乙個物件就行。

總結:物件導向就是用**(類)來描述客觀世界的事物的一種方式,乙個類主要包含乙個事物啥的屬性和行為.

2.類的三大特性

1.封裝 2.繼承 3.多型

封裝:封裝的本質就是讓類的呼叫者不必太多的了解類的實現者是如何實現類的, 只要知道如何使用類就行了.這樣就降低了類使用者的學習和使用成本, 從而降低了複雜程度

繼承:可以在現有類的基礎上無需重寫,擴充套件類的功能。

3. 類和類的例項化

類就是一類物件的統稱。物件就是這一類具體化的乙個例項。可以說類相當於乙個模板,物件是由模板產生的樣本。乙個類,可以產生無數的物件。

基本語法:

// 建立類

class

//例項化物件

《物件名》

=new

();

類的例項化:

用類型別建立物件的過程,稱為類的例項化

a) 類只是乙個模型一樣的東西,限定了類有哪些成員.

b)乙個類可以例項化出多個物件,例項化出的物件 占用實際的物理空間,儲存類成員變數

注意事項

1.new 關鍵字用於建立乙個物件的例項.

2.使用 . 來訪問物件中的屬性和方法.

3.同乙個類可以建立對個例項.

4.類的成員

類的成員可以包含以下:字段、方法、**塊、內部類和介面等。

5. 構造方法

語法規則

1.方法名稱必須與類名稱相同

2.構造方法沒有返回值型別宣告

3.每乙個類中一定至少存在乙個構造方法(沒有明確定義,則系統自動生成乙個無參構造)

注意事項

1.如果類中沒有提供任何的建構函式,那麼編譯器會預設生成乙個不帶有引數的建構函式

2.若類中定義了構造方法,則預設的無參構造將不再生成.

3.構造方法支援過載. 規則和普通方法的過載一致.

6. 認識**塊

普通**塊:定義在方法中的**塊.

public

class

main

定義,普通方法塊

int x =

10;

system.out.

println

("x1 = "

+x);

}int x =

100;

system.out.

println

("x2 = "

+x);}}

// 執行結果

x1 =

10 x2 =

100

構造塊:定義在類中的**塊(不加修飾符)。也叫:例項**塊。構造**塊一般用於初始化例項成員變數。

class

person

//例項**塊

public

void

show()

}public

class

main

}// 執行結果

i am instance init()

! i am person init()

! name:bit age:

12 ***: man

注意事項: 例項**塊優先於建構函式執行。

靜態**塊:

使用static定義的**塊。一般用於初始化靜態成員屬性。

class

person

//例項**塊

//靜態**塊

static

public

void

show()

}public

class

main

}

注意事項

靜態**塊不管生成多少個物件,其只會執行一次,且是最先執行的。

靜態**塊執行完畢後, 例項**塊(構造塊)執行,再然後是建構函式執行。

類(class)和結構(structure)的認識

本文複製了 msdn library 的原話,覺得它說得有道理,狠經典 原話 類和結構是 net framework 中的常規型別系統的兩種基本構造。兩者在本質上都屬於資料結構,封裝著一組整體作為乙個邏輯單位的資料和行為。資料和行為是該類或結構的 成員 它們包含各自的方法 屬性和事件等 本主題後面列...

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

由ArrayList引發的關於淺拷貝的認知誤區

首先,無論深拷貝還是淺拷貝,拷貝的結果,都是乙個新的物件!但是,淺拷貝對於二級目錄中引用型別,都是直接拷貝引用,而非開闢新記憶體。arraylist是淺拷貝的。這裡的淺拷貝,指的是 arraylist拷貝的結果,是乙個新的arraylist,但是新arraylist中的成員,都是老arraylist...