版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、僅供個(gè)人參考For pers onal use only in study and research; not for commercial use薂第3章習(xí)題解答蒁1 .如何定義方法?在面向?qū)ο蟪绦蛟O(shè)計(jì)中方法有什么作用?祎答:方法的定義包括方法名、方法形參、方法的返回值類型和方法體四部分,方法只能在類中 定義。方法是對(duì)象的動(dòng)態(tài)特征的描述,對(duì)象通過方法操作屬性,進(jìn)而改變對(duì)象的狀態(tài),完成程 序所預(yù)期的功能。蚄2.定義一個(gè)Dog類,有名字、顏色、年齡等屬性,定義構(gòu)造方法用來初始化類的這些屬性, 定義方法輸出Dog的信息。編寫應(yīng)用程序使用Do®莂答:羋 public class Dog腿p
2、rivateStringn ame;肅privateStringcolor;肂privateStringage;芀Dog(Stri ng n,Stri ng c,Stri ng a)芇n ame = n; color = c; age = a;螇袃public Stri ng toStri ng() 莁return name + ", " + color + ", " + age;蒅 芆public static void main( Stri ng args) 薃Dog dog = new Dog(" 小白","白色&qu
3、ot;,"2 歲");膈;螈 蚅莃3 .什么是訪問控制修飾符?修飾符有哪些種類?它們各有何作用?不同的修飾符決定了不同public,另外還有一種默認(rèn)訪問膀答:訪問控制修飾符是對(duì)類、屬性和方法的訪問權(quán)限的一種限制, 的訪問權(quán)限。訪問控制修飾符有 3個(gè):private、protected、權(quán)限。各個(gè)修飾符的作用如下表所示:祎屬性和方法類肅 public肄默認(rèn)芁 public艿A(chǔ)蒄B襖 protected肇B + C莇B羄默認(rèn)芁B膀B蒅 private莃D肁D賺B:包中的類袈C:所有子類肆D:本類螁A:所有類不得用于商業(yè)用途A :r所有有類類蒃4 .閱讀程序,寫出程序的輸出結(jié)果羈
4、 class A肆private int privateVar;袇A(i nt _privateVar)芄 privateVar=_privateVar;蝿?shì)?boolea n isEqualTo(A ano therA)芆if(this.privateVar = ano therA.privateVar)羄return true;袀 else薇return false;螅蒀羂 public class B罿 public static void main( Stri ng args)膅A a = new A(1);賺A b = new A(2);蝿;肇薄羈程序的輸出結(jié)果為:false螀5 閱
5、讀程序,寫出程序的輸出結(jié)果膆 public class Test 肅 public static void main( Stri ng args) 蟻int x;袂int a = 0, 0, 0, 0, 0, 0 ;薈calculate® a5);蒃"the valueof a0 is"+a0);蒂"the valueis a5 is"+a5);蠆蚆 static int calculate(i nt x, int y) 膆for (i nt i = 1; i < x.len gth; i+)膂if (y < x.len gth)蝕
6、xi = xi - 1 + 1;聿return x0;薆 羃蒈程序的輸出結(jié)果為:腿 the value of a0 is 0羅 the value is a5 is 5蚃6 閱讀程序,寫出程序的輸出結(jié)果蕿 public class Test 芆 public static void main( Stri ng args) 蒄Stri ng str1 = new Strin g("Java");莃Stri ng str2 = new Strin g("Java");薁=str2);蚈 膄程序的輸出結(jié)果為:莈 false螆7 閱讀下列程序,程序中已經(jīng)指明錯(cuò)誤
7、位置,請(qǐng)說出錯(cuò)誤原因。芃1 襖 package sample;葿 class A 聿 private int num;羇 A () 莀num=O;薁芇 int get() return nu m; 莆賺 class Z 羋 public static void main( Stri ng args) 蒞A al = new A();裊int t = a1.get();袁int s = a1. num; /此處有錯(cuò)誤荿 蚈芅錯(cuò)誤原因:私有變量只能在其所在類中直接使用,在其它類中不可以直接使用。m的功能是把形薂&閱讀下列程序,程序中已經(jīng)指明錯(cuò)誤位置,請(qǐng)說出錯(cuò)誤原因。其中,方法 參的值賦給類
8、的成員變量x。蒁 class Alpha祎 private int x;蚄 public void m(i nt x)莂x = x; /此處有錯(cuò)誤羋 腿肅應(yīng)該修改為:this.x = x;肂9 下面定義了一個(gè)完整的類,包括有構(gòu)造方法。閱讀這段程序,程序中已經(jīng)指明錯(cuò)誤位置, 請(qǐng)說出錯(cuò)誤原因。芀 class Alpha芇 private int x;螇 void Alpha() /此處有錯(cuò)誤袃 x = 0;莁蒅 public void getX()芆return x;薃 膈螈錯(cuò)誤原因:構(gòu)造方法不能有返回類型,也不能以void作為它的返回類型。蚅10.定義一個(gè)名字為 MyRectangle的矩形類,
9、類中有 4個(gè)私有的整型成員變量,分別是矩形 的左上角坐標(biāo)(xUp, yUp)和右下角坐標(biāo)(xDown, yDowr);類中定義了無參數(shù)的構(gòu)造方法和 有4個(gè)int參數(shù)的構(gòu)造方法,用來初始化類對(duì)象。類中還有以下方法:莃getW() 計(jì)算矩形的寬度;膀getH () 計(jì)算矩形的高度;祎area () 計(jì)算矩形的面積;肅toStri ng() 把矩形的寬、高和面積等信息作為一個(gè)字符串返回。肄編寫應(yīng)用程序使用 MyRectangle類。芁答:艿 public class MyRecta ngle蒄 private int xUp,yUp,xDow n,y Dow n;襖 MyRecta ngle()肇x
10、Up = 0; yUp = 0; xDow n = 0; yDow n = 0;莇 羄 MyRecta ngle(x1, y1, x2, y2 )芁xUp = x1; yUp = y1; xDow n = x2; yDow n = y2;膀 蒅public in t getW()莃retur n xDow n - xUp;肁 賺public in t getH()袈return yDow n - yUp;肆 螁 public int area()罿return getW() * getH();羆 蒆public Stri ng toStri ng() "+area();薂return
11、 " 矩形寬:” + getW() +"矩形高:” + getH() + "矩形面積:肀莈 public static void main( Stri ng args) 裊 MyRectangle rectangle = new MyRectangle(1,2,7,8);節(jié);肁蕆莄11 定義一個(gè)表示學(xué)生的類Student,包括的成員變量有:學(xué)號(hào)、姓名、性別、年齡;成員方法有:獲得學(xué)號(hào)、姓名、性別、年齡;修改年齡。并書寫 Java程序創(chuàng)建Student類的對(duì)象及測(cè) 試其方法的功能。羂答: 衿 public class Stude nt衿 private String
12、 nu mber, n ame;螄 private boolea n se x; /true表示"男”,false 表示"女”螃 private int age;羀 Stude nt()羈nu mber = "" ; sex = true; age = 0膃蒃 Student(String num, String na, boolean s, int a)羈nu mber = num; sex = s; age = a;肆袇 public String getNumber()芄 return nu mber;蝿 蒈 public Stri ng getN
13、ame()芆 return n ame;羄 袀 public boolea n getSex()薇 return sex;螅 蒀 public int getAge()羂 return age;罿 膅 public void setAge(int a)膁 age = a;蝿 肇 public String toString() 薄 return "學(xué)號(hào): "+ number +" 姓名: "+ name +" 性別: "+ sex +" 年齡: "+ age;羈 螀 public static void main(
14、String args) 膆 Student stu =new Student("2", " 張三 ", true,20);肅 ;蟻 袂薈 12 如何定義靜態(tài)成員變量?靜態(tài)成員變量有什么特點(diǎn)?靜態(tài)方法有何特點(diǎn)?為什么有的時(shí) 候需要定義靜態(tài)方法?靜態(tài)方法處理的成員變量有什么要求?蒃答:在定義成員變量的時(shí)候前面加上static 修飾符,該變量即成為靜態(tài)成員變量,靜態(tài)成員變量也稱為類變量。蒂類變量和實(shí)例變量的區(qū)別是, 不管為類創(chuàng)建了多少對(duì)象, 系統(tǒng)僅在第一次調(diào)用類的時(shí)候?yàn)轭愖?量分配內(nèi)存, 所有對(duì)象共享該類的類變量。 因此, 可以通過類本身或者某個(gè)對(duì)象來訪問類
15、變量。蠆當(dāng)定義一個(gè)方法的時(shí)候,使用 static 關(guān)鍵字說明該方法是類方法(靜態(tài)方法)而不是實(shí)例方 法。當(dāng)?shù)谝淮握{(diào)用含類方法的類時(shí),系統(tǒng)只為該類的類方法創(chuàng)建一個(gè)版本。這個(gè)版本被該類和 該類的所有實(shí)例所共享。蚆調(diào)用類方法時(shí)不需要實(shí)例化類, 因此對(duì)那些不想實(shí)例化的類, 或者不需要實(shí)例化的類, 但又需要調(diào)用該類的方法,這時(shí)就可以把該方法定義為類方法。袃類方法只能操作類變量,不能訪問在類中定義的實(shí)例變量,同時(shí),類方法可以在類中被調(diào)用, 不必通過創(chuàng)建一個(gè)實(shí)例對(duì)象來調(diào)用一個(gè)類方法,當(dāng)然也可以在實(shí)例對(duì)象中調(diào)用類方法。衿13使用靜態(tài)成員變量來計(jì)算內(nèi)存中的實(shí)例化的對(duì)象數(shù)目。莇 public class Coun
16、t 螆 private String name;芃 private static int number = 0; / 計(jì)數(shù) Count 對(duì)象生成的個(gè)數(shù) 蠆 Count() 膅 name = null;襖 number+;螞 莀 Count(String n) 芆 name = n;羂 number+;膁 膀 protected void finalize() 莇 / 當(dāng)有一個(gè) Count 對(duì)象釋放時(shí)會(huì)執(zhí)行該方法,此時(shí)對(duì) number 減 1蒞" 有一個(gè) Item 對(duì)象釋放了 ");薁 number-;袁膅 public static void main(String arg
17、s) 蒃Count c1 = new Count();羀Count c2 = new Count();蟻 c1 = null;膆 " 執(zhí)行垃圾收集前Item 對(duì)象的個(gè)數(shù): "袆 + number);蚃 / 強(qiáng)制執(zhí)行垃圾收集,觀察Count 類中 number 值的變化羋 " 執(zhí)行垃圾收集后Item 對(duì)象的個(gè)數(shù): "羄 + number);c1 = new Count();袈;肅 " 執(zhí)行垃圾收集后Item 對(duì)象的個(gè)數(shù): "肂 + number);薂薈肆14. 定義一個(gè)計(jì)算矩形面積、立方體和球體體積的類。該類完成計(jì)算的方法用靜態(tài)方法實(shí)現(xiàn)
18、。 蒅 public class Calculate羈 public static double calculateRectangleArea(莈 double height,double width)膈 return height * width ;薃 莁 public static double calculateCubeVol(double x, double y, double z)聿 return x * y * z;羅 羆 public static double calculateSphereVol(double r)袀return (4/3) * 3.14 * r * r *
19、r;蝿 羆 肄 15. 設(shè)計(jì)一個(gè)表示用戶的 User 類,類中的變量有用戶名、口令(私有的)和記錄用戶個(gè)數(shù)的 變量(靜態(tài)的) ,定義類的 3 個(gè)構(gòu)造方法(沒有參數(shù)、有一個(gè)參數(shù)給用戶名賦值、有兩個(gè)參數(shù)給 用戶名和口令賦值) 、獲取和設(shè)置口令的方法、返回字符串表示的類信息的方法(包含用戶名、 口令)。編寫應(yīng)用程序測(cè)試 User 類。蒄答: 薀 class Userprivate String name, password;private static int number;User()name = null;password = null;n umber+;裊User(String n)name
20、= n; password = null; number+;User(String n, String ps)name = n; password = ps; nmuber+public String getPassword() /密碼全部以明文操作,沒有使用加密算法return password;public setPassword(String ps)password = ps;public String toString() 蝕 return " 用戶名: "+ name +" 口令: "+ password;羇袇節(jié) public class Te
21、st肀 User usr = new User(" 張三 ", "123456");螈 usr.setPassword("abcdef");袈 usr.toString();薅螃 16定義一個(gè) Company 類,成員變量有公司名稱、雇員列表、公司每年的總收入。該類的構(gòu) 造方法可能有如下形式:蒈 public Company(String name) 蚅也可以有更多其它形式的構(gòu)造方法?;蛟S還應(yīng)該有如下方法:蚃 public void setName(String name) 膃 public String getName() 艿必須提
22、供一個(gè)公共的 dump方法來打印有關(guān) Company的信息,如公司名稱、雇員和公司總收入。 最后為Company類編寫一個(gè)測(cè)試客戶程序。螇答:肅 class Company螞 public String name; /公司名稱罿 public String employee; /雇員列表螈 private int number; /雇員人數(shù)膄 public double grossIncome; /總收入肁 Company(String n)蝿 name = n;100 人薆employee = new String100;/假設(shè)雇員人數(shù)不超過薆 蒁 public void setName(S
23、tring n)蒀 name = n;蚇蚄 public String getName() 袀 return name;芀螈 public void setGrossIncome(double income)螃 grossIncome = income;薄羀 public String getGrossIncome() 薆 return grossIncome;膅肅 public addEmployee(String n)蟻 employeenumber = n;薇 number+;芄蒂 public removeEmployee(String n)膇 int i;蚈 for(i = 0;i
24、< number; i+) / 查找待刪除雇員所在位置蚆 if(employeei. compareTo(n) = 0) break;袂羈 if(i < number)蒆 employeei = null; / 刪除該雇員信息螄 for( ; i < number ;i+) /被刪除雇員后面的雇員向前移動(dòng)一個(gè)位置芁 employeei = employeei+1;蚈蕆 number-; / 雇員總數(shù)減 1袃螀莈 public void dump()蕿 " 公司名稱: "+ name +" 總收入: "+ grossIncome);芅&q
25、uot; 雇員列表: ");膀for(int i=0; i < number; i+)腿 ;莆莃 袃衿 public class Test莇 public static void main(String args) 螆 Company com = new Company("Sun Microsystem");芃 com.addEmployee(" 張三 ");蠆 com.addEmployee(" 李四 ");膅 com.setGrossIncome(9);襖 com.dump();螞莀方法。芆 17定義一個(gè) Cour
26、se 類,該類有這樣一些成員變量:課程號(hào)、課程名稱、授課教師、課程狀 態(tài)(必修或者選修) ,所有的成員變量都是私有的,并且有用于訪問它們的公共 set/get 最后為 Course 類編寫一個(gè)測(cè)試程序。羂答:膁 class Course膀 private String id,courseName,teacher,state;莇 Course(String i,String c,String t,String s)蒞 id = i; courseName = c; teacher = t; state = s;薁袁 public void setTeacher(String t)膅 teache
27、r = t;蒃羀 public String getTeacher()蟻 return teacher;膆袆 public void setState(String s)蚃 state = s;肇羋 public String getState()羄 return state;肅袈/ 其他的方法可類似定義肅 public String toString() 肂 return id + courseName + teacher + state;薂薈肆 public class Test蒅 public static void main(String args) 羈 Course course =
28、 new Course("010123"," 面向?qū)ο蟪绦蛟O(shè)計(jì) _Java",莈"甘玲 "," 限選 ");膈 course.toString();薃莁聿 18 實(shí)現(xiàn)一個(gè) BankTransaction 類,允許用戶進(jìn)行如下操作:開帳號(hào),取消帳號(hào),把錢存到 已經(jīng)存在的帳號(hào)中,從已經(jīng)存在的帳號(hào)中取錢,把錢從一個(gè)帳號(hào)轉(zhuǎn)移到另一個(gè)帳號(hào),要求打印 出一個(gè)或多個(gè)已存在的帳號(hào)的報(bào)告。這個(gè)羅一個(gè)用戶能開的帳號(hào)數(shù)不應(yīng)該有上限, 類還應(yīng)該包含一個(gè)方法, 如果一個(gè)帳號(hào)超支的話, 方法自動(dòng)給出一個(gè)警告。最后為 BankTransacti
29、on 類編寫一個(gè)測(cè)試程序。羆答:袀 class Count /首先定義帳號(hào)類蝿 private String id; /帳號(hào) id羆 private String name; /儲(chǔ)戶姓名肄 private double total; /帳戶余額蒄 Count(String i, String n, double t)薀 id = i; total =t;肈膂 public String getId()羃 return id;芀裊 public void setId(String i)薅 id = i莂肀 public String getName()羇 return name;蚃螂 publi
30、c void setName(String n)螁 name = n羈 public double getTotal()羅 return total;芁薁 public void setTotal(double t)螅 if(t < 0 ) "金額錯(cuò)誤 ");肄 else total = t;蝕羇袇 class BankTransaction節(jié) / 儲(chǔ)戶列表,雖然儲(chǔ)戶個(gè)數(shù)不應(yīng)該有限制,但是為了方便,這里還是假設(shè)最多100 個(gè)private Count depositors100;肀 private int number; /實(shí)際儲(chǔ)戶個(gè)數(shù)螈 public creatCo
31、unt(String i,String n,double t) /創(chuàng)建一個(gè)帳戶袈Count cnt = new Count(i, n, t);薅 / 每個(gè)帳戶的 id 應(yīng)該通過某種算法生成,以保證唯一性,螃/ 這里為了簡(jiǎn)化,直接指定帳戶 id蒈 depositorsnumber = cnt;蚅 number+;蚃膃 public removeCount(String idn) /刪除一個(gè)帳戶艿 int i;螇 for(i = 0;i < number; i+) /查找待刪除儲(chǔ)戶所在位置肅 if(pareTo(depositorsi.getId() = 0) break;螞罿 if(i &
32、lt; number)螈 depositorsi = null; /刪除該儲(chǔ)戶信息膄 for( ; i < number ;i+) /被刪除儲(chǔ)戶后面的儲(chǔ)戶向前移動(dòng)一個(gè)位置肁 depositorsi = depositorsi+1;蝿薆 number-; / 實(shí)際儲(chǔ)戶總數(shù)減 1薆蒁蒀 public double getMoney(String idn, double money) / 取錢蚇 int i;蚄 for(i = 0;i < number; i+) /查找儲(chǔ)戶所在位置袀 if(pareTo(depositorsi.getId() = 0) break;芀螈 if(i <
33、; number)螃 if(money <= depositorsi.getTotal() 薄 depositorsi.setTotal(depositorsi.getTotal() - money);羀 return money;薆膅 else " 帳戶余額不足 ");肅蟻 else " 用戶不存在 ");芄 public void saveMoney(String idn, double money) / 存錢蒂 int i;膇 for(i = 0;i < number; i+) / 查找儲(chǔ)戶所在位置蚈 if(pareTo(deposit
34、orsi.getId() = 0) break;if(i < number) depositorsi.setTotal(depositorsi.getTotal() + money);else " 用戶不存在 ");public void transferMoney(String id1, String id2, double money)/ 把帳戶 1 的錢轉(zhuǎn)到帳戶 2int i,j;for(i = 0;i < number; i+) / 查找儲(chǔ)戶 1 所在位置 if(pareTo(depositorsi.getId() = 0) break;for(j = 0;j < number; j+) / 查找儲(chǔ)戶 2 所在位置 if(pareTo(depositorsj.getId() = 0) break;if(i < number && j < number)if(money <
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度全流程代理記賬服務(wù)合同范本2篇
- 2025玉器采購合同供銷合同
- 2025年度房屋抵押借款合同之延期還款及罰息協(xié)議范本3篇
- 語文-口語交際-應(yīng)聘-課件
- 二零二五年廣告行業(yè)兼職策劃合同范本
- 動(dòng)脈穿刺抽血法操作并發(fā)癥課件
- 二零二五年度國際海洋運(yùn)輸合同附加貨物保險(xiǎn)險(xiǎn)別規(guī)定2篇
- 二零二五年度二手車經(jīng)銷商培訓(xùn)與支持服務(wù)合同3篇
- 《小學(xué)生腦筋急轉(zhuǎn)彎》課件
- 二零二五年度個(gè)人旅游貸款擔(dān)保服務(wù)合同范本2篇
- 《小學(xué)生良好書寫習(xí)慣培養(yǎng)的研究》中期報(bào)告
- 大學(xué)英語四級(jí)詞匯表(下載)
- 2025年四川成都市溫江區(qū)市場(chǎng)監(jiān)督管理局選聘編外專業(yè)技術(shù)人員20人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 手術(shù)室發(fā)生地震應(yīng)急預(yù)案演練
- 初中數(shù)學(xué)新課程標(biāo)準(zhǔn)(2024年版)
- 高職院校專業(yè)教師數(shù)字素養(yǎng)架構(gòu)與提升路徑
- 售后服務(wù)人員培訓(xùn)資料課件
- 2024-2030年中國薯?xiàng)l行業(yè)發(fā)展趨勢(shì)及投資盈利預(yù)測(cè)報(bào)告
- 生命智能學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 專項(xiàng)14-因式分解-專題訓(xùn)練(50道)
- 中華傳統(tǒng)文化之戲曲瑰寶學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論