Java程序設(shè)計(jì)項(xiàng)目式教程 課件3-1 學(xué)生信息類(lèi)設(shè)計(jì)_第1頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件3-1 學(xué)生信息類(lèi)設(shè)計(jì)_第2頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件3-1 學(xué)生信息類(lèi)設(shè)計(jì)_第3頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件3-1 學(xué)生信息類(lèi)設(shè)計(jì)_第4頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件3-1 學(xué)生信息類(lèi)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

§3-1學(xué)生信息類(lèi)設(shè)計(jì)Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

在學(xué)生信息管理系統(tǒng)的設(shè)計(jì)中,首先需要定義一個(gè)描述學(xué)生這一實(shí)體的類(lèi),其中包括:學(xué)號(hào)、姓名、性別、年齡等屬性,方法包括設(shè)置、獲取和輸出這些學(xué)生信息。要實(shí)現(xiàn)這些任務(wù),需要熟悉Java中類(lèi)、對(duì)象的基本概念,掌握面向?qū)ο缶幊袒痉椒?。教學(xué)內(nèi)容1定義Java類(lèi)Java面向?qū)ο蠛诵母拍?3使用Java對(duì)象創(chuàng)建Java對(duì)象45構(gòu)造方法一、Java面向?qū)ο蠛诵母拍瞵F(xiàn)實(shí)生活中存在各種形態(tài)不同的事物,這些客觀存在并可相互區(qū)別的事物我們稱(chēng)之為實(shí)體。為了在程序中描述這些實(shí)體,面向?qū)ο缶幊烫岢鰞蓚€(gè)重要概念,即類(lèi)和對(duì)象。類(lèi)是對(duì)某一類(lèi)事物的抽象描述,對(duì)象用于表示現(xiàn)實(shí)中該類(lèi)事物的個(gè)體。1.類(lèi)與對(duì)象

對(duì)象(Object)是現(xiàn)實(shí)存在的具體實(shí)體,具有明確的特征(屬性)和行為,現(xiàn)實(shí)世界中任何一個(gè)具體的物理實(shí)體,都可以看作是一個(gè)對(duì)象。

類(lèi)(Class)是具有相同屬性和行為的一組對(duì)象的集合。類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本單位,用來(lái)表述同種對(duì)象的公共屬性和特點(diǎn)。一、Java面向?qū)ο蠛诵母拍?.面向?qū)ο缶幊痰幕咎卣鳎?)封裝性

封裝是一種信息隱蔽技術(shù),就是利用類(lèi)將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起。(2)繼承性

繼承是存在與面向?qū)ο蟪绦虻膬蓚€(gè)類(lèi)之間的一種關(guān)系,當(dāng)一個(gè)類(lèi)擁有另一個(gè)類(lèi)的所有屬性和行為時(shí),就稱(chēng)這兩個(gè)類(lèi)之間具有繼承關(guān)系,被繼承的類(lèi)稱(chēng)為父類(lèi)或超類(lèi),繼承了父類(lèi)或超類(lèi)所有屬性的類(lèi)稱(chēng)為子類(lèi)。(3)多態(tài)性

多態(tài)是指同一個(gè)行為在不同對(duì)象中可以有不同表現(xiàn)形式或?qū)崿F(xiàn)方法。以上這些概念,我們將會(huì)在接下來(lái)的任務(wù)中逐一學(xué)習(xí)并進(jìn)行實(shí)現(xiàn)。二、定義Java類(lèi)2.面向?qū)ο缶幊痰幕咎卣黝?lèi)定義的一般格式:

[類(lèi)修飾符]class類(lèi)名

{

//類(lèi)聲明部分

變量聲明及初始化;

//類(lèi)主體部分

方法聲明及方法定義;

}格式說(shuō)明:1)class是Java關(guān)鍵字,表明其后定義的是一個(gè)類(lèi)。類(lèi)名是用戶為該類(lèi)所起的名字,它應(yīng)該是一個(gè)合法的標(biāo)識(shí)符,并盡量遵從命名約定(如類(lèi)名的第一個(gè)字母一般為大寫(xiě))。2)class前的類(lèi)修飾符可以沒(méi)有也可以有多個(gè),用來(lái)限定類(lèi)的使用方式或范圍。3)Java類(lèi)定義格式包括類(lèi)聲明和類(lèi)主體兩部分。類(lèi)主體中的每個(gè)變量要聲明其類(lèi)型;方法不僅要進(jìn)行聲明,還要定義其實(shí)現(xiàn)。4)類(lèi)主體中的變量用來(lái)描述對(duì)象的屬性,方法用來(lái)定義對(duì)象的行為,統(tǒng)稱(chēng)為類(lèi)的成員。二、定義Java類(lèi)2.面向?qū)ο缶幊痰幕咎卣黝?lèi)定義的一般格式:

