![JAVA程序設(shè)計課件:第4章 類與面向?qū)ο缶幊蘝第1頁](http://file4.renrendoc.com/view/e4032dbeb19001f1bb447e17a60b50c7/e4032dbeb19001f1bb447e17a60b50c71.gif)
![JAVA程序設(shè)計課件:第4章 類與面向?qū)ο缶幊蘝第2頁](http://file4.renrendoc.com/view/e4032dbeb19001f1bb447e17a60b50c7/e4032dbeb19001f1bb447e17a60b50c72.gif)
![JAVA程序設(shè)計課件:第4章 類與面向?qū)ο缶幊蘝第3頁](http://file4.renrendoc.com/view/e4032dbeb19001f1bb447e17a60b50c7/e4032dbeb19001f1bb447e17a60b50c73.gif)
![JAVA程序設(shè)計課件:第4章 類與面向?qū)ο缶幊蘝第4頁](http://file4.renrendoc.com/view/e4032dbeb19001f1bb447e17a60b50c7/e4032dbeb19001f1bb447e17a60b50c74.gif)
![JAVA程序設(shè)計課件:第4章 類與面向?qū)ο缶幊蘝第5頁](http://file4.renrendoc.com/view/e4032dbeb19001f1bb447e17a60b50c7/e4032dbeb19001f1bb447e17a60b50c75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章類與面向?qū)ο缶幊?.1面向?qū)ο缶幊袒A(chǔ)4.2類的編程實現(xiàn)4.3對象的定義與使用4.4重載4.5訪問控制符4.6其它修飾符面向?qū)ο缶幊袒A(chǔ)類(Class)類是描述對象的“基本原型”,它定義一類對象所能擁有的數(shù)據(jù)和能完成的操作。在面向?qū)ο蟮某绦蛟O(shè)計中,類是程序的基本單元相似的對象可以歸并到同一個類中去,就像傳統(tǒng)語言中的變量與類型關(guān)系一樣。程序中的對象是類的一個實例,是一個軟件單元,它由一組結(jié)構(gòu)化的數(shù)據(jù)和在其上的一組操作構(gòu)成。面向?qū)ο缶幊袒A(chǔ)……Carcar1;Carcar2;……CarcarN;面向?qū)ο缶幊袒A(chǔ)對象的主要屬性是狀態(tài)和行為。對象的狀態(tài)為靜態(tài)屬性,即變量。它表示對象所處的狀態(tài)。對象的操作可以改變對象的狀態(tài)。對象的行為為動態(tài)屬性,也成為操作。操作的作用是設(shè)置或者改變對象的狀態(tài)。ClassDemo.javaClassClassDemo{
inta;
intb;
ClassDemo(){a=2;b=3;}voidshow(){
System.out.println(“a=”+a+”,b=”+b);}publicstaticvoidmain(Stringargs[])………..}狀態(tài)行為面向?qū)ο缶幊袒A(chǔ)面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點:較高的可維護性。面向?qū)ο缶幊讨校绦蛴啥鄠€類組成,類中包含屬性和方法的定義,類與類之間通過方法調(diào)用實現(xiàn)交互,而不是共享數(shù)據(jù),這徹底消除了面向過程編程中數(shù)據(jù)與操作分離帶來的問題,提高了程序的可維護性??芍赜眯愿撸ㄟ^設(shè)計一個個實現(xiàn)特定功能的對象,可提高程序的可重復(fù)性。繼承是面向?qū)ο蟮囊粋€重要特性,通過繼承可以實現(xiàn)子類對父類的擴展和父類代碼的重復(fù)使用,提高了程序開發(fā)效率,降低了開發(fā)成本。保護數(shù)據(jù)。通過將數(shù)據(jù)封裝在對象中,對外只提供訪問數(shù)據(jù)的方法,保護了數(shù)據(jù)不能被隨便修改,減少了模塊間的干擾。對象的抽象一、對象的抽象用面向?qū)ο蠓椒ń鉀Q現(xiàn)實世界的問題時,去掉物體中與問題不相關(guān)的部分,并形成我們需要的類的過程成為抽象。
封裝封裝是利用將數(shù)據(jù)和對數(shù)據(jù)的操作封裝在一個抽象數(shù)據(jù)類型中,數(shù)據(jù)被保護在抽象數(shù)據(jù)類型的內(nèi)部,系統(tǒng)的其它部分只能通過接口才能與數(shù)據(jù)進行交互。
類定義Java中,類定義的基本語法如下:[Specifier]class
ClassName[extends
SuperClassName][implements
InterfaceName]{
//類的成員變量定義//類的方法定義…}
類定義下面的代碼定義了一個最簡單的類Person://Person.java//thisprogramisaboutthedefinitionofthepersonclassPerson{}域的定義
域定義的方式如下:[Specifier]typevariableName;intx=3,y;//定義了整型變量x和yDatetoday;
//定義了Date型類變量todayChar[]m;//定義了字符型數(shù)組變量x和y
域定義的一個例子下面定義了一個包含域的定義的類Person://Person.java//thisprogramisaboutthedefinitionofthepersonclassPerson{//域定義
Stringname;//姓名
intsex;//性別
privatedoublesalary;//薪水
intage;//年齡}方法的定義
方法由方法頭和方法體構(gòu)成,方法定義的語法如下:[Specifier]returnType
methodName([parameterList]){//方法體}classPerson{//域定義
Stringname;//姓名
intsex;//性別
privatedoublesalary;//薪水
intage;//年齡
//方法定義StringgetName(){returnname;}voidsetName(Strings){name=s;}doublegetIncome(){returnsalary;}voidsetIncome(doubled){salary=d;}}
1.
方法的返回值
在進行方法定義時,Java要求必須說明返回值的類型。如果方法沒有返回值,那么需要在方法名前添加關(guān)鍵字void
int
mx(){i++;j=i++;
System.out.println("i="+i);
System.out.println("j="+j);
return(j*i);}無返回值的方法voidmp(){ i=j=6;
System.out.println("i="+i);
System.out.println("j="+j);}2.方法的參數(shù)
Java的方法也可以帶參數(shù),以便從外部向方法提供信息。編寫方法時,需要確定參數(shù)的數(shù)量和類型,在方法定義中說明方法的所有參數(shù)名和參數(shù)的類型doublecomputeArea(doublex,doubley){doubles;s=x*y;returns;}
參數(shù)名可以與類的域名相同,如果相同,那么參數(shù)名將在方法體內(nèi)隱藏同名的成員變量。publicclassRectangle{doublex;doubley;doublecomputeArea(doublex,doubley){doubles;s=x*y;returns;}}3.方法體中的變量
在方法體中定義的變量稱為局部變量,它只能被定義它的方法內(nèi)部訪問。而成員變量可以被類中的所有方法訪問。
與成員變量不同,局部變量使用前,必須進行初始化。
局部變量的名字可以與成員變量相同
1publicclassEqualVarible{
inti=2;voidmv(){
inti=6;
System.out.println("i="+i);//System.out.println("this.i="+this.i);}publicstaticvoidmain(Stringargs[]){
EqualVariblel=newLocalVarible();
l.mv();}}4.3對象的定義與使用
1.對象的聲明
對象聲明的語法如下:className
objectName;其中,className是類名,用來說明對象所屬的類。objectName是對象名,對象名的第一個字符一般為小寫字母。下面定義一個Person類的對象myPerson:
PersonmyPerson;
2.對象的實例化
對象實例化的語法為:objectName=newclassName([ParameterValue]);關(guān)鍵字new的作用是為對象向系統(tǒng)申請內(nèi)存,并且同時調(diào)用className類的構(gòu)造方法對對象進行初始化。
下面是對象實例化的例子:
myPerson=newPerson();構(gòu)造方法
構(gòu)造方法是類的一種特殊方法,主要作用是在創(chuàng)建類對象時,初始化類的實例對象。特點:
構(gòu)造方法的方法名必須與類名相同。構(gòu)造方法沒有返回值,也不需要返回類型修飾符。用戶不能直接調(diào)用構(gòu)造方法。構(gòu)造方法在用戶創(chuàng)建對象時,由系統(tǒng)自動調(diào)用執(zhí)行。構(gòu)造方法的作用是對類對象進行初始化。構(gòu)造方法的定義可以為前面定義的Person類添加如下構(gòu)造方法:Person(Stringn,ints,doublei,inta){ name=n; sex=s; salary=i; age=a;}缺省構(gòu)造類中可以不用定義構(gòu)造方法,如果沒有構(gòu)造方法,系統(tǒng)將為該類缺省定義一個空構(gòu)造方法,也稱為缺省構(gòu)造方法。用缺省構(gòu)造方法初始化對象時,系統(tǒng)用缺省值初始化類對象的數(shù)據(jù)成員。
各數(shù)據(jù)類型的缺省值如下:數(shù)值型:0布爾型:false字符型:’\0’
類:null對象的使用可以用點(.)操作符來調(diào)用對象實例的成員變量和方法
1.域的引用
成員變量引用的形式如下:
objectreference.variablename
例如可以通過賦值語句修改firstP的值。
firstP=“Henry”;
對象的使用2.方法的調(diào)用對象的方法調(diào)用的一般形式如下:objectreference.methodname(parameter-list)例如:PersonfirstPerson=newPerson();firstPerson.setName(“Larry”);3.方法的賦值調(diào)用和引用
方法與外界進行信息交換的方式有三種:1.通過方法的返回值2.利用類的成員變量3.通過方法中的參數(shù)傳遞
利用參數(shù)傳遞的方法實現(xiàn)信息交換。參數(shù)可以為任何的數(shù)據(jù)類型,如基本數(shù)據(jù)類型、數(shù)組、類。根據(jù)參數(shù)類型的不同,參數(shù)交換的實現(xiàn)分為賦值調(diào)用方式和引用方式。
⑴
賦值調(diào)用
賦值調(diào)用中,參數(shù)是基本數(shù)據(jù)類型的變量,如:整型、實型、字符型等等。賦值調(diào)用中,實參的值不受形參的影響。
⑵引用
引用中,參數(shù)的類型為復(fù)合數(shù)據(jù)類型,如:數(shù)組,類。這時,實際參數(shù)的值與形式參數(shù)實際上是同一個值,即當(dāng)形參變化時,實參的值也隨之變化。4.4重載
重載是在同一個類中,可以定義相同名字的多個方法。但是它們的參數(shù)表決不相同,即方法擁有的參數(shù)的數(shù)量、類型和參數(shù)順序不同。這樣,在進行方法調(diào)用時,通過參數(shù)表來匹配相應(yīng)的方法,實現(xiàn)需要的功能。
GraphicArea.java
構(gòu)造方法的重載
一個類中的構(gòu)造方法可以實現(xiàn)重載,即可以定義多個相同方法名,但參數(shù)表不同的構(gòu)造方法,分別對對象實現(xiàn)不同程度的初始化。重載構(gòu)造方法的主要目的是使對象具有不同的初始值,為類對象的初始化提供方便。
this的使用Person.java4.5訪問控制符
訪問控制符用在類、域和方法定義中,用來規(guī)定類、域和方法是否可以被外界訪問和調(diào)用的修飾符。訪問控制符規(guī)定的權(quán)限共有四個:public、private、protected和缺省的修飾符(即沒有定義訪問控制符)。
publicpublic的英文意思是“公有的、公共的”,它不僅可以修飾類,還可以修飾變量和方法。注意程序中有多個類的時候,最多只能有一個類被public修飾,程序名必須命名為public修飾的類名
Functransfer1.java當(dāng)用public修飾成員變量和方法時,變量和方法可以被任何程序直接訪問和修改。但這不利于保證數(shù)據(jù)的一致性,造成安全性和可靠性的下降。
private修飾符
在域和方法前面添加private修飾符,說明域和方法是私有的,只能被定義它們的類訪問和調(diào)用。其它任何類都不能獲取私有域和私有方法。
Person.java
protected修飾符
關(guān)鍵字protected修飾的域和方法只能被以下三種類訪問和調(diào)用:域和方法所在的類。同一個包內(nèi)的其它類。其它包(package)中該類的子類。
缺省的修飾符
如果一個類、域和方法前面沒有被訪問控制符修飾,說明它具有缺省的訪問控制特性:域和方法所在的類。同一個包內(nèi)的其它類。4.6其它修飾符
this修飾符
static修飾符
final修飾符
this修飾符this用來在一個成員函數(shù)內(nèi)部指向當(dāng)前的對象,即this代表了當(dāng)前對象的一個引用。通過對象引用可以地訪問與修改對象的域、方法。this的使用:局部變量、成員函數(shù)的參數(shù)和實例變量的名字相同時,用this+成員變量可以進行區(qū)分。調(diào)用重載的構(gòu)造方法。this(參數(shù)表);類中方法和成員變量前面都可以添加this。this不能用在靜態(tài)方法中。static修飾符關(guān)鍵字static的英文意思是“靜態(tài)的”。它可以修飾變量、方法和復(fù)合語句。
static修飾的域(成員變量)稱為類的靜態(tài)域。靜態(tài)域存儲在類的內(nèi)存區(qū)域單元中,是屬于整個類的成員變量;由關(guān)鍵字static修飾的方法稱為靜態(tài)方法。static方法是屬于整個類的方法,對整個類而言是共享的。靜態(tài)初始化就是由static修飾的復(fù)合語句,用來完成靜態(tài)變量的初始化工作。
靜態(tài)域的應(yīng)用classTestStaticFunc{staticintx=6;//非靜態(tài)變量
publicint
getx(){returnx;}publicstaticvoidmain(String[]a){
System.out.println(TestStaticFunc.x);
System.out.println(TestStaticFunc.getx());}}靜態(tài)方法靜態(tài)方法具有以下特點:靜態(tài)方法是屬于整個類的,在內(nèi)存中分配公共的內(nèi)存空間。而非static方法是屬于某個對象的方法,只有在對象創(chuàng)建時,才為該對象的方法分配內(nèi)存空間靜態(tài)方法又稱為類方法,它直接不能操縱和處理類的非靜態(tài)的成員變量,只能處理屬于整個類的成員變量,也就是靜態(tài)域。調(diào)用靜態(tài)方法時,可以不用創(chuàng)建對象,而直接使用類名作為前綴。TestStaticFunc.javaclassTestStaticFunc{
intx;//非靜態(tài)變量
staticint
getx(){returnx;}staticvoidsetx(intt){x=t;}}靜態(tài)初始化TheStatic.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住房屋租賃合同范例
- 2025年度智慧園區(qū)視頻監(jiān)控系統(tǒng)集成合同
- 農(nóng)田機器維修合同范本
- 業(yè)主物業(yè)合同范本
- 別墅石材裝修合同范本
- 凍庫合同范本
- 交通疏解合同范本
- 業(yè)務(wù)咨詢合同范本
- epc工程總承包合同范例
- 住房包工合同范本
- 物業(yè)管理服務(wù)應(yīng)急響應(yīng)方案
- 風(fēng)車的原理小班課件
- 物業(yè)保潔員勞動競賽理論知識考試題庫500題(含答案)
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-07-07-01 洗衣師 勞社廳發(fā)20081號
- 六年級數(shù)學(xué)競賽試題及答案(六套)
- 七年級下學(xué)期數(shù)學(xué)開學(xué)第一課課件
- 臨床診療指南-口腔醫(yī)學(xué)分冊
- 《中國心血管健康與疾病報告2024》要點解讀
- 浙教版八年級下冊科學(xué)第一章 電和磁整章思維導(dǎo)圖
- 重慶建設(shè)-花籃拉桿式懸挑腳手架工藝標(biāo)準(zhǔn)(試行)
- 動物疫病傳染病防控培訓(xùn)制度
評論
0/150
提交評論