類與對(duì)象課件1_第1頁
類與對(duì)象課件1_第2頁
類與對(duì)象課件1_第3頁
類與對(duì)象課件1_第4頁
類與對(duì)象課件1_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

類與對(duì)象

本節(jié)學(xué)習(xí)目標(biāo):

1.理解什么是對(duì)象和類

2.學(xué)會(huì)定義簡(jiǎn)單的類

3.理解什么是構(gòu)造函數(shù)

4.學(xué)會(huì)創(chuàng)建與使用對(duì)象

5.鍵盤輸入

1

你怎樣理解對(duì)象與類?

簡(jiǎn)單地說:

?對(duì)象是表示現(xiàn)實(shí)世界中某個(gè)具體的事物;

?親是對(duì)對(duì)象的抽象描述。

對(duì)對(duì)象進(jìn)行抽象為類

類(CLASS)

如:

“manclass”

對(duì)類進(jìn)行實(shí)例化

張三

類的概念

?類:是一種抽象的數(shù)據(jù)類型,它

是所有具有一定共性的對(duì)象的抽

象。本質(zhì)上可以認(rèn)為是對(duì)對(duì)象的

描述,是創(chuàng)建對(duì)象的“模板”。

?類的某一個(gè)對(duì)象則被稱為是類的

一個(gè)實(shí)例,是類的實(shí)例化結(jié)果。

3

類的基本結(jié)構(gòu):

二、Java語言的類

1系統(tǒng)提供的類

Java系統(tǒng)為用戶提供了大量已定義好的類,

稱為Java應(yīng)用程序接口(JavaAPI)。Java

API是一組由軟件供應(yīng)商編寫好的Java程序模塊,

每個(gè)模塊通常對(duì)應(yīng)一種特殊的基本功能和任務(wù)。

用戶在編程時(shí)可以直接引用這些模塊。

為了方便系統(tǒng)類的管理和使用,將系統(tǒng)類根

據(jù)實(shí)現(xiàn)功能的不同,可以分為不同的集合,每個(gè)

集合稱為一個(gè)包(Package),所有的包合稱為

類庫。

5

2用戶自定義類

[修飾符]class類名

(

類成員變量聲明;

構(gòu)造函數(shù)聲明;

類方法聲明;

6

三、對(duì)象的創(chuàng)建與構(gòu)造函數(shù)的定義

?一個(gè)對(duì)象的生命周期包括三個(gè)階段:創(chuàng)建、使用

和消除。Java語言中,系統(tǒng)在判定一個(gè)對(duì)象確實(shí)

再?zèng)]有被引用時(shí),系統(tǒng)就會(huì)自動(dòng)消除該(即回收

分配給該對(duì)象的內(nèi)存,這就是所謂的垃圾回收)

對(duì)象。

對(duì)象的創(chuàng)建

對(duì)象的創(chuàng)建包括聲明、實(shí)例化和初始化。

聲明一個(gè)某類的對(duì)象,格式為“類名對(duì)象名;”。聲明并不

為對(duì)象分配內(nèi)存空間;

實(shí)例化:指使用運(yùn)算符new為對(duì)象分配內(nèi)存空間,一個(gè)類的

不同對(duì)象分別占據(jù)不同的內(nèi)存空間;

格式為“對(duì)象名=new類名();”。

初始化:是指給實(shí)例對(duì)象的屬性字段賦初始值,一般通過調(diào)

用對(duì)象的構(gòu)造方法完成。

創(chuàng)建一個(gè)對(duì)象的語法是(聲明和實(shí)例化合并):

類名創(chuàng)建的對(duì)象名稱=new構(gòu)造函數(shù)();

說明:(1)Java語言的對(duì)象由類創(chuàng)建,所以應(yīng)先說

明創(chuàng)建對(duì)象所屬的類名稱,然后再說明創(chuàng)建對(duì)象的

名稱。

(2)”="表示賦值號(hào),new構(gòu)造函數(shù)(),使

系統(tǒng)為對(duì)象創(chuàng)建自己的內(nèi)存區(qū)域并自動(dòng)調(diào)用構(gòu)造函

數(shù)初始化成員變量。

成員變量和成員方法的引用

?同一類中的成員可以相互直接引用。

?處于不同類成員的相互引用需要首先創(chuàng)建對(duì)

象,然后才能引用具體的成員。引用格式如

下:

對(duì)象名.成員變量名

對(duì)象名.方法名(參數(shù)列表)

10

構(gòu)造函數(shù)的特征:

?構(gòu)造函數(shù)名與類名相同;

?構(gòu)造函數(shù)沒有返回類型,也不是void;

?構(gòu)造函數(shù)可以帶有形參,也可以沒有形參。