[類(lèi)修飾符]class類(lèi)名

{

//類(lèi)聲明部分

變量聲明及初始化;

//類(lèi)主體部分

方法聲明及方法定義;

}如:

classCircle{

doubleradius;

doublefindArea(){

returnradius*radius*3.14159;

}

}Circle為所定義的“圓”類(lèi)的名字(類(lèi)名見(jiàn)名知意、第一字母大寫(xiě)),其中包含兩個(gè)成員,一是表示圓的特征屬性的半徑radius;另一部分是完成圓的一個(gè)行為——計(jì)算圓面積的方法findArea()。二、定義Java類(lèi)【例3-1】定義一個(gè)描述長(zhǎng)方體的類(lèi),其名為Box。它需要定義表示長(zhǎng)方體長(zhǎng)、寬、高三個(gè)屬性的變量,同時(shí)還要定義一個(gè)設(shè)置長(zhǎng)方體長(zhǎng)、寬、高值的方法setlwh()和計(jì)算長(zhǎng)方體體積的方法volume()。classBox{

doublelenth;

doublewidth;doubleheight;

voidsetlwh(doublel,doublew,doubleh){

lenth=l;

width=w;

height=h;

}doublevolume(){

returnlenth*width*height;}}三、創(chuàng)建Java對(duì)象對(duì)象是類(lèi)的一個(gè)特定個(gè)體,所以也將對(duì)象稱(chēng)為類(lèi)的實(shí)例(對(duì)象和實(shí)例兩個(gè)詞通??梢曰Q),創(chuàng)建對(duì)象也稱(chēng)為類(lèi)的實(shí)例化,可以從一個(gè)類(lèi)中創(chuàng)建多個(gè)實(shí)例。例如可以利用上面創(chuàng)建的“圓”類(lèi)創(chuàng)建多個(gè)不同半徑的具體圓。創(chuàng)建對(duì)象的一般格式:

類(lèi)名對(duì)象名;//聲明對(duì)象變量對(duì)象名=new類(lèi)名();

//創(chuàng)建對(duì)象也可以將以上兩個(gè)語(yǔ)句進(jìn)行合并,使用下面的格式創(chuàng)建對(duì)象:

類(lèi)名對(duì)象名=new類(lèi)名();//聲明對(duì)象變量的同時(shí)初始化對(duì)象如用上面定義的Circle類(lèi)創(chuàng)建一個(gè)對(duì)象myCircle:

CirclemyCircle=newCircle();也可以使用:

CirclemyCircle;myCircle=newCircle();四、使用Java對(duì)象對(duì)象的使用原則也是先定義后使用。在創(chuàng)建了類(lèi)的一個(gè)對(duì)象之后,用戶就可以訪問(wèn)這個(gè)對(duì)象的各個(gè)成員,并進(jìn)行各種操作了。在使用(訪問(wèn))對(duì)象時(shí),不能將一個(gè)實(shí)例對(duì)象作為整體進(jìn)行引用,只能引用對(duì)象中的成員(變量和方法)。訪問(wèn)對(duì)象成員的一般方法是:

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

對(duì)象名.方法成員名()四、使用Java對(duì)象【例3-2】利用Circle類(lèi)創(chuàng)建對(duì)象,并通過(guò)對(duì)象引用其成員。publicclassTestCircle{publicstaticvoidmain(Stringargs[]){CirclemyCircle=newCircle();System.out.println("Theareeofthecircleofradius"+myCircle.radius+"is"+myCircle.findArea());}}classCircle{

doubleradius=10.5;

doublefindArea(){

returnradius*radius*3.14159;

}}四、使用Java對(duì)象【例3-3】利用例3-1中定義的類(lèi)Box,創(chuàng)建兩個(gè)對(duì)象myBox1、myBox2,分別計(jì)算它們的體積。classBox{

doublelenth;

doublewidth;doubleheight;

voidsetlwh(doublel,doublew,doubleh){

lenth=l;

width=w;

height=h;

}doublevolume(){

returnlenth*width*height;}}publicclassTestBox{publicstaticvoidmain(Stringargs[]){

Boxmybox1=newBox();

Boxmybox2=newBox();

doublevol1,vol2;

mybox1.setlwh(10,20,15);

vol1=mybox1.volume();

mybox2.setlwh(12.8,89,153);

vol2=mybox2.volume();

System.out.println("mybox1的體積是:"+vol1);

System.out.println("mybox2的體積是:"+vol2);}}五、構(gòu)造方法構(gòu)造方法也稱(chēng)為構(gòu)造函數(shù),其作用是在創(chuàng)建對(duì)象時(shí)初始化對(duì)象的屬性。如:

classCircle{

doubleradius;

doublefindArea(){

returnradius*radius*3.14159;

}

Circle(doubler){//帶參數(shù)的構(gòu)造方法

radius=r;

}

Circle(){ //無(wú)參的構(gòu)造方法

radius=5.0;

}

}若要?jiǎng)?chuàng)建一個(gè)半徑為10的圓,則可使用如下語(yǔ)句:

myCircle=newCircle(10.0)

;系統(tǒng)自動(dòng)將myCircle.radius賦值為10.0。若使用如下語(yǔ)句創(chuàng)建對(duì)象:

myCircle=newCircle()

;則調(diào)用Circle類(lèi)中的第二個(gè)構(gòu)造方法(無(wú)參的構(gòu)造方法),將默認(rèn)的半徑值5.0賦值給myCircle.radius。五、構(gòu)造方法構(gòu)造方法也稱(chēng)為構(gòu)造函數(shù),其作用是在創(chuàng)建對(duì)象時(shí)初始化對(duì)象的屬性。構(gòu)造方法是一種特殊的方法成員,其特殊性表現(xiàn)在以下幾個(gè)方面:1)構(gòu)造方法名必須與它所在的類(lèi)同名。2)構(gòu)造方法沒(méi)有任何返回值,void類(lèi)型也沒(méi)有。3)一個(gè)類(lèi)可以定義零個(gè)或多個(gè)構(gòu)造方法。4)構(gòu)造方法在創(chuàng)建對(duì)象時(shí)由new運(yùn)算符自動(dòng)調(diào)用完成對(duì)象的初始化,不能顯式地直接調(diào)用。五、構(gòu)造方法【例3-4】構(gòu)造方法的使用。計(jì)算長(zhǎng)、寬、高分別為10、20、15的長(zhǎng)方體的體積。為了能在創(chuàng)建對(duì)象時(shí)對(duì)所創(chuàng)建盒子的尺寸自動(dòng)進(jìn)行初始化,定義構(gòu)造函數(shù)Box()對(duì)變量進(jìn)行賦值。classBox1{

//定義Box1類(lèi)

doublelenth;

doublewidth;

doubleheight;

Box1(){

//定義構(gòu)造函數(shù)Box()

lenth=10;

width=20;

height=15;

}

doublevolume(){

//定義計(jì)算長(zhǎng)方體體積的方法

returnlenth*width*height;

}}

classBoxDemo1{

publicstaticvoidmain(Stringargs[]){

Box1mybox=newBox1();

doublevol;vol=mybox.volume();

System.out.println("mybox的體積是:"+vol);

}}五、構(gòu)造方法【例3-5】計(jì)算長(zhǎng)、寬、高分別為10、20、15和3、6、9的長(zhǎng)方體的體積。classBox2{

//定義Box2類(lèi)

doublelenth;

doublewidth;

doubleheight;

Box2(doublel,doublew,doubleh){ //定義帶參數(shù)構(gòu)造函數(shù)Box()

lenth=l;

width=w;

height=h;

}

doublevolume(){

//定義計(jì)算長(zhǎng)方體體積的方法

returnlenth*width*height;

}}

classBoxDemo2{

publicstaticvoidmain(Stringargs[]){

Boxmybox1=newBox(10,20,15);

Boxmybox2=newBox(3,6,9);

doublevol1,vol2;

vol1=mybox1.volume();

vol2=mybox2.volume();

System.out.println("mybox1的體積是:"+vol1);

System.out.println("mybox2的體積是:"+vol2);

}}五、構(gòu)造方法使用構(gòu)造方法需要特別注意的問(wèn)題:在Java程序中,一個(gè)類(lèi)可以定義零個(gè)或多個(gè)構(gòu)造方法,只要它們的參數(shù)不同即可。如果用戶沒(méi)有顯式地為類(lèi)定義構(gòu)造方法,系統(tǒng)將為該類(lèi)創(chuàng)建一個(gè)默認(rèn)的構(gòu)造方

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論