Java語言程序設(shè)計課后習(xí)題解答張思民第三節(jié)_第1頁
Java語言程序設(shè)計課后習(xí)題解答張思民第三節(jié)_第2頁
Java語言程序設(shè)計課后習(xí)題解答張思民第三節(jié)_第3頁
Java語言程序設(shè)計課后習(xí)題解答張思民第三節(jié)_第4頁
Java語言程序設(shè)計課后習(xí)題解答張思民第三節(jié)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)【1】什么是Java程序使用的類?什么是類庫?解答:Java程序的基本單位是類。對象是對事物的抽象,而類是對對象的抽象和歸納,找出事物的共性,把具有共同性質(zhì)的事物歸結(jié)為一類,得出一個抽象的概念類。類是具有相同屬性和方法的一組對象的集合,類是在對象之上的抽象,對象則是類的具體化,一旦建立類之后,就可用它來建立許多你需要的對象。Java的類庫是系統(tǒng)提供的已實(shí)現(xiàn)的標(biāo)準(zhǔn)類的集合,是Java編程的API(Application Program Interface),它可以幫助開發(fā)者方便、快捷地開發(fā)Java程序。【2】如何定義方法?在面向?qū)ο蟪绦蛟O(shè)計中方法有什么作用?解答:方法

2、的定義由兩部分組成:方法聲明和方法體。方法聲明的基本格式如下:返回類型 方法名(形式參數(shù)) /方法體內(nèi)容方法聲明包括方法名、返回類型和形式參數(shù),方法的小括號是方法的標(biāo)志;方法體為實(shí)現(xiàn)方法行為的Java語句。 在面向?qū)ο蟪绦蛟O(shè)計中,方法所起的作用是完成對類和對象屬性操作?!?】簡述構(gòu)造方法的功能和特點(diǎn)。下面的程序片段是某學(xué)生為student類編寫的構(gòu)造方法,請指出其中的錯誤。void Student(int no,String name)studentNo=no;studentName=name;return no; 解答:構(gòu)造方法是一個特殊的方法,主要用于初始化新創(chuàng)建的對象。構(gòu)造方法的方法名要

3、求與類名相同,用戶不能直接調(diào)用,只能通過new運(yùn)算符調(diào)用,而且構(gòu)造方法是不返回任何數(shù)據(jù)類型,甚至也不返回void數(shù)據(jù)類型,即不能在構(gòu)造方法前加void。 以上的代碼段出錯于:構(gòu)造方法Student()前不能加void 不能用return語句 【4】定義一個表示學(xué)生的student類,包括的域有學(xué)號、姓名、性別、年齡,包括的方法有獲得學(xué)號、姓名、性別、年齡及修改年齡。編寫Java程序創(chuàng)建student類的對象及測試其方法的功能。解答:程序代碼段如下:class studentprivate String id; private String name; private String sex;pr

