面向?qū)ο蠹夹g(shù)_第1頁(yè)
面向?qū)ο蠹夹g(shù)_第2頁(yè)
面向?qū)ο蠹夹g(shù)_第3頁(yè)
面向?qū)ο蠹夹g(shù)_第4頁(yè)
面向?qū)ο蠹夹g(shù)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蠹夹g(shù)1第1頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院2本章內(nèi)容3.1面向?qū)ο蠹夹g(shù)基礎(chǔ)3.2Java語(yǔ)言的面向?qū)ο筇匦缘?頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院33.1面向?qū)ο蠹夹g(shù)基礎(chǔ)第3頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院43.1.1面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕舅枷?/p>

面向?qū)ο笫且环N新興的程序設(shè)計(jì)方法,或者是一種新的程序設(shè)計(jì)規(guī)范(paradigm),其基本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系統(tǒng),并且在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類(lèi)的自然思維方式。開(kāi)發(fā)一個(gè)軟件是為了解決某些問(wèn)題,這些問(wèn)題所涉及的業(yè)務(wù)范圍稱(chēng)作該軟件的問(wèn)題域。其應(yīng)用領(lǐng)域不僅僅是軟件,還有計(jì)算機(jī)體系結(jié)構(gòu)和人工智能等。

第4頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院53.1.1面向?qū)ο蟮幕靖拍?.對(duì)象的基本概念

對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。主動(dòng)對(duì)象是一組屬性和一組服務(wù)的封裝體,其中至少有一個(gè)服務(wù)不需要接收消息就能主動(dòng)執(zhí)行(稱(chēng)作主動(dòng)服務(wù))。2.類(lèi)的基本概念

類(lèi)是具有相同屬性和服務(wù)的一組對(duì)象的集合,它為屬于該類(lèi)的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個(gè)主要部分。在面向?qū)ο蟮木幊陶Z(yǔ)言中,類(lèi)是一個(gè)獨(dú)立的程序單位,它應(yīng)該有一個(gè)類(lèi)名并包括屬性說(shuō)明和服務(wù)說(shuō)明兩個(gè)主要部分。3.消息 消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求,它應(yīng)該包含下述信息:提供服務(wù)的對(duì)象標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、輸入信息和回答信息。服務(wù)通常被稱(chēng)為方法或函數(shù)。第5頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院63.1.2面向?qū)ο蟮幕咎卣?.封裝性

封裝性就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的相同單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),包含兩個(gè)含義:

把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(即對(duì)象)。

信息隱蔽,即盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),對(duì)外形成一個(gè)邊界〔或者說(shuō)形成一道屏障〕,只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。

封裝的原則在軟件上的反映是:要求使對(duì)象以外的部分不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù)(屬性),從而有效的避免了外部錯(cuò)誤對(duì)它的"交叉感染",使軟件錯(cuò)誤能夠局部化,大大減少查錯(cuò)和排錯(cuò)的難度。第6頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院73.1.2面向?qū)ο蟮幕咎卣?.繼承性

特殊類(lèi)的對(duì)象擁有其一般類(lèi)的全部屬性與服務(wù),稱(chēng)作特殊類(lèi)對(duì)一般類(lèi)的繼承。 一個(gè)類(lèi)可以是多個(gè)一般類(lèi)的特殊類(lèi),它從多個(gè)一般類(lèi)中繼承了屬性與服務(wù),這稱(chēng)為多繼承。 在java語(yǔ)言中,通常我們稱(chēng)一般類(lèi)為父類(lèi)(superclass,超類(lèi)),特殊類(lèi)為子類(lèi)(subclass)。3.多態(tài)性

對(duì)象的多態(tài)性是指在一般類(lèi)中定義的屬性或服務(wù)被特殊類(lèi)繼承之后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或服務(wù)在一般類(lèi)及其各個(gè)特殊類(lèi)中具有不同的語(yǔ)義。例如:"幾何圖形"的"繪圖"方法,"橢圓"和"多邊形"都是"幾何圖"的子類(lèi),其"繪圖"方法功能不同。第7頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院83.1.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法

