第六講類和對(duì)象下_第1頁(yè)
第六講類和對(duì)象下_第2頁(yè)
第六講類和對(duì)象下_第3頁(yè)
第六講類和對(duì)象下_第4頁(yè)
第六講類和對(duì)象下_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

1、第六講類和對(duì)象(下)1一、類成員變量的定義定義: 訪問(wèn)權(quán)限符 static final 類型 變量名權(quán)限修飾符有: public、protected和privatestatic:在成員變量前說(shuō)明該變量是靜態(tài)變量。final:在成員變量前說(shuō)明該變量是一個(gè)最終變量2修飾符 static static可以修飾類中的屬性和方法。靜態(tài)屬性在類定義時(shí)靜態(tài)地分配空間。它屬于類,不屬于某個(gè)特定的對(duì)象,因此可以通過(guò)類進(jìn)行訪問(wèn)。往往將屬于類的公共屬性說(shuō)明成static。3 Java實(shí)例 static成員變量class StaticTestpublic int x=1;public static int y=1;p

2、ublic class StaticTesterpublic static void main(String args)int i;StaticTest.y= StaticTest.y +1;StaticTest m=new StaticTest();StaticTest n=new StaticTest();m.x= m.x +3;m.y= m.y+3;n.x= n.x+5;n.y= n.y+5;System.out.println(m.x=+m.x+ + m.y=+m.y);System.out.println(n.x=+n.x+ + n.y=+n.y);4 Java實(shí)例 static方法

3、class Sta_method int width,height; public static double area(int width,int height) return width*height; public static void main(String args) int i,j; double f; i=Integer.parseInt(args0); j=Integer.parseInt(args1); f=Sta_method.area(i,j); /直接引用此方法 System.out.println(Area=+i+*+j+=+f); 5實(shí)例 書(shū)P89 例6-96課堂