?構(gòu)造函數(shù)的主要作用是實(shí)現(xiàn)對(duì)象的初始化,

為對(duì)象的數(shù)據(jù)成員賦初值。

11

?構(gòu)造函數(shù)不能由編程人員顯式地直接調(diào)用,而在

創(chuàng)建對(duì)象時(shí),由系統(tǒng)自動(dòng)調(diào)用。如果類中沒有顯

示的定義構(gòu)造函數(shù),系統(tǒng)則調(diào)用缺省的構(gòu)造函數(shù)

來實(shí)現(xiàn)對(duì)象的初始化。

?如果類中有顯示的定義構(gòu)造函數(shù),系統(tǒng)將不再提

供缺省的構(gòu)造函數(shù),構(gòu)造方法可以有多個(gè).

?創(chuàng)建對(duì)象時(shí),構(gòu)造函數(shù)實(shí)參的個(gè)數(shù)和類型應(yīng)與類

中定義的構(gòu)造函數(shù)的形參的個(gè)數(shù)和類型相一致。

12

下載本集教程行邪格式請(qǐng)?jiān)谶B接上點(diǎn)右鍵選萼a另存為,尸

主講教師孫鑫《更多技術(shù),請(qǐng)登錄hlIL."www.su11ALl”外

缺省構(gòu)造方法

■當(dāng)我們用缺省的構(gòu)造方法初始化對(duì)象

時(shí),系統(tǒng)用默認(rèn)值初始化對(duì)象的成員

變量。

■各種數(shù)據(jù)類型的默認(rèn)值為:

數(shù)值型0

booleanfalse

char”,\0'

對(duì)象null

?舉例

以點(diǎn)類為例,分別定義不同的構(gòu)造函數(shù),帶參數(shù)的

和不帶參數(shù)的.

14

成員變量和成員方法的進(jìn)一步說明:

?類的任何成員方法在內(nèi)存中只存在一份拷貝.

?類的任何成員變量在內(nèi)存中各有各的拷貝.

舉例:

可為某個(gè)類聲明不同的對(duì)象,并分別輸出其成員

變量.

15

■關(guān)于實(shí)例方法和實(shí)例數(shù)據(jù)成員的進(jìn)一步說明

一個(gè)類所有的實(shí)例(對(duì)象)調(diào)用的成員方法在內(nèi)

存中只有一份拷貝,盡管在內(nèi)存中可能有多個(gè)對(duì)

象,而數(shù)據(jù)成員在類的每個(gè)對(duì)象所在內(nèi)存中都存

在著一份拷貝。th1s變量允許相同的實(shí)例方法為不

同的對(duì)象工作。每當(dāng)調(diào)用一個(gè)實(shí)例方法時(shí),this變

量將被設(shè)置成引用該實(shí)例方法的特定的類對(duì)象。

方法的代廚接著會(huì)與this所代表的對(duì)象的特定數(shù)據(jù)

建立關(guān)聯(lián)。

?舉例

以點(diǎn)類為例,分別定義不同的構(gòu)造函數(shù),形參和成

員變量同名和不同名的.

17

■靜態(tài)方法和靜態(tài)變量是屬于某一個(gè)類,而

不屬于類的對(duì)象。

-靜態(tài)方法和靜態(tài)變量的引用直接通過類名

引用。

■在靜態(tài)方法中不能調(diào)用非靜態(tài)的方法和引

用非靜態(tài)的成員變量。反之,則可以。

■可以用類的對(duì)象obj去調(diào)用靜態(tài)的方法

method05如:obj.methodQo

爭(zhēng)態(tài)變量(類變量)與靜態(tài)方法(類方法)

靜態(tài)變量和靜態(tài)方法統(tǒng)稱為類成員,非靜態(tài)成員(非類成

員)稱為實(shí)例成員。類成員屬于類,由各個(gè)對(duì)象共同擁有。

1、類變量

?類變量(靜態(tài)變量):用“static”修飾符聲明的成員變量。

?可以直接使用類名來調(diào)用。

19

2、靜態(tài)方法(類方法)

?類方法:用“static”修飾符聲明的成員方法。

?靜態(tài)方法是屬于整個(gè)類的,只能處理靜態(tài)成員,而不能處

理屬于某個(gè)對(duì)象的實(shí)例成員,因?yàn)殪o態(tài)成員是在類被加載時(shí)

就被創(chuàng)建了,也就是說在類對(duì)象被創(chuàng)建之前就被加載了.(類

是在編譯時(shí)加載的,而對(duì)象是在運(yùn)行時(shí)被創(chuàng)建的)

?可以直接使用類名調(diào)用靜態(tài)成員。

?靜態(tài)方法中可以使用局部變量。

注意:要有內(nèi)存模型的概念,不能停留在事物的表面.

20

?舉例