OOA-ObjectOrientedAnalysis面向?qū)ο蟮姆治鯫OD-ObjectOrientedDesign面向?qū)ο蟮脑O(shè)計(jì)OOI-ObjectOrientedImplementation面向?qū)ο蟮膶?shí)現(xiàn)第8頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院93.2Java語(yǔ)言的面向?qū)ο筇匦缘?頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院103.2.1類(lèi)類(lèi)是java中的一種重要的復(fù)合數(shù)據(jù)類(lèi)型,是組成java程序的基本要素。它封裝了一類(lèi)對(duì)象的狀態(tài)和方法,是這一類(lèi)對(duì)象的原形。一個(gè)類(lèi)的實(shí)現(xiàn)包括兩個(gè)部分:類(lèi)聲明和類(lèi)體1.類(lèi)聲明:

[public][abstract|final]classclassName[extendssuperclassName][implementsinterfaceNameList]

{……}

其中,修飾符public,abstract,final說(shuō)明了類(lèi)的屬性,className為類(lèi)名,superclassName為類(lèi)的父類(lèi)的名字,interfaceNameList為類(lèi)所實(shí)現(xiàn)的接口列表。第10頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院113.2.1類(lèi)2.類(lèi)體

類(lèi)體定義如下:

classclassName

{[public|protected|private][static]

[final][transient][volatile]type

variableName;

//成員變量

[public|protected|private][static]

[final|abstract][native][synchronized]

returnTypemethodName([paramList])[throwsexceptionList]

{statements}

//成員方法

}

第11頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院123.2.1類(lèi)3.成員變量

成員變量的聲明方式如下:

[public|protected|private][static]

[final][transient][volatile]type

variableName;

//成員變量

其中,

static:靜態(tài)變量(類(lèi)變量);相對(duì)于實(shí)例變量

final:常量

transient:暫時(shí)性變量,用于對(duì)象存檔,用于對(duì)象的串行化,見(jiàn)對(duì)象的串行化一節(jié)

volatile:貢獻(xiàn)變量,用于并發(fā)線程的共享

第12頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院133.2.1類(lèi)4.成員方法

方法的實(shí)現(xiàn)包括兩部分內(nèi)容:方法聲明和方法體。

[public|protected|private][static]

[final

|abstract][native][synchronized]

returnTypemethodName([paramList])

[throwsexceptionList]

//方法聲明

{statements}

//方法體

方法聲明中的限定詞的含義:

static:類(lèi)方法,可通過(guò)類(lèi)名直接調(diào)用

abstract:抽象方法,沒(méi)有方法體

final:方法不能被重寫(xiě)

native:集成其它語(yǔ)言的代碼

synchronized:控制多個(gè)并發(fā)線程的訪問(wèn)第13頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院143.2.1類(lèi)

方法聲明

方法聲明包括方法名、返回類(lèi)型和外部參數(shù)。其中參數(shù)的類(lèi)型可以是簡(jiǎn)單數(shù)據(jù)類(lèi)型,也可以是復(fù)合數(shù)據(jù)類(lèi)型(又稱(chēng)引用數(shù)據(jù)類(lèi)型)。

對(duì)于簡(jiǎn)單數(shù)據(jù)類(lèi)型來(lái)說(shuō),java實(shí)現(xiàn)的是值傳遞,方法接收參數(shù)的值,但不能改變這些參數(shù)的值。如果要改變參數(shù)的值,則用引用數(shù)據(jù)類(lèi)型,因?yàn)橐脭?shù)據(jù)類(lèi)型傳遞給方法的是數(shù)據(jù)在內(nèi)存中的地址,方法中對(duì)數(shù)據(jù)的操作可以改變數(shù)據(jù)的值。

例3-1說(shuō)明了簡(jiǎn)單數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)的區(qū)別。第14頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院15【例3-1】

importjava.io.*;

publicclassPassTest{

floatptValue;

publicstaticvoidmain(Stringargs[]){

intval;

PassTestpt=newPassTest();

val=11;

System.out.println("OriginalIntValueis:"+val);

pt.changeInt(val);

//值參數(shù)

System.out.println("IntValueafterChangeis:"+val);/*值參數(shù)值的修改,沒(méi)有影響值參數(shù)的值*/

pt.ptValue=101f;

System.out.println("OriginalptValueis:"+pt.ptValue);

pt.changeObjValue(pt);//引用類(lèi)型的參數(shù)

System.out.println("ptValueafterChangeis:"+pt.ptValue);/*引用參數(shù)值的修改,改變了引用參數(shù)的值*/

}

publicvoidchangeInt(intvalue){

value=55;

//在方法內(nèi)部對(duì)值參數(shù)進(jìn)行了修改

}

publicvoidchangeObjValue(PassTestref){

ref.ptValue=99f;

//在方法內(nèi)部對(duì)引用參數(shù)進(jìn)行了修改

}

}第15頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院163.2.1類(lèi)

