Java程序設(shè)計(jì)教程(第2版)課后習(xí)題及答案10課后習(xí)題_第1頁
Java程序設(shè)計(jì)教程(第2版)課后習(xí)題及答案10課后習(xí)題_第2頁
Java程序設(shè)計(jì)教程(第2版)課后習(xí)題及答案10課后習(xí)題_第3頁
Java程序設(shè)計(jì)教程(第2版)課后習(xí)題及答案10課后習(xí)題_第4頁
Java程序設(shè)計(jì)教程(第2版)課后習(xí)題及答案10課后習(xí)題_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章課后習(xí)題參考答案

1.有三個雇員,其信息如下。

姓名職務(wù)年齡工資

王振經(jīng)理405000

劉莉莉出納333200

王紅秘書252800

對雇員信息進(jìn)行如下操作。

(1)創(chuàng)建一個ArrayList對象,將這三個雇員信息存儲到這個ArrayLisl對象中。

(2)將ArrayList對象中的元素顯示一遍。

(3)在“劉莉莉”前插入一個新雇員,其信息為:

張芳副經(jīng)理384200

插入后將ArrayList對象中的元素再顯示出來。

(4)從ArrayList對象中刪除“劉莉莉”后再將其中的元素顯示出來。

答:

importjava.util.ArrayList;

importjava.util.*;

classEmployee

(

Stringname;

Stringoccupation;

intage;

intsalary;

publicEmployee(Stringn,Stringojntage,ints)

(

name=n;

occupation=o;

age=this.age;

salary=s;

)

publicStringgetName()

(

returnname;

)

publicvoidoutput()

{

System.out.println(name4-"_,,+occupation+,,_"4-age+,,_,,+salary);

publicclassexercise10_01

|

publicstaticvoidmain(String[]args)

Scannerreader=newScanner(System.in);

Stringnm,occu;

intage,salary;

ArrayList<Employee>employeeList=newArrayList<Employee>();

Employeee;

e=newEmployee(“王振",“經(jīng)理”,40,5000);

employeeList.add(e);

e=newEmployee(“文U莉莉“,“出納”,33,3200);

employeeList.add(e);

e=newEmployee(“王紅“,“秘,書”,25,2800);

employeeList.add(e);

Iteratorit=employeeList.iterator();

while(it.hasNext())

(

e=(Employee)it.next();

e.output();

)

System.out.println();

for(inti=0;i<employeeList.size();i++)

(

if(((Employee)employeeList.get(i)).getName().equals("劉莉莉"))

(

e=newEmployee(“張芳“,“副經(jīng)理”,38,4200);

empIoyeeList.add(i,e);

break;

)

}

it=employeeList.iterator();

while(it.hasNext())

(

e=(Employee)it.next();

e.output();

)

System.out.println();

for(inti=0;i<employeeList.size();i++)

(

if(((Employee)employeeList.get(i)).getName().equals("劉莉莉"))

(

employeeList.remove(i);

break;

I

)

it=employeeList.iterator();

while(it.hasNext())

e=(Employee)it.next();

e.output();

)

}

)

2.定義注解類用于描述“水果”的信息,水果的信息有:名稱、顏色、經(jīng)銷商(包括經(jīng)銷商編

號和名稱)、供貨商(包括供貨商編號、姓名和地址),用自定義的水果注解類標(biāo)注水果,并能從

注解中提取水果信息。

答:

importjava.lang.reflect.*;

importjava.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)〃元注解,運(yùn)行時保留注解,必須有,否則注解值讀不出

?interfaceFruilDealer//定義注解

(

〃定義注解元素,都有缺省值

publicStringcode()default',00ln;

publicStringname()defaull”旺旺生鮮超市”;

)

@Retention(RetentionPolicy.RUNTIME)

?interfaceFruitSupplier〃定義注解

(

publicStringname()default”南國梨莊園”;

publicStringcode()defaultn002M;

publicStringaddress()default"鞍山”;

)

@Retention(RetentionPolicy.RUNTIME)

?interfaceFruitColor〃定義注解

(

publicStringvalue()default"綠色”;

)

@Retention(RetentionPolicy.RUNTIME)

?interfaceFruilName〃定義注解