需要說明main。方法定義為static的原因.

輸出的累計(jì)人數(shù)

-使用關(guān)鍵字Rnal定義常量,例如:

finaldoublePI=3.1415926;

■作為一種約定,在定義常量時(shí),通常采用

大寫形式。-

■final常量可以在聲明的同時(shí)賦初值,也可以

在構(gòu)造函數(shù)中賦初值。

■為了節(jié)省內(nèi)存,我們通常將常量聲明為靜

態(tài)的(static)o

面向?qū)ο蟮某绦蛟O(shè)計(jì)

■問題:求一個(gè)長(zhǎng)方形的周長(zhǎng)和面積。

以面向?qū)ο蟮某绦蛟O(shè)計(jì)方式思考:

1、一個(gè)長(zhǎng)方形可以看成一個(gè)長(zhǎng)方形對(duì)象Q

2、一個(gè)長(zhǎng)方形對(duì)象有兩個(gè)狀態(tài)(長(zhǎng)和寬)和兩

個(gè)行為(求周長(zhǎng)和求面積)。

3、將所有長(zhǎng)方形的共性抽取出來,設(shè)計(jì)一個(gè)長(zhǎng)

方形類。

4、通過長(zhǎng)方形對(duì)象的行為,就可以求出某個(gè)具

體的K方形對(duì)象的周及和面積。

數(shù)據(jù)的鍵盤輸入

?Scanner類是Java5-0在java,util包中新增力口的——

個(gè)類,該類用于輸入數(shù)據(jù),其數(shù)據(jù)來源可以是文

件、字符串或鍵盤等。

?java.util包是系統(tǒng)包,使用之前需要使用import語

句進(jìn)行引入。

24

使用Scanner類從鍵盤上輸入數(shù)據(jù)的步驟:

(1)創(chuàng)建一個(gè)該類的對(duì)象,并指定輸入源。

如果要從鍵盤上輸入數(shù)據(jù),常用類似于如下的格式:

Scannersc=newScanner(System.in);

其中,System.in在Java語言中表示標(biāo)準(zhǔn)輸入設(shè)

備(另外,經(jīng)常使用的System.out表示標(biāo)準(zhǔn)輸出

設(shè)備,一般指顯示器),其實(shí)就是鍵盤,表示要

從鍵盤上輸入數(shù)據(jù)。

Scanner對(duì)象一般使用空格符(包括空格、Tab鍵和

25換行符)分隔輸入的內(nèi)容。

(2)使用Scanner類提供的方法從數(shù)據(jù)源取

得數(shù)據(jù),Scanner類中定義的nextXXX方法,

將輸入內(nèi)容中的數(shù)據(jù)取出并轉(zhuǎn)換為不同類型:

nextBoolean():將讀到的信息轉(zhuǎn)換為布爾值,并返回;

nextByte():將掃描到的信息轉(zhuǎn)換為byte類型,并返回;

nextDouble():將掃描到的信息轉(zhuǎn)換為double類型,并返回;

nextFloat():將掃描到的信息轉(zhuǎn)換為float類型,并返回;

nextlnt():將掃描到的信息轉(zhuǎn)換為int類型,并返回該值;

nextLong():將掃描到的信息轉(zhuǎn)換為long類型,并返回;

nextShort():將掃描到的信息轉(zhuǎn)換為short類型,并返回;

nextLine():讀取一行的內(nèi)容,并以字符串的形式返回該值。

26

例如,以下代碼使用戶能夠從鍵盤上(System.in)

讀取一個(gè)整數(shù),并將讀到的數(shù)據(jù)保存在變量沖:

Scannersc=newScanner(System.in);

inti=sc.nextlntQ;

27

小結(jié):

?對(duì)象、類

?類的定義、對(duì)象的創(chuàng)建

?屬性與方法(成員變量與成員方法)

?構(gòu)造函數(shù)

?靜態(tài)成員變量與靜態(tài)成員方法

?面向?qū)ο蟪绦蛟O(shè)計(jì)思想中的抽象、封裝特征的體會(huì)

28

上機(jī)作業(yè):

?題目:

定義一個(gè)描述人的類,分別創(chuàng)建一個(gè)姓名為“Tom"/"Rose”,性

別為“男"/“女",年齡20歲/30歲的對(duì)象(實(shí)例),輸出這

兩個(gè)對(duì)象的信息。

?要求:

1、定義人類Person。

2、有一些基本的屬性和方法

3、定義一個(gè)對(duì)Person進(jìn)行初始化的構(gòu)造方法。

4、對(duì)于成員變量的賦值可以采用顯示賦值的方式.

29

2定義一個(gè)汽車類,可以定義汽車的若干屬性,如

品牌、型號(hào)、顏色、重量、類別等信息并顯示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論