4、ivate int age; public String getId()return id; public String getName() return name; public String getSex() return sex; public int getAge() return age; void setAge(int age) this.age = age; public class TestStudent public static void main(String args) student stu = new student("0401398", &qu

5、ot;楊小明", "男",20); System.out.println("student info: " + "n學(xué)號:"+stu.getId()+ "n姓名"+stu.getName()+"n性別:"+stu.getSex()+ "n年齡:"+stu.getAge(); stu.setAge(19); System.out.println("修改后的年齡為:"+stu.getAge();【5】擴(kuò)充、修改程序。為第4題的student類定義構(gòu)造

6、函數(shù)初始化所有的域,增加一個方法public String printInfo()把student類對象的所有域信息組合形成一個字符串,并在主類中創(chuàng)建學(xué)生對象及測試各方法的功能。解答:程序代碼段如下:class studentprivate String id; private String name; private String sex;private int age; student(String id , String name, String sex, int age) this.id = id; = name;this.sex = sex;this.age=age

7、;public String getId()return id; public String getName() return name; public String getSex() return sex; public int getAge() return age; void setAge(int age) this.age = age; public String printInfo() String s= "student info: " + "n學(xué)號:"+id+ "n姓名"+name+"n性別:"+se

8、x+ "n年齡"+age; System.out.println(s); return s;public class TestStudent public static void main(String args) student stu = new student("0401398", "楊小明", "男",20);stu.printInfo(); stu.setAge(19); stu.printInfo();【6】什么是修飾符?修飾符的種類有哪些?它們各有什么作用?解答:修飾符是用于限定類對象使用的權(quán)限,從而

9、實(shí)現(xiàn)類中成員的信息隱藏。訪問修飾符適用于類成員,而不是方法內(nèi)部的局部變量。Java常見的訪問修飾符有這4種:private、default、protected和public。(1) public 可以被所有的類訪問(2) pravite 只能被類本身訪問,其他類無法訪問(3) protected 可以被類本身、它的子類(包括同一個包中以及不同包中的子類)(4) default 屬于默認(rèn)的訪問狀態(tài),可以被類本身和同一個包中的類訪問【7】什么是抽象類?為什么要引入抽象類的概念?解答:抽象類是用來描述人們在對問題領(lǐng)域進(jìn)行分析、設(shè)計中得出的抽象概念,是對一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象

10、。抽象類不具備實(shí)際功能,是專門設(shè)計用來讓子類繼承的類,把這些具有共同特征的方法抽象出來,由子類負(fù)責(zé)這些抽象方法的實(shí)現(xiàn)細(xì)節(jié),而父類僅提供此方法的名稱和聲明、沒有方法的主體,該類?!?】什么是抽象方法?如何定義、使用抽象方法?解答:用abstract關(guān)鍵字修飾的方法稱為抽象方法。抽象方法定義時,需在方法名前加上關(guān)鍵字abstract,抽象方法只有方法聲明,沒有代碼實(shí)現(xiàn)的空方法。因此,必須通過其子類來重寫父類中定義的每一個抽象方法?!?】包的作用是什么?如何在程序中引入已定義的類?使用已定義的用戶類、系統(tǒng)類有哪些主要方式?解答:包的作用是將類和接口封裝在一起,方便了類和接口的管理和調(diào)用。要引入包中已

11、定義的類,必須用關(guān)鍵字import來導(dǎo)入這些類所在的包。import語句的一般形式如下:import 包名.類名其中類名可以用通配符 “*”代替。使用已定義的用戶類、系統(tǒng)類主要有三種方式:直接調(diào)用、繼承和創(chuàng)建已定義的用戶類、系統(tǒng)類的對象。但無論采用哪種方式,使用已定義的用戶類、系統(tǒng)類的前提條件是用戶類、系統(tǒng)類應(yīng)該是用戶程序可見的類,為此用戶程序需要用import語句引人它所用到的用戶類、系統(tǒng)類或用戶類、系統(tǒng)類所在的包。【10】什么是繼承?如何定義繼承關(guān)系?解答:同類事物具有共同性,在同類事物中,每個事物又具有其特殊性。運(yùn)用抽象的原則舍棄對象的特殊性,抽取其共同性,則得到一個適應(yīng)于一批對象的類,

12、這便是基類(父類),而把具有特殊性的類稱為派生類(子類),派生類的對象擁有其基類的全部或部分屬性與方法,稱作派生類對基類的繼承。 派生類繼承基類,必須使用關(guān)鍵字extends來聲明。比如派生類B繼承基類A,派生類B定義的一般形式如下: class B extends A 【11】什么是多態(tài),如何實(shí)現(xiàn)多態(tài)?解答:多態(tài)是指一個程序中同名的不同方法共存的情況。這些方法同名的原因是它們的最終功能和目的都相同,但是由于在完成同一功能時,可能遇到不同的具體情況,所以需要定義含不同的具體內(nèi)容的方法,來代表多種具體實(shí)現(xiàn)形式。多態(tài)通常是一個消息在不同的類中用不同的方法實(shí)現(xiàn)的。 多態(tài)的實(shí)現(xiàn)是由消息的接收者確定一個

13、消息應(yīng)如何解釋,而不是由消息的發(fā)送者確定,消息的發(fā)送者只需要指導(dǎo)另外的實(shí)例可以執(zhí)行一種特定操作即可。Java中提供兩種多態(tài)機(jī)制:方法重載與方法重寫?!?2】解釋this和super的意義和作用。解答: this指的是引用當(dāng)前對象或類名稱,當(dāng)一個類的實(shí)例變量名與一個方法中參數(shù)名相同時,則參數(shù)就隱藏了實(shí)例變量名,此時可通過使用關(guān)鍵字this來訪問它;super用來引用當(dāng)前對象的父類,通過super來訪問父類被子類隱藏的成員變量、成員方法以及父類的構(gòu)造方法。由于子類不繼承父類的構(gòu)造方法,可使用super來調(diào)用父類的構(gòu)造方法,并且super必須是子類構(gòu)造方法中的第一條語句?!?3】什么是接口?為什么要

14、定義接口?接口和類有什么異同?解答:接口是用來調(diào)節(jié)各類之間的相互關(guān)系的一種結(jié)構(gòu),接口是抽象類的一種,只包含常量和方法的定義,而沒有變量和具體方法的實(shí)現(xiàn),且其方法都是抽象方法。接口定義的格式如下: public interface 接口名 extends 父接口名列表 /接口體 extends子句有類聲明的extends子句基本相同,不同的是一個接口可有多個父接口,用逗號隔開,而一個類只能有一個父類。Java中的類只能實(shí)現(xiàn)單重繼承,這雖然可以簡化編程,但畢竟沒有完全實(shí)現(xiàn)面向?qū)ο蟮墓δ?。定義接口的主要作用,就是幫助Java實(shí)現(xiàn)類間多重繼承的結(jié)構(gòu)。而且接口還有以下好處: 接口可以被多個類所實(shí)現(xiàn),這些

