面向?qū)ο蟮木幊袒菊Z法演示文稿_第1頁
面向?qū)ο蟮木幊袒菊Z法演示文稿_第2頁
面向?qū)ο蟮木幊袒菊Z法演示文稿_第3頁
面向?qū)ο蟮木幊袒菊Z法演示文稿_第4頁
面向?qū)ο蟮木幊袒菊Z法演示文稿_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟮木幊袒菊Z法演示文稿第一頁,共九十一頁。優(yōu)選面向?qū)ο蟮木幊袒菊Z法第二頁,共九十一頁。程序設(shè)計語言的發(fā)展機器語言-由計算機硬件系統(tǒng)可以識別的二進制指令組成的語言,這種語言中的指令都是由0,1組成的序列,稱這樣的序列為一條機器指令。如101101110001匯編語言-由機器指令映射出來的容易被人讀懂的助記憶符,如ADDDXCX高級語言機器碼——低級——高級第三頁,共九十一頁。面向過程的程序設(shè)計設(shè)計思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu)按功能劃分為若干個基本模塊,形成一個樹狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡單,功能上相對獨立;每一模塊內(nèi)部均由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實現(xiàn)的具體方法是使用子程序。優(yōu)點有效地將一個較復雜地程序系統(tǒng)設(shè)計任務分解成許多易于控制和處理的子任務,便于開發(fā)和維護。第四頁,共九十一頁。面向過程的程序設(shè)計的局限在面向過程程序設(shè)計中,被操作的數(shù)據(jù)仍然是嵌入在編程語句中的,并且與程序邏輯混合在一起,計算機的信息世界與現(xiàn)實世界之間的映射關(guān)系仍然不直接,不明確。用面向過程的方法開發(fā)較大的軟件系統(tǒng),數(shù)據(jù)缺乏保護。使用面向過程程序設(shè)計方法建立的應用程序是很難修改。第五頁,共九十一頁。面向?qū)ο蟪绦蛟O(shè)計的概念面向?qū)ο蟪绦蛟O(shè)計是建立在結(jié)構(gòu)化程序設(shè)計基礎(chǔ)上的,但它不再是從功能入手,而是從對象(人、地方、事情等)入手;面向?qū)ο蟪绦蛟O(shè)計以類作為構(gòu)造程序的基本單位,它具有封裝、數(shù)據(jù)抽象、繼承、多態(tài)等特點;第六頁,共九十一頁。面向?qū)ο蟮姆椒▽W世界是由什么組成的?名勝人物品動物,植物……

第七頁,共九十一頁。對象一般意義上的對象是現(xiàn)實世界中的一個實際存在的事物,可以是有形的(比如一輛汽車),也可以是無形的(比如一項計劃),是構(gòu)成世界的一個獨立單位,具有:

對象標識:即對象名,是一個對象區(qū)別于其他對象標識符。

對象狀態(tài):可以用某種數(shù)據(jù)來描述

對象行為:對象所表現(xiàn)的行為或具有的功能第八頁,共九十一頁。對象

顏色:灰色

排量:3.0剎車產(chǎn)地:德國行駛名字:保時捷行為狀態(tài)

顏色:紅色

排量:4.0剎車產(chǎn)地:意大利行駛名字:法拉利行為狀態(tài)有各自不同的狀態(tài)第九頁,共九十一頁。對象布蘭尼朱麗葉顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印賬單第十頁,共九十一頁。對象的特征——屬性屬性——對象具有的各種特征每個對象的每個屬性都擁有特定值例如:布蘭尼和朱麗葉的體重不一樣

60kg布蘭尼屬性

35歲收銀員布蘭尼第十一頁,共九十一頁。對象的特征——方法方法——對象執(zhí)行的操作打單收銀方法刷卡收銀員布蘭尼第十二頁,共九十一頁。對象的屬性和方法列出尼古拉斯·凱奇駕駛的這輛法拉利F360Spider的屬性和方法列出小狗對象的屬性和方法屬性:品牌:法拉利型號:F360Spider

顏色:黃色價格:380萬元方法:發(fā)動停止加速屬性:

顏色:白色方法:

叫跑吃第十三頁,共九十一頁。說一說教室里的對象描述他們的屬性和方法顏色:黑色品牌:BENQ投影姓名:張三年齡:20學習第十四頁,共九十一頁。抽象分類-人類通常的思維方式分類所依據(jù)的原則-抽象忽略事物的非本質(zhì)特征,只注意那些與當前目標有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個抽象的概念。第十五頁,共九十一頁。抽象對象類(抽象化)Shape第十六頁,共九十一頁。從對象抽象出“類”抽取出下列對象的屬性和方法的共同特征

轎車顧客第十七頁,共九十一頁。類面向?qū)ο蠓椒ㄖ械摹邦悺本哂邢嗤瑢傩院头椒ǖ囊唤M對象的抽象的描述。類的數(shù)據(jù)成員是對對象屬性的抽象,類的方法成員是對對象行為的抽象,而類本身就是對對象的抽象。類與對象的關(guān)系猶如模具和鑄件之間的關(guān)系,一個屬于某類的對象稱為該類的一個實例。第十八頁,共九十一頁。對象類(抽象化)類對象(具體化)王艷2年級3班劉強5年級1班范小飛2年級1班Student類第十九頁,共九十一頁。類和對象小汽車

顏色:灰色

排量:3.0

剎車產(chǎn)地:德國行駛名字:保時捷行為狀態(tài)類的實例化,是由類具體化對象類產(chǎn)地車體顏色行駛剎車…歸納一組相似對象的共性對象屬性方法第二十頁,共九十一頁。封裝把對象的屬性和方法結(jié)合成一個獨立的系統(tǒng)單位對象的屬性和方法通常被封裝在一起,共同體現(xiàn)事物的特性,二者相輔相承,不能分割第二十一頁,共九十一頁。封裝封裝第一個涵義是,把對象的全部屬性和全部服務結(jié)合在一起,形成一個不可分割的獨立單位(即對象)。第二個涵義也稱作“信息隱蔽”,即盡可能隱蔽對象的內(nèi)部細節(jié),對外形成一個邊界(或者說形成一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。第二十二頁,共九十一頁。繼承繼承是面向?qū)ο笳Z言的另一特性。類與類之間可以組成繼承層次,一個類的定義(子類)可以定義在另一個已定義類(父類)的基礎(chǔ)上。子類可以繼承父類中的屬性和操作,也可以定義自己的屬性和操作。因而具有繼承這一特性所帶來的優(yōu)勢,大大增加了程序的重用性。第二十三頁,共九十一頁。面向?qū)ο蟮姆椒▽W繼承ShapeTriangleRectangleEllipseSquarePolygonCircle汽車轎車跑有四個輪子跑有四個輪子第二十四頁,共九十一頁。多態(tài)多態(tài)性多態(tài)性是指不同類型的對象接收相同的消息時產(chǎn)生不同的行為。如電梯系統(tǒng)中,當向按鈕對象發(fā)送消息pressButton()時,不同按鈕對象如電梯內(nèi)部按鈕(ElevatorButton)和樓層按鈕(FloorButton)會自動判斷自己的所屬類并執(zhí)行相應的服務。第二十五頁,共九十一頁。消息機制在面向?qū)ο蠹夹g(shù)中,對象間的交互是通過消息的傳遞來完成的。消息處理方法就是對象的成員方法。Windows操作系統(tǒng)也是以消息為基礎(chǔ),事件為驅(qū)動的。第二十六頁,共九十一頁。3.2類的定義類是對象的模板,使用對象前必須先創(chuàng)建類[修飾符]class

類名[extends父類][implements接口名]