方法體

方法體是對(duì)方法的實(shí)現(xiàn),它包括局部變量的聲明以及所有合法的Java指令。方法體中聲明的局部變量的作用域在該方法內(nèi)部。若局部變量與類(lèi)的成員變量同名,則類(lèi)的成員變量被隱藏。

為了區(qū)別參數(shù)和類(lèi)的成員變量,我們必須使用this。this-----用在一個(gè)方法中引用當(dāng)前對(duì)象,它的值是調(diào)用該方法的對(duì)象。返回值須與返回類(lèi)型一致,或者完全相同,或是其子類(lèi)。當(dāng)返回類(lèi)型是接口時(shí),返回值必須實(shí)現(xiàn)該接口。第16頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院173.2.1類(lèi)5.方法重載

方法重載是指多個(gè)方法享有相同的名字,但是這些方法的參數(shù)必須不同,或者是參數(shù)的個(gè)數(shù)不同,或者是參數(shù)類(lèi)型不同。返回類(lèi)型不能用來(lái)區(qū)分重載的方法。

參數(shù)類(lèi)型的區(qū)分度一定要足夠,例如不能是同一簡(jiǎn)單類(lèi)型的參數(shù),如int與long。編譯器會(huì)根據(jù)參數(shù)的個(gè)數(shù)和類(lèi)型來(lái)決定當(dāng)前所使用的方法。6.構(gòu)造方法

構(gòu)造方法是一個(gè)特殊的方法。Java中的每個(gè)類(lèi)都有構(gòu)造方法,用來(lái)初始化該類(lèi)的一個(gè)對(duì)象。

構(gòu)造方法具有和類(lèi)名相同的名稱(chēng),而且不返回任何數(shù)據(jù)類(lèi)型。

重載經(jīng)常用于構(gòu)造方法。

構(gòu)造方法只能由new運(yùn)算符調(diào)用3.2.2對(duì)象

類(lèi)實(shí)例化可生成對(duì)象,對(duì)象通過(guò)消息傳遞來(lái)進(jìn)行交互。消息傳遞即激活指定的某個(gè)對(duì)象的方法以改變其狀態(tài)或讓它產(chǎn)生一定的行為。一個(gè)對(duì)象的生命周期包括三個(gè)階段:生成、使用和消除。對(duì)象的清除

當(dāng)不存在對(duì)一個(gè)對(duì)象的引用時(shí),該對(duì)象成為一個(gè)無(wú)用對(duì)象。Java的垃圾收集器自動(dòng)掃描對(duì)象的動(dòng)態(tài)內(nèi)存區(qū),把沒(méi)有引用的對(duì)象作為垃圾收集起來(lái)并釋放。System.gc();

System.exit();//terminatethecurrentJVM

當(dāng)系統(tǒng)內(nèi)存用盡或調(diào)用System.gc()要求垃圾回收時(shí),垃圾回收線程與系統(tǒng)同步運(yùn)行。第17頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院183.2.3面向?qū)ο筇匦詊ava語(yǔ)言中有三個(gè)典型的面向?qū)ο蟮奶匦裕悍庋b性、繼承性和多態(tài)性。

1.封裝性

java語(yǔ)言中,對(duì)象就是對(duì)一組變量和相關(guān)方法的封裝,其中變量表明了對(duì)象的狀態(tài),方法表明了對(duì)象具有的行為。通過(guò)對(duì)象的封裝,實(shí)現(xiàn)了模塊化和信息隱藏。通過(guò)對(duì)類(lèi)的成員施以一定的訪問(wèn)權(quán)限,實(shí)現(xiàn)了類(lèi)中成員的信息隱藏。

java類(lèi)中的限定詞

java語(yǔ)言中有四種不同的限定詞,提供了四種不同的訪問(wèn)權(quán)限。

1)private

類(lèi)中限定為private的成員,只能被這個(gè)類(lèi)本身訪問(wèn)。