(

publicStringvalue()default"蘋果”;

classFruit

@FruitName(“香蕉”)

publicStringname;

@FruitColor(“黃色”)

publicStringcolor;

〃為域dealer加注解,給部分元素賦值,其余用缺省值

//如果注解元素都用缺省值,則直接寫@FruitDealer

@FruitDealer(name=u果果M,code=H201")

publicStringdealer;

@FruitSupplier(name=n萊陽梨”,8(1-"222”再(1加50="山東”)

publicStringsupplier;〃域有注解

publicvoidsetDealer(Stringm)

{

dealer=m;

)

publicStringgetDealer()

{

returndealer;

)

publicvoidsetSupplier(Stringsupplier)

(

this.supplier=supplier;

)

publicStringgetSupplier()

(

returnsupplier;

)

publicvoidsetName(Stringname)

{

=name;

)

publicStringgetName()

{

returnname;

)

publicvoidsetColor(Stringcolor)

|

this.color=color;

publicStringgetColor()

returncolor;

publicclassexercise10_02

(

publicstaticvoidmain(StringargslJ)

(

System.out.println(readAnnotation(Fruit.class));

)

〃讀注解信息

privatestaticStringreadAnnotation(ClassaClass)

(

Stringdealer="經(jīng)銷商:“;

Stringsupplie戶"供貨商:”;

Stringname="名字:

Stringcolor="顏色:";

Fieldfields[]=aClass.getDeclaredFields();//^MXFruit類的所有字段

for(FieldaFieldfelds)〃對每一個字段判斷

{

〃字段的注解是FruitDealer類型

if(aField.isAnnotationPresenl(FruitDealer.class))

(

FruitDealeraDealer;//聲明一個注解變量

//調(diào)用getAnnotation方法獲得在aField域上的注解“實(shí)例”

aDealer=(FruitDealer)aField.getAnnotation(FruitDealer.class);

dealer+二aDealer.code()+"

dealer4-=aD()4-"\n,';

)

//字段的注解是FruitSupplier類型

elseif(aField.isAnnotationPresent(FruitSupplier.class))

(

FruitSupplieraSupplier;

aSupplier=(FruitSupplier)aField.getAnnotation(FruitSupplier.class);

supplier+=aS()+n";

supplier+=aSupplier.code()+"";

supplier+=aSupplier.address()+"\nu;

)

elseif(aField.isAnnotationPresent(FruitName.class))

FruitNameaName;

aName=(FruitName)aField.getAnnotation(FruitName.class);

name+=aName.value()+u\nn;

elseif(aField.isAnnotationPresent(FruitColor.class))

(

FruitColoraColor;

aColor=(FruitColor)aField.getAnnotation(FruitColor.class);

color+=aColor.value()+u\n0;

)

}

returndealer+supplier+name+color;

)

)

3.利用反射機(jī)制,顯示出String類和Integer類中都有哪些域和方法。

答:

importjava.lang.reflect.*;

publicclassexercise10_03

(

publicstaticvoidmain(Stringargsf])throwsException

(

〃獲得一個表示String類的Class對象

Classobj=Class.forNameC'java.lang.String");

//獲取String類中的構(gòu)造方法

Constructorconslructor[]=obj.getConstructors();

System.out.println(HString類中的構(gòu)造方法:”);

for(Constructorcon:constructor)//將構(gòu)造方法輸出

System.out.println(con.toStringO);

System.out.printlnO;

//獲取Siring類中的所有域

Fieldfield[]=obj.getDeclaredFields();

System.out.printlnC'String類中的域:”);

for(Fieldf:field)

System.out.println(f.toStringO);

System.out.println();

//獲取String類中的所有方法

Methodmethod[]=obj.gelDeclaredMethods();

System.out.printlnC'String類中的方法:");

for(Methodm:method)

System.out.println(m);

System.out.println();

〃獲取Integer類中的構(gòu)造方法

obj=Class.fbrName("java.lang.lnteger");

//獲取Integer類中的構(gòu)造方法

constructor=obj.getConstructors();

System.out.println("Integer類中的構(gòu)造方法:”);

for(Constructorcon:constructor)〃將構(gòu)造方法輸出

System.out.println(con.toStringO);

System.out.println();

//獲取Inleger類中的所有域

field=obj.getDeclaredFields();

System.out.println(MInteger類中的域:");

for(Fieldf:field)

System.out.println(f.toStringO);

Systein.out.println();

//獲取Integer類中的所有方法

method=obj.getDeclaredMethodsO;

System.out.println("Integer類中的方法:”);

for(Methodm:method)

System.out.println(m);

System.out.println();

4.用LinkedList類實(shí)現(xiàn)判斷一個字符串是否是“回文二

答:

importjava.utiLLinkedList;

importjava.util.*;

publicclassexercise10_04

(

publicstaticvoidmain(Stringargsf])

{

LinkedListlist=newLinkedList();〃創(chuàng)建一個LinkedList對象list

Scannerreader=newScanner(System.in);

charchead,ctail;

Stringstr=reader.next();

for(inti=0;i<str.length();i++)〃將obj對象加入到list中

list.add(str.charAt(i));

while(list.size()>l)

(

chead=(char)Iist.pollFirst();〃刪除表頭元素

ctail=(char)list.pollLast();〃刪除表尾元素

if(chead!=ctail)

(

溫馨提示

  • 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

提交評論