4、練習(xí):1、創(chuàng)建銀行賬戶類Account,用靜態(tài)變量存儲(chǔ)年利率interest,用私有實(shí)例變量存儲(chǔ)存款額balance。提供設(shè)置年利息的方法setInterest,計(jì)算年利息的方法calInterest和顯示存款數(shù)額的方法showBalance;2、編寫(xiě)一個(gè)測(cè)試程序測(cè)試該類,建立Account類的對(duì)象saver,存款額是3000,設(shè)置年利率是3%,計(jì)算并顯示對(duì)象saver的存款額、年利息率和該筆存款的年利息。7數(shù)學(xué)函數(shù)類 Math類庫(kù)格式:類名.數(shù)學(xué)函數(shù)方法名(類型 實(shí)參1,類型 實(shí)參n )例: public class Max public static void main(String ar

5、gs) int x,y; x=Integer.parseInt(args0); y= Integer.parseInt(args1); System.out.println(最大值是+Math.max(x,y); 8第七章 類的繼承和多態(tài)機(jī)制9一、類的繼承在 Java 中,類是一個(gè)層次結(jié)構(gòu),其中Object為特殊超類或基類,所有的類都直接或間接地繼承Object類;子類繼承父類的屬性和方法,同時(shí)也可以修改父類的屬性或重載父類的方法,以及在父類的基礎(chǔ)上添加新的屬性和方法。因此,父類和子類之間反映的是“一般與特殊”的關(guān)系。10 父類與子類 在類的繼承中,被繼承的類稱為父類,繼承而來(lái)的類則稱為子類。

6、有多個(gè)子類共同繼承一個(gè)父類,那么這個(gè)父類就是多個(gè)類的基類。 Java語(yǔ)言只支持單繼承,如果要定義多繼承,可以使用將要講解的接口方法。11繼承的實(shí)現(xiàn)定義繼承的形式為:訪問(wèn)權(quán)限 class 類名 extends 父類 類體 Java中的繼承是通過(guò)extends關(guān)鍵字來(lái)實(shí)現(xiàn)的,在定義類時(shí)使用extends關(guān)鍵字指明新定義類的父類,就在兩個(gè)類之間建立了繼承關(guān)系。新定義的類稱為子類,它可以從父類那里繼承所有非private的屬性和方法作為自己的成員。12子類與父類的成員變量與方法子類繼承父類的所有成員變量和方法,但不包括父類中的由private修飾的部分子類中新增加的屬性和方法是對(duì)父類的擴(kuò)展子類中定義的

7、與父類同名的屬性是對(duì)父類屬性的隱藏,同名的方法是對(duì)父類方法的覆蓋13實(shí)例 書(shū)P94 例7-114課堂練習(xí)書(shū)P104 715訪問(wèn)控制權(quán)限控制小結(jié)訪問(wèn)控制本類同一包中的類其他包中子類其他包中的類publicprivateprotected缺省16 修飾符 this將當(dāng)前對(duì)象的引用變量傳遞給另一個(gè)方法;如果方法體內(nèi)部定義的變量與成員變量名字相同或方法的入口參數(shù)與成員變量名相同。 如:class TestColorint r,g,b;TestColor(int r,int g,int b)this.r=r;this.g=g;this.b=b; 17 Java實(shí)例 thisclass Point pri

8、vate int x,y; public void setPoint(int a,int b) x=a; y=b; public int getX() return x; public int getY() return y; public String toString() return +this.getX()+,+this.getY()+; /引用類的方法 public static void main(String args) int i,j; i=Integer.parseInt(args0); j= Integer.parseInt(args1); Point dot=new Po

9、int(); dot.setPoint(i,j); System.out.println(dot.toString(); 18 方法的覆蓋 Java允許子類對(duì)父類的同名方法進(jìn)行重新定義,也就是子類中定義的方法與父類中已定義的方法名稱相同,但方法的內(nèi)容不同,這種多態(tài)就稱為方法覆蓋。 由于父類與子類有同名方法,所以在引用方法時(shí)需要指明引用的是父類的方法還是子類的方法。19Java實(shí)例方法的覆蓋 class Shape public int y; public Shape() y=20; System.out.println(this is a Constractor of shape); publ

10、ic void measure() System.out.println(super_y=+y); class Rectangle extends Shape public int y; public void measure() super.measure(); /引用父類的measure()方法 y=super.y+y;20Java實(shí)例(續(xù))System.out.println(Shape.y=+super.y); /引用父類的成員變量y System.out.println(Rectangle.y=+y); /引用子類的成員變量y class OverLay public static

11、void main(String args) int width=30,height=10; Rectangle tt=new Rectangle(); tt.y=height; /將height變量的值10賦給子類的成員變量y tt.measure(); /引用子類的measure()方法 21 this 與 super this表示的是當(dāng)前對(duì)象本身或者說(shuō)是當(dāng)前對(duì)象的一個(gè)引用。 Super表示當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象直接父類的引用。如A類派生出子類B,那么B類是A類的直接父類。22Java實(shí)例super和this的使用class EmployeeString name;Employ

12、ee(String name) =name;public void showInfo() System.out.println(this is superClass call:+name);public void getInfo() showInfo();class Manage extends EmployeeString name;/注意與父類同名的成員變量String department;Manage(String n) super(n);23Java實(shí)例(續(xù))public void showInfo()super.showInfo(); /調(diào)用父類的方法System

13、.out.println(this is subClass call:+name);System.out.println(department);public class CoverMethodpublic static void main(String args)Manage aa=new Manage(李四);=張三;aa.department=經(jīng)理室;aa.getInfo();24修飾符 final 用final聲明的類(最終類)不能再有子類;方法(最終方法)不能再被覆蓋或重載;成員變量(最終屬性)初始化后,不能再被賦值也就是修改成員變量的值(如PI=3.1415926是不能改變的)。25 Java實(shí)例 finalclass FinalCal private dou

溫馨提示

  • 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)論