15、類可以不相關(guān),從而具有相同的行為。 通過接口可以了解對象的行為,而無需了解對象所對應(yīng)的類的結(jié)構(gòu)?!?4】將一個抽象類改寫成接口,并實(shí)現(xiàn)這個接口。解答:程序代碼段如下: /抽象類的應(yīng)用示例abstract class 動物 public abstract void cry(); class 狗 extends 動物 public void cry() System.out.println("汪汪."); class Test public static void main(String args) 動物 dongwu; dongwu=new 狗(); dongwu.cry()

16、; /將抽象類改寫成接口,并實(shí)現(xiàn)這個接口 interface動物 public void cry(); class 狗 implements 動物 public void cry() System.out.println("汪汪."); class Test public static void main(String args) 動物 dongwu; dongwu=new 狗(); dongwu.cry(); 【15】編寫一個程序?qū)崿F(xiàn)包的功能。解答:包的功能實(shí)現(xiàn)包括兩步驟:打包、引用包,其具體實(shí)現(xiàn)如下: (1) /設(shè)當(dāng)前運(yùn)行目錄的子目錄testbag下有MyBag.cla

17、ss類,其源程序如下: package test.bag; public class MyBag public void print() System.out.println("包的功能測試"); (2) /在當(dāng)前目錄的TestBag.java中,要使用子目錄testbag下有MyBag.class類中的print()/方法,其源程序如下: import test.bag.MyBag;public class TestBag public static void main(String args) MyBag mb=new MyBag(); mb.print(); 【16】填空:(1) 如果類A繼承了類B,則類A被稱為 類,類B被稱為 類。解答:子 父(2) 繼承使 成為可能,它節(jié)省了開發(fā)時間。解答:代碼復(fù)用(3)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論