實驗4 繼承與接口(一).docx_第1頁
實驗4 繼承與接口(一).docx_第2頁
實驗4 繼承與接口(一).docx_第3頁
實驗4 繼承與接口(一).docx_第4頁
實驗4 繼承與接口(一).docx_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗4、繼承與接口(一)1、 實驗目的1. 子類的繼承性2. 子類對象的創(chuàng)建過程3. 成員變量的繼承與隱藏4. 方法的繼承與重寫 5. 掌握繼承實現的各種限制。6. 掌握子類對象的實例化過程。7. 掌握方法重寫的概念及實現。8. 了解Object及對Object類的主要方法進行重寫。2、 實驗內容及步驟1理解繼承的含義任務一:學習繼承實例 (1)內容及步驟步驟一:創(chuàng)建一個基本的學生類,源代碼如下。public class Studentprotected String name; /具有保護修飾符的成員變量protected int id;void setdata(String name,int id) /設置數據的方法 =name;this.id= id;public void print() /輸出數據的方法 System.out.println(name=+name+ ,+ id=+id);步驟二:編譯Student.java,產生類文件Student.class。步驟三:創(chuàng)建繼承的類通過Student 類產生子類ColStu,其不僅具有父類的成員變量,還定義了新成員變量xy(學院)、xi(系)。在程序中調用了父類的print 方法,同時可以看出子類也具有該方法。源代碼如下:class ColStu extends Student protected String xy; protected String xi; public static void main(String args) Student p1 = new Student(); p1.setdata(帥零,12321) ; p1.print(); ColStu s1 = new ColStu() ; s1.setdata(郭麗娜,12345); /調用父類的成員方法 s1.xy=經濟管理學院; /訪問本類的成員變量 s1.xi=信息管理系; /訪問本類的成員變量 s1.print(); System.out.println(name=++,+xy=+s1.xy+,+xi=+s1.xi); 步驟四:編譯并運行程序。注意:公共類Student 與ColStu類要在同一文件夾(包)內。(1) 實驗報告將運行結果寫在實驗報告中。思考:如果子類與父類不在同一包中子類會繼承父類哪些變量和方法?任務二: 根據父類及以下描述編寫子類。在Vehicle類的基礎上創(chuàng)建一個Tractor(拖拉機)類,它不但擁有journey,wheelNum,loadNum,driveSpeed 四種屬性和driveAt()方法,而且還擁有自己的plough(耕地)方法,在該方法中要求能夠顯示journey,wheelNum,loadNum三個屬性的值,在應用程序中分別使用Tractor類的對象調用plough()和driveAt方法。public class Vehiclepublic float journey; public int wheelNum; public int loadNum; public int driveSpeed; public Vehicle()journey=100.3f;wheelNum=4;loadNum=1;public void driveAt(int speed)if (speed=60)System.out.println(行車速度太快,容易造成事故);/如果要求的車速太快,則機動車自動以40單位速度行駛driveSpeed=40;else System.out.println(你在安全行駛速度內行駛);driveSpeed=speed; 2、成員變量的隱藏和成員方法的覆蓋任務一:學習實例變量的隱藏和方法的覆蓋(1) 內容及步驟步驟一:創(chuàng)建父類class A int i,j; void setIJ(int a,int b) i=a; j=b; int multiply() return i*j; 步驟二:創(chuàng)建子類Bclass B extends A int i,k; /聲明了一個和父類同名的變量i,隱藏了父類的i B(int a,int b) i=a; k=b; int multiply()/* 重寫了父類的multiply()方法 */ return i*j*k; 步驟三:創(chuàng)建并運行應用程序。public class LX public static void main(String a) B subO=new B(6,9); subO.setIJ(7,8); int m=subO.multiply(); System.out.println(m = +m); 步驟四:編譯運行程序。(2) 實驗報告將運行結果寫在實驗報告中。思考:但通過子類對象subO調用setIJ的方法時,為變量i和j賦值時,i與j分別是屬于誰的?父類?子類?分析獲得此運行結果的原因。任務二:分析結果并驗證(1)在以下程序中出現了成員隱藏,試分析程序運行的結果。(2)編譯運行下面程序,驗證分析的結果,掌握成員隱藏時屬性的變化規(guī)則。 class Fatherint a=100;public void miner()a-;public class Son extends Father int a=0; public int getA()return super.a;public static void main(String arg)Father father=new Father();Son son=new Son();System.out.println(a of son is : +son.a);System.out.println(a of sons super is : +son.getA();son.miner();System.out.println(a of son is :+son.a);System.out.println(a of sons super is : +son.getA();(3) 實驗報告將運行結果寫在實驗報告中。3、觀察子類對象的實例化過程任務一:分析應用程序的運行結果,并上機驗證。(1)源代碼:class Person private String name; private int age; public Person() System.out.println(“父類Person中的構造方法?!?; public String getName() return name;public void setAge(int age) this. age = age;public int getAge() return age;public void setName(String name) = name;class Student extends Personprivate String school;public Student() System.out.println(“子類Student中的構造方法。”);public String getSchool() return school;public void setSchool(String school) this.school = school;public class InstanceDemo public static void main(String args) Student stu = new Student(); stu.setName(“張三”); stu.setAge(30); stu.setSchool(“清華大學”); System.out.println(“姓名:”+stu.getName()+”,年齡:”+stu.getAge()+”,學校:”+stu.getSchool(); (2)實驗報告將運行結果寫在實驗報告中,并解釋獲得此結果的原因。 4、方法的重寫任務一:編譯Student類,查看結果。(1) 源代碼如下: class Personpublic void print() System.out.println(“Person-void print()”);class Student extends Personvoid print() System.out.println(“Student-void print()”);(2) 實驗報告將Student類編譯后提示怎樣的信息?分析為什么會有這樣的信息。4、Object類任務一:toString方法的理解。(1) 觀察程序輸出結果。源代碼:class Demopublic class ObjectDemo1public static void main(String args) Demo d = new Demo();System.out.println(“不加toString()輸出:”+d);System.out.println(“加toString()輸出:”+d.toSting();(2)編譯運行程序,觀察結果。(3)實驗報告將運行結果寫在實驗報告中。思考:為什么兩次輸出都是同樣結果。 Demo有父類嗎?任務二:根據對Object類的方法的學習及上例的理解,完成以下代碼。(1) 源代碼:class Person()

溫馨提示

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

評論

0/150

提交評論