{

成員變量聲明; //描述對象的狀態(tài)方法聲明; //實現(xiàn)對象的行為}publicclassCustomer{ publicstring name; publicdouble creditLimit; publicint customerID;}類訪問修飾符默認為:friendly

第二十七頁,共九十一頁。3.2類的定義類是組成Java程序的基本要素。類封裝了一類對象的狀態(tài)和方法。類是用來定義對象的模板。類的實現(xiàn)包括兩部分:類聲明和類體?!癱lassCustomer”叫做類聲明;“Customer”是類名。習慣上類名的第一個字母大寫,但這不是必須的。類聲明之后的一對大括號“{”,“}”以及它們之間的內(nèi)容稱做類體。第二十八頁,共九十一頁。3.2類的定義

類修飾符:public公共類、private私有類、protected受保護類;abstract抽象類;final最終類。

class:是關(guān)鍵字,是聲明類的必須的符號。

類名:是類設(shè)計者指定的標識符。

父類:如果正在定義的類需要從另一個類中繼承所有的成員,被繼承的類就是父類。第二十九頁,共九十一頁。類的訪問控制頂層類只能是public或默認訪問級別public級別的類可以被同一個包或者其他包中的類訪問默認級別的類只能被同一個包中的類訪問publicclassSample{…}//public級別classSample{…}//默認訪問級別protectedclassSample{…}//非法privateclassSample{…}//非法第三十頁,共九十一頁。classtrapezia

{floatsupside,subside,high,area;//變量定義部分

floatcomputeArea()//方法定義

{area=(supside+subside)*high/2.0f;returnarea;}voidmodifyHigh(floath)//方法定義

{high=h;}}3.2類的定義第三十一頁,共九十一頁。成員變量成員變量是用來描述事物的靜態(tài)特征的。修飾符[修飾符]數(shù)據(jù)類型變量名;public:可被所有其他類引用。private:僅可被該類自身引用和修改,不能被其他任何類(包括子類)引用。protected:該類自身、子類、同一包中的其他類。缺?。罕景械念悺tatic:類成員變量,對所有的實例一致,引用時前綴可使用類名或?qū)ο竺?。final:數(shù)值不變常量,定義同時應對其進行初始化。第三十二頁,共九十一頁。成員變量和局部變量類中變量定義部分所定義的變量被稱為類的成員變量。在方法體中定義的變量和方法的參數(shù)被稱為局部變量。成員變量在整個類內(nèi)都有效,局部變量只在定義它的方法內(nèi)有效。如果局部變量的名字與成員變量的名字相同,則成員變量被隱藏。這時如果想在該方法內(nèi)使用成員變量,必須使用關(guān)鍵字this。第三十三頁,共九十一頁。變量1類型變量1;變量2類型變量2;變量3類型變量3;public返回類型方法1(){

變量4類型變量4;}public返回類型方法2(){

變量5類型變量5;}publicclassAutoLion{}AutoLion類的方法別的類的方法誰能使用這些變量?方法1方法2成員變量局部變量局部變量成員變量和局部變量第三十四頁,共九十一頁。publicclassAutoLion{Stringcolor="黃色";publicvoidrun(){//方法1:跑System.out.println("正在以0.1米/秒的速度向前奔跑。");}

publicStringbark(){//方法2:叫Stringsound="吼";returnsound;}

publicStringgetColor(){//方法3:獲得顏色屬性returncolor;}

publicStringshowLion(){//方法4:輸出類的描述信息return"這是一個"+getColor()+"的玩具獅子!叫聲是"+sound;}}可以調(diào)用嗎?成員變量和局部變量第三十五頁,共九十一頁。類的方法(2)類的方法類的方法,用來規(guī)定類屬性上的操作,實現(xiàn)類對外界提供的服務,也是類與外界交流的接口。

Java中聲明方法的語法如下:

[修飾符]返回值類型方法名(參數(shù)列表)throws異常1{//方法體聲明局部變量聲明;語句序列;}第三十六頁,共九十一頁。類和對象類:相對對象而言,類似于藍圖包含方法和數(shù)據(jù)對象:是類的實例使用關(guān)鍵字new創(chuàng)建對象具有行為對象廚房起居室浴室書房飯廳儲藏室門廊類第三十七頁,共九十一頁。3.2.2創(chuàng)建類的實例對象創(chuàng)建一個對象包括對象的聲明和為對象分配內(nèi)存兩個步驟。

(1).對象的聲明。一般格式為:

PersonzhangPing;類的名字對象名字;如:第三十八頁,共九十一頁。3.2.2創(chuàng)建類的實例對象(2)為聲明的對象分配內(nèi)存使用new運算符為聲明的對象分配內(nèi)存。如:

zhangPing=newPerson();第三十九頁,共九十一頁。classPerson{ floatheight,weight; Stringname; voidspeak(Strings){ System.out.println(s);}}classProgram{ publicstaticvoidmain(Stringargs[]){ PersonzhangPing;//聲明對象

zhangPing=newPerson(); }}

(3)對象的內(nèi)存模型3.2.2創(chuàng)建類的實例對象第四十頁,共九十一頁。當用Person類聲明一個變量,即對象zhangPing時,如例子中的對象:

PersonzhangPing;內(nèi)存模型如左圖所示

3.2.2創(chuàng)建類的實例對象當系統(tǒng)見到:zhangPing=newPerson();

時,就會做兩件事:第四十一頁,共九十一頁。①為height,weight,name各個變量分配內(nèi)存,即Person類的成員變量被分配內(nèi)存空間。②new運算符在為變量height,weight,name分配內(nèi)存后,將返回一個引用給對象變量zhangPing。3.2.2創(chuàng)建類的實例對象第四十二頁,共九十一頁。值類型與引用類型JAVA數(shù)據(jù)類型分為兩類:值類型和引用類型。

值類型:包括簡單類型、枚舉類型。

引用類型:包括類、接口、數(shù)組。

一般把引用類型的變量稱為對象。第四十三頁,共九十一頁。值類型與引用類型區(qū)別堆棧堆56ij實際數(shù)據(jù)12345Hobj第四十四頁,共九十一頁。publicclassSchool{

//定義屬性

StringschoolName;

//學校的全稱

intclassNum;

//教室的數(shù)目

intlabNum;

//機房的數(shù)目

//定義方法

publicStringtoString(){

returnschoolName+"\n"+

"配備:"+classNum+"教室"+labNum+"機房";

}

}定義類的toString()方法,用于輸出類相關(guān)的信息public

StringtoString(){

return字符串;//方法體}成員變量第四十五頁,共九十一頁。使用對象使用對象:使用“.”進行以下操作給類的屬性賦值:對象名.屬性調(diào)用類的方法:對象名.方法名()school.Name=“鄭州輕工學院";//給屬性賦值school.toString();//調(diào)用類的方法,該方法中的操作將被執(zhí)行第四十六頁,共九十一頁。publicclassInitSchool{

publicstaticvoidmain(String[]args){ Schoolschool=newSchool();System.out.println(school);school.Name=“鄭州輕工業(yè)學院";school.classNum=100;school.labNum=20;System.out.println(school);}}創(chuàng)建和使用對象示例說一說看到什么效果?第四十七頁,共九十一頁。編寫學生類,輸出學生相關(guān)信息編寫教師類,輸出教師相關(guān)信息學生類屬性:姓名年齡參加的課程興趣方法:顯示學員個人信息教師類屬性:姓名專業(yè)方向教授的課程教齡方法:顯示教師個人信息第四十八頁,共九十一頁。3.3構(gòu)造函數(shù)Studentzhang=newStudent();zhang.Name="張靚靚";zhang.Age=20;zhang.Hobby="唱歌歌";班級來了新學生添加學生對象學生類實例化對象、設(shè)置屬性初始屬性若太多,設(shè)置麻煩能否在實例化時設(shè)置屬性?publicStudent(stringname,intage,stringhobby){

this.Name=name;this.Age=age;this.Hobby=hobby;}Studentzhang=newStudent("張靚靚",20,"唱歌歌");一次設(shè)置完成類中加入這個方法添加的方法叫做構(gòu)造函數(shù)第四十九頁,共九十一頁。構(gòu)造函數(shù)[訪問修飾符]

<類名>(){//構(gòu)造函數(shù)的主體}publicclassEmployee{…

//默認構(gòu)造函數(shù)

Employee()

{ qualification="研究生";

}

…}構(gòu)造函數(shù)名稱同類名,并沒有返回值。第五十頁,共九十一頁。構(gòu)造函數(shù)是類中的一種特殊的方法構(gòu)造函數(shù)名與類名相同,不返回任何值可初始化成員變量每次創(chuàng)建類的實例都會調(diào)用此方法第五十一頁,共九十一頁。staticvoidMain(String[]args)

{ //調(diào)用默認構(gòu)造函數(shù)EmployeeobjEmployee=newEmployee();System.out.println(“資格="+objEmployee.qualification);(“薪水="+objEmployee.salary);

}}構(gòu)造函數(shù)classEmployee{privateStringname;privatechargender;privateStringqualification;privateintsalary;//默認構(gòu)造函數(shù)privateEmployee()

{qualification=“研究生";

}實例化對象調(diào)用構(gòu)造函數(shù)使用new關(guān)鍵字第五十二頁,共九十一頁。finalize()方法Java中一旦垃圾收集器準備好釋放對象占用的存儲空間,它首先調(diào)用finalize(),而且只有在下一次垃圾收集過程中,才會真正回收對象的內(nèi)存。所以如果使用finalize(),就可以在垃圾收集期間進行一些重要的清除或清掃工作。使用finalize()方法的一般格式如下:

protectedvoidfinalize(){//finalizationcodehere}

其中關(guān)鍵字protected是防止該類之外的其他對象或代碼訪問該方法。第五十三頁,共九十一頁。3.4方法的使用寫出獅子對象的“跑”方法寫出獅子對象的“叫”方法電動玩具獅子屬性:顏色:黃色行為:跑叫按此按鈕,獅子開始跑第五十四頁,共九十一頁。3.4方法的使用publicclassAutoLion{Stringcolor="黃色";

public

void

run(){System.out.println("正在以0.1米/秒的速度向前奔跑");}

publicStringbark(){Stringsound="吼";

returnsound;}}AutoLion類代碼實現(xiàn)方法名稱方法體返回類型第五十五頁,共九十一頁。如何定義類的方法方法(Method)是一組程序代碼的集合方法是類或?qū)ο蟮男袨閷ο笮枰瞿承┦虑椋陬愔刑砑臃椒ǚ椒ǖ亩x方法的名稱方法的主體方法返回的數(shù)據(jù)類型參數(shù)列表第五十六頁,共九十一頁。3.4方法的使用訪問修飾符返回類型方法名(參數(shù)列表){//方法的主體…}通過return返回值publicprivateintdoublestringvoid…命名規(guī)范:單詞首字母大寫——Pascal命名法參數(shù)傳遞訪問修飾符(可選),默認情況下為

private如果不需要返回任何值,方法返回void數(shù)據(jù)類型方法的聲明第五十七頁,共九十一頁。定義方法時,需要注意以下幾點:方法名不能和變量、常數(shù)或者類中其它的成員相同。方法可以有參數(shù),也可以沒有參數(shù),但是不論是否有參數(shù),小括號都是必需的。結(jié)束某個方法的執(zhí)行,可以使用return語句,程序遇到return語句后,會將執(zhí)行流程交還給調(diào)用此方法的程序代碼段。如果聲明一個非void類型的方法,則方法中必須至少有一個return語句。3.4方法的使用第五十八頁,共九十一頁。方法的返回值兩種情況如果方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回類型為該返回值的類型如果方法沒有返回值,返回類型為voidpublicclassStudent{Stringname="張三";publicvoidgetName(){

returnname;}……}返回類型要匹配return

表達式;編譯錯誤第五十九頁,共九十一頁。常見錯誤-1publicclassSchool{……publicstaticvoidmain(String[]args){……

return"鄭州輕工業(yè)學院!";}}返回類型是void方法中不能有返回值第六十頁,共九十一頁。常見錯誤-2publicclassStudent{

publicdoublegetInfo(){

doubleweight=95.5;

doubleheight=1.69;

returnweight,height;}}方法至多可以返回一個值,不能返回多個值第六十一頁,共九十一頁。方法調(diào)用方法是個“黑匣子”,完成某個特定的應用程序功能,并返回結(jié)果方法調(diào)用:執(zhí)行方法中包含的語句

對象名.方法名();第六十二頁,共九十一頁。方法調(diào)用classProgram{

publicintMyMethod(){System.out.println("thisisMyMethod.");inti=10;returni;}publicstaticvoidmain(String[]args){

Programmethod=newProgram();intj=5;j=method.MyMethod();System.out.println("thevalueis:“+j);}}第六十三頁,共九十一頁。方法參數(shù)下面代碼輸出結(jié)果是什么?publicstaticvoidmain(string[]args){intnum1=5,num2=10;//兩個數(shù)字

System.out.println(“交換前兩個數(shù)的值分別為:”+num1+“和”+num2);

Swap(num1,num2);//交換兩個數(shù)的值

System.out.println("交換后兩個數(shù)的值分別為:”+num1+“和”+num2);}//交換兩個數(shù)的方法privatestaticvoidSwap(intnum1,intnum2){inttemp;//中間變量

temp=num1;num1=num2;num2=temp;}第六十四頁,共九十一頁。方法參數(shù)傳遞引用類型時:類:Student參數(shù)在程序中被修改//傳遞引用類型參數(shù)Studentscofield=

newStudent("Scofield",Genders.Male,28,"越獄獄");scofield.SayHi();Vote(scofield);scofield.SayHi();引用類型:類人氣屬性加1的方法第六十五頁,共九十一頁。方法參數(shù)classProgram{publicstaticvoidAddOne(inta) {a++;}publicstaticvoidmain(String[]args){inta=3;System.out.println("調(diào)用AddOne之前,a=“+a);AddOne(a);System.out.println("調(diào)用AddOne之后,a=“+a); }}1)傳遞值類型的參數(shù)第六十六頁,共九十一頁。方法參數(shù)classProgram{publicstaticvoidAddOne(int[]a){a[0]++;}publicstaticvoidmain(String[]args){int[]a={3};System.out.println("調(diào)用AddOne之前,a=“+a[0]);AddOne(a);System.out.println("調(diào)用AddOne之后,a=“+a[0]); }}2)傳遞引用類型的參數(shù)第六十七頁,共九十一頁。JVM在運行時,做完初始化之后,就會查找main()方法,從這里開始整個程序的運行。在main()方法的括號里面有一個形式參數(shù)“Stringargs[]”,可以接受系統(tǒng)所傳遞的參數(shù)。在命令行執(zhí)行一個程序通常的形式是:3.4.6命令行參數(shù)的使用參數(shù)列表中可以容納多個參數(shù),參數(shù)間以空格或制表符隔開,它們被稱為命令行參數(shù)。

java

類名

[參數(shù)列表]第六十八頁,共九十一頁。3.5訪問控制所謂訪問控制是指對象是否可以通過“.”運算符操作成員變量或通過“.”運算符使用成員方法。JAVA中有以下成員訪問修飾符:public:任何類都可以不受限制的存取這個類的成員。private:所有方法和數(shù)據(jù)成員只能在此類中使用protected:

除了類內(nèi)可以使用之外,繼承自此類的子類也可以存取。缺省:在當前包中都可以存取。第六十九頁,共九十一頁。修飾符與訪問控制同一個類同一個包不同包的子類不同包非子類private√缺省√√protected√√√public√√√√第七十頁,共九十一頁。classStudent{

privatestringname;//姓名

publicintage;//年齡

publicstringidNumber

;//身份證號}…staticvoidMain(string[]args){

StudentmyStudent=newStudent();

myS="張三";

myStudent.age=20;

}類成員訪問修飾符私有成員公有成員實例化一個對象可以訪問無法訪問編譯錯誤

第七十一頁,共九十一頁。類成員訪問修飾符staticvoidMain(string[]args){

StudentmyStudent=newStudent();

myStudent.age=-2;myStudent.idNumber="123456";

}非法數(shù)據(jù)身份證號不能被修改無法獲得數(shù)據(jù)無法正常賦值有時候?qū)㈩愔械淖侄喂_是不安全的如果設(shè)為私有成員能否對這些字段進行規(guī)則約束或者只讀呢?第七十二頁,共九十一頁。私有變量和私有方法一個類中創(chuàng)建了另外一個類的對象后,該類不能通過對象名訪問其私有變量和私有方法.publicclassDemoPrivate{ publicinta;//公共類型的成員變量

privateintb;//私有類型的成員變量

publicintgetA(){//公共類型的成員方法

returna; } privateintgetB(){//私有類型的成員方法

returnb; } publicDemoPrivate(inta,intb){//構(gòu)造方法

this.a=a; this.b=b; }第七十三頁,共九十一頁。私有變量和私有方法

publicstaticvoidmain(Stringargs[]) { DemoPrivateaDemoPrivate=newDemoPrivate(1,2);

//訪問公共類型的成員方法

inta=aDemoPrivate.getA(); System.out.println("變量a的值:"+a);

//訪問私有類型的成員方法

intb=aDemoPrivate.getB(); System.out.println("變量b的值:"+b); }}盡管成員變量和成員方法定義為私有類型。但由于處于同一類中,仍然能夠?qū)Τ蓡T變量和成員方法進行訪問。如果在另一類中,則訪問受到限制。第七十四頁,共九十一頁。2.公有變量和公有方法一個類中創(chuàng)建了另外一個類的對象后,該類能夠通過對象名訪問其公有變量和公有方法.packagepub1;publicclassDemopub1{//public修飾是必需的。

//公共類型的成員變量

publicinta;

//公共類型的成員方法

publicvoidmethod() { System.out.println(); }}第七十五頁,共九十一頁。packagepub2;importpub1.*;classDemopub2{ publicstaticvoidmain(Stringargs[]) { Demopub1aDemo1=newDemopub1();

//訪問aDemo1中的公共成員方法

aDemo1.method();

//訪問aDemo1中的公共成員變量

aDemo1.a=10; inta=aDemo1.a; System.out.println("aDemo1中的公共成員變量a的值:"+a); }}2.公有變量和公有方法第七十六頁,共九十一頁。3.默認變量和默認方法不用private、public、protected修飾符的成員變量和方法被稱為友好變量和友好方法。一個類創(chuàng)建了另外一個類的一個對象后,如果兩個類在同一包中,該類中可以通過對象訪問其默認變量和默認方法第七十七頁,共九十一頁。4.受保護的成員變量和方法一個類創(chuàng)建了另外一個類的一個對象后,如果兩個類在同一包中,該類能夠通過對象訪問其protected變量和protected方法在后面學習類的繼承時,將講述protected和“友好”之間在繼承方面的區(qū)別。第七十八頁,共九十一頁。//Demopro3.Javapackagepro3;publicclassDemopro3{

//公共類型的成員變量

publicinta;

//保護類型的成員方法

protectedvoidmethod() { System.out.println(); }}【例】不同包中公共類中protected修飾的方法的訪問4.受保護的成員變量和方法第七十九頁,共九十一頁。packagepro4;importpro3.*;publicclassDemopro4{ publicstaticvoidmain(Stringargs[]) { Demopro3aDemo1=newDemopro3();

//不能訪問Demopro3中的保護類型成員方法

//原因是該方法是protected類型

//aDemo1.method(); //可以訪問Demopro3中的公共成員變量

aDemo1.a=10; inta=aDemo1.a; System.out.println("Demopro3中的公共成員變量a的值:"+a); }}4.受保護的成員變量和方法第八十頁,共九十一頁。3.5.2static關(guān)鍵字的使用類可以具有靜態(tài)的成員,如靜態(tài)字段、靜態(tài)方法使用static關(guān)鍵字修飾訪問修飾符static

數(shù)據(jù)類型變量名;訪問修飾符static返回值類型方法名(參數(shù)列表)第八十一頁,共九十一頁。3.5.2static關(guān)鍵字的使用靜態(tài)變量屬于類在類的實例創(chuàng)建以前完成初始化,并且它在應用程序的整個生存期內(nèi)一直存在。只開辟一塊內(nèi)存空間存儲,被同一個類的所有實例共享,因此static字段也稱為類字段classLion

{ publicstaticstringfamily="felidae"; //貓科動物}...//ALionobjectisnotcreatedinthiscodeSystem.out.println("Family:{0}",Lion.family);第八十二頁,共九十一頁。3.5.2static關(guān)鍵字的使用實例變量必須首先實例化類的一個對象,再通過對象訪問,因此稱為實例變量classCat{stringname;staticstringfood;}staticvoidMain(){Cat.food=“fish”;//OKC=“Kitty”;//錯誤

Catcat1=newCat();=“Kitty”;//OK}static變量不依賴于具體對象,可通過類名直接訪問,無需先生成一個實例對象,也可以通過實例對象訪問類變量第八十三頁,共九十一頁

溫馨提示

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

評論

0/150

提交評論