如果一個(gè)類(lèi)的構(gòu)造方法聲明為private,則其它類(lèi)不能生成該類(lèi)的一個(gè)實(shí)例。

2)default

類(lèi)中不加任何訪問(wèn)權(quán)限限定的成員屬于缺省的(default)訪問(wèn)狀態(tài):friend,可以被這個(gè)類(lèi)本身和同一個(gè)包中的類(lèi)所訪問(wèn)。第18頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院193.2.3面向?qū)ο筇匦?)protected

類(lèi)中限定為protected的成員,可以被這個(gè)類(lèi)本身、它的子類(lèi)(包括同一個(gè)包中以及不同包中的子類(lèi))和同一個(gè)包中的所有其他的類(lèi)訪問(wèn)。

4)public

類(lèi)中限定為public的成員,可以被所有的類(lèi)訪問(wèn)。

【表3-1】

java中類(lèi)的限定詞的作用范圍比較同一個(gè)類(lèi)同一個(gè)包不同包的子類(lèi)不同包非子類(lèi)private*

default**

protected***

public****

第19頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院203.2.3面向?qū)ο筇匦?.繼承性

通過(guò)繼承實(shí)現(xiàn)代碼復(fù)用。Java中所有的類(lèi)都是通過(guò)直接或間接地繼承java.lang.Object類(lèi)得到的。繼承而得到的類(lèi)稱(chēng)為子類(lèi),被繼承的類(lèi)稱(chēng)為父類(lèi)。子類(lèi)不能繼承父類(lèi)中訪問(wèn)權(quán)限為private的成員變量和方法。子類(lèi)可以重寫(xiě)父類(lèi)的方法,及命名與父類(lèi)同名的成員變量。但Java不支持多重繼承,即一個(gè)類(lèi)從多個(gè)超類(lèi)派生的能力。

成員變量的隱藏和方法的重寫(xiě)

子類(lèi)通過(guò)隱藏父類(lèi)的成員變量和重寫(xiě)父類(lèi)的方法,可以把父類(lèi)的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。第20頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院213.2.3面向?qū)ο筇匦岳纾?/p>

classSuperClass{

intx;…

voidsetX(){x=0;}…

}

classSubClassextendsSuperClass{

intx;

//隱藏了父類(lèi)的變量x

voidsetX(){//重寫(xiě)了父類(lèi)的方法setX()

x=5;}….

}

注意:子類(lèi)中重寫(xiě)的方法和父類(lèi)中被重寫(xiě)的方法要具有相同的名字,相同的參數(shù)表和相同的返回類(lèi)型,只是函數(shù)體不同。第21頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院223.2.3面向?qū)ο筇匦?/p>

super

java中通過(guò)super來(lái)實(shí)現(xiàn)對(duì)父類(lèi)成員的訪問(wèn),super用來(lái)引用當(dāng)前對(duì)象的父類(lèi)。Super的使用有三種情況:

1)訪問(wèn)父類(lèi)被隱藏的成員變量,如:

super.variable;

2)調(diào)用父類(lèi)中被重寫(xiě)的方法,如:

super.Method([paramlist]);

3)調(diào)用父類(lèi)的構(gòu)造函數(shù),如:

super([paramlist]);

第22頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院23【例3-5】

importjava.io.*;

classSuperClass{

intx;

SuperClass(){

x=3;

System.out.println("inSuperClass:x="+x);

}

voiddoSomething(){

System.out.println("inSuperClass.doSomething()");

}

}

classSubClassextendsSuperClass{

intx;

SubClass(){

super();

//調(diào)用父類(lèi)的構(gòu)造方法

x=5;

//super()要放在方法中的第一句

System.out.println("inSubClass:x="+x);

}

voiddoSomething(){

super.doSomething();//調(diào)用父類(lèi)的方法

System.out.println("inSubClass.doSomething()");

System.out.println("super.x="+super.x+"sub.x="+x);

}

}

publicclassInheritance{

publicstaticvoidmain(Stringargs[]){

SubClasssubC=newSubClass();

subC.doSomething();

}

}

第23頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院243.2.3面向?qū)ο筇匦?.多態(tài)性

在java語(yǔ)言中,多態(tài)性體現(xiàn)在兩個(gè)方面:由方法重載實(shí)現(xiàn)的靜態(tài)多態(tài)性(編譯時(shí)多態(tài))和方法重寫(xiě)實(shí)現(xiàn)的動(dòng)態(tài)多態(tài)性(運(yùn)行時(shí)多態(tài))。

1)編譯時(shí)多態(tài)

在編譯階段,具體調(diào)用哪個(gè)被重載的方法,編譯器會(huì)根據(jù)參數(shù)的不同來(lái)靜態(tài)確定調(diào)用相應(yīng)的方法。

2)運(yùn)行時(shí)多態(tài)

由于子類(lèi)繼承了父類(lèi)所有的屬性(私有的除外),所以子類(lèi)對(duì)象可以作為父類(lèi)對(duì)象使用。程序中凡是使用父類(lèi)對(duì)象的地方,都可以用子類(lèi)對(duì)象來(lái)代替。一個(gè)對(duì)象可以通過(guò)引用子類(lèi)的實(shí)例來(lái)調(diào)用子類(lèi)的方法。

重寫(xiě)方法的調(diào)用原則:java運(yùn)行時(shí)系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例,來(lái)決定調(diào)用哪個(gè)方法。對(duì)子類(lèi)的一個(gè)實(shí)例,如果子類(lèi)重寫(xiě)了父類(lèi)的方法,則運(yùn)行時(shí)系統(tǒng)調(diào)用子類(lèi)的方法;如果子類(lèi)繼承了父類(lèi)的方法(未重寫(xiě)),則運(yùn)行時(shí)系統(tǒng)調(diào)用父類(lèi)的方法。

在例3-6中,父類(lèi)對(duì)象a引用的是子類(lèi)的實(shí)例,所以,java運(yùn)行時(shí)調(diào)用子類(lèi)B的callme方法。第24頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院25【例3-6】

importjava.io.*;

classA{

voidcallme(){

System.out.println("InsideA'scallme()method");

}

}

classBextendsA{

voidcallme(){

System.out.println("InsideB'scallme()Method");

}

}

publicclassDispatch{

publicstaticvoidmain(Stringargs[]){

Aa=newB();

a.callme();

}

}

方法重寫(xiě)時(shí)應(yīng)遵循的原則:

1)改寫(xiě)后的方法不能比被重寫(xiě)的方法有更嚴(yán)格的訪問(wèn)權(quán)限(可以相同)。

2)改寫(xiě)后的方法不能比重寫(xiě)的方法產(chǎn)生更多的例外。第25頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院263.2.3面向?qū)ο筇匦?.其它

final關(guān)鍵字

final關(guān)鍵字可以修飾類(lèi)、類(lèi)的成員變量和成員方法,但final的作用不同。

1)final修飾成員變量:

final修飾變量,則成為常量,例如

finaltypevariableName;

修飾成員變量時(shí),定義時(shí)同時(shí)給出初始值,且以后不能被修改,而修飾局部變量時(shí)不做要求。

2)final修飾成員方法:

final修飾方法,則該方法不能被子類(lèi)重寫(xiě)

finalreturnTypemethodName(paramList){...}

3)final類(lèi):

final修飾類(lèi),則類(lèi)不能被繼承

finalclassfinalClassName{...}第26頁(yè),課件共28頁(yè),創(chuàng)作于2023年2月軟件學(xué)院273.2.3面向?qū)ο筇匦?/p>

實(shí)例成員和類(lèi)成員用static關(guān)鍵字可以聲明類(lèi)變量和類(lèi)方法,其格式如下:statictypeclassVar;staticreturnTypeclassMethod({paramlist}){

…}如果在聲明時(shí)不用static關(guān)鍵字修飾,則聲明為實(shí)例變量和實(shí)例方法。1)實(shí)例變量和類(lèi)變量每個(gè)對(duì)象的實(shí)例變量都分配內(nèi)存,通過(guò)該對(duì)象來(lái)訪問(wèn)這些實(shí)例變量,不同的實(shí)例變量是不同的。類(lèi)變量?jī)H在生成第一個(gè)對(duì)象時(shí)分配內(nèi)存,所有實(shí)例對(duì)象共享同一個(gè)類(lèi)變量,每個(gè)實(shí)例對(duì)象對(duì)類(lèi)變量的改變都會(huì)影響到其它的實(shí)例對(duì)象。類(lèi)變量可通過(guò)類(lèi)名直接訪問(wèn),無(wú)需先生成一個(gè)實(shí)例對(duì)象,也可

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論