第4章類和物件

2023-01-18 12:48:03 字數 2829 閱讀 9098

本章要點

物件導向程式設計的概念

類的描述

類的成員變數和方法

抽象類類的訪問控制

4.1 物件導向程式設計

什麼事物件導向程式設計?

4.1.1 面向過程

物件導向是在面向過程中發展出來的。物件導向的程式中不可能沒有面向過程的**。畢竟,程式仍然是讓計算機執行的。

4.1.2 物件導向

物件導向就需要了解三個主要的概念:封裝、繼承和多型,這三個概念構成了oop程式設計的框架。另外,還需要了解物件、類訊息、介面和抽象等概念。

1.物件

2.訊息

3.類4.繼承

5.抽象

6.多型性

4.2 類的描述

類是一種複雜的資料型別,其將不同資料型別和這些資料相關的操作封裝在一起的集合體。

4.2.1 類的定義

類的格式如下:

[類的修飾符] class [extends 父類名] [inplenents 介面名錶]

方法修飾符型別方法名2(參數列)……}

4.2.2 物件例項

什麼是物件例項?

物件例項有乙個很有用的特性,即包容性。

4.2.3 構造器

構造器是類體中進行說明的特殊的成員方法。構造器的作用是在建立物件時,系統自動呼叫它來給所建立的物件初始化。

構造器的特點:

1.構造器是乙個特殊的方法,它的名字和類名相同。定義和說明構造器時不需要指明返回型別。

2.構造器可以有乙個或多個引數,也可以沒有。

3.構造器可以被過載。

4.如果類體中沒有宣告構造器,系統會自動新增乙個沒有引數的預設構造器。

5.構造器是類建立時被系統呼叫的。因此,多用於類的初始化。

4.3 類的成員變數和方法

成員變數和成員方法構成了類體,是類**的基本組成部分。

4.3.1 成員變數的定義

成員變數的定義格式如下:

訪問修飾符型別變數名 [ = 初值] [ , 變數 [ = 初值] ……];

對於成員變數定義的格式進行以下說明:

1.訪問修飾符控制成員變數的訪問許可權。訪問修飾符包括:public、private、protected、static和final。

2.型別用來定義變數的資料型別。可以為基本的資料型別,也可以是復合資料型別,例如類。

3.變數名用來標明變數的名稱,名稱必須符合j**a的命名規則。

4.在變數定義時,可以賦乙個初始值,也可以不賦。但對於必要的變數建議賦值。

5.變數定義支援","操作符。即可以對多個型別相同的變數在一行中定義。

4.3.2 成員變數的訪問許可權

(1)public(公有)

(2)protected(保護)

(3)private(私有)

(4)friendly(友好)

4.3.3 靜態成員變數

靜態成員變數的申明格式:

[訪問修飾符] static 型別變數名稱;

靜態成員變數甚至不需要例項化類物件就可以訪問。這是靜態變數和其他變數最本質的區別。

4.3.4 final變數

用final宣告的變數可以當作常量使用,不可以對其進行任何的修改操作。如果有變數被宣告為final,那麼就是希望變數在使用中不被任何的修改。使用這個性質來保護一些常量。

4.3.5 成員方法的定義

方法的定義格式:

訪問控制符型別說明方法名(參數列)

4.3.6 形參和實參

定義方法時,要宣告方法參數列,這些引數通常叫形參。

實參就是呼叫方法時使用的資料引數。

4.3.7 成員方法過載

在j**a中只要引數不同,方法名是可以一樣的,這就是方法過載。

例如,可以在乙個類中定義這些方法:

area();

area(int r)

area(float p_width,float p_high);

area(float a, float b, float c);

4.3.8 靜態成員方法

靜態方法格式如下:

[訪問識別符號] static 型別方法名(參數列)

實際上靜態方法、資料隻同所屬類有關,與類的例項無關。靜態方法只可以訪問類中的靜態資料或者其他靜態方法,不可以訪問其他非靜態的資料和方法。

4.4 類的繼承

通過繼承的機制,可以利用已有的型別來定義新的型別。

子類繼承父類的格式如下:

class son extends father

4.5 this和super

this代表物件本身。

super則代表父類。

4.6 抽象類

抽象類是一種特殊的類,抽象類是不能被例項化。j**a中,沒有規定抽象類必須要有抽象方法。但是有抽象方法的類必須宣告為抽象類。

抽象類的定義格式:

abstract calss 類名

abstract是關鍵字,用於宣告抽象。

4.7 上機實戰

4.7.1 建立類

4.7.2 靜態變數和方法的類

4.7.3 模板――抽象類的使用

4.8 思考與練習

1.類由和組成。

2.訪問控制符包括和

3.下面關鍵字中,()不是類定義要使用的關鍵字。

a.classb.publicc.switchd.private

4.下面()是用宣告靜態方法的關鍵字。

a.stringb.switchc.finald.static

4.名詞解釋

構造器物件成員變數方法過載抽象類

5.在j**a中乙個類即是乙個物件?

6.構造器的特點?

7.什麼是物件?如何例項化乙個物件?

7.如何定義乙個抽象類?抽象類與類有什麼不同?

C第10章類和物件例子

例10.4 定義並測試長方形類crect,長方形是由左上角座標 left,top 和右下角座標 right,bottom 組成。include include class crect 定義長方形類 void print void void crect setcoord int l,int t,int...

第4章使用ASP物件

例4.1 編寫乙個asp頁,以不同的字型大小顯示 hello,world 1 在記事本視窗中,輸入檔案內容。language vbscript for i 3 to 7 hello,world next 例4.2 本例演示了如何使用 include命令包含伺服器端檔案,結果如圖4.4所示。sub p...

C類和物件

1.物件導向設計簡介 1 2.物件的初始化與清除 物件賦值 6 2.1.建構函式 6 2.2.初始化成員列表 引數初始化表 9 2.3.析構函式 10 3.物件與常量 10 4.靜態成員 11 5.友員 12 5.1.友員函式 12 5.2.友員成員函式 13 5.3.友員類 13 物件導向程式設計...