一、9.2(1)题目设计一个Stock的类,这个类包括:一个名为symbol的字符串数据域表示股票代码一个名为name的字符串数据域表示股票名字一个名为previousClosingPrice的double型数据域,它存储的是前一日的股票值一个名为currentPrice的double型数据域,它存储的是当时的股票值。创建一支有特定代码和名字的股票的构造方法。一个名为getChangePercent()的方法返回从previousClosingPrice变化到currentPrice的百分比。实现这个类,编写一个测试程序,创建一个Stock对象,它的股票代码是ORCL股票名字为OracleCorporation,前一日收盘价是34.5。设置新的当前值为34.35,然后显示市值变化的百分比。(2)UML图(3)代码packageedu.neu.li.test;publicclassStock{privateStringsymbol=;privateStringname;privatedoublepreviousClosingPrice;privatedoublecurrentPrice;publicStock(){symbol=;name=;previousClosingPrice=34.5;currentPrice=34.35;}publicStock(Stringnewsymble,Stringnewname){symbol=newsymble;name=newname;}publicStringgetsymbol(){returnsymbol;}publicStringgetname(){returnname;}publicdoublegetChangPercent(){returncurrentPrice/previousClosingPrice;}}packageedu.neu.li.test.run;importedu.neu.li.test.Stock;publicclasstest1{publicstaticvoidmain(String[]args){Stocks1=newStock();Stocks=newStock(ORCL,OracleCorporation);System.out.println(Thesymbolis:+s.getsymbol());System.out.println(Thenameis:+s.getname());System.out.println(TheChangPercentis:+s1.getChangPercent());}}(4)运行结果Thesymbolis:ORCLThenameis:OracleCorporationTheChangPercentis:0.9956521739二、9.8(1)题目设计一个名为Fan的类表示风扇。这个类包括:1三个常量SLOW,MEDIUM和FAST,其值分别为1,2,3,表示风扇的速度;2int类型的数据域speed表示风扇的速度;默认值为SLOW3boolean型的数据域on表示风扇是否打开;默认值为false4double型的数据域radius表示风扇的半径;默认值为55string型的数据域color表示风扇的颜色;默认值为blue6无参构造方法创建默认风扇;7全部四个数据域的访问器和修改器;9toString()方法返回描述风扇的字符串。如果风扇打开,该方法用一个组合的字符串返回风扇的速度,颜色和半径;否则,用一个组合的字符串和“fanisoff”一起返回风扇的颜色和半径。画出该类的UML图并实现它。编写一个测试程序,创建两个Fan对象,将第一个对象设置为最大速度,半径为10,颜色为yellow,打开状态;第二个对象为中等速度,半径为5,颜色blue,关闭状态。通过调用toString方法显示该对象(2)UML图(3)代码packageedu.neu.li.test;publicclassFan{privatefinalintSLOW=1;privatefinalintMEDIUM=2;privatefinalintFAST=3;privateintspeed=SLOW;privatebooleanon=false;privatedoubleradius=5;privateStringcolor=blue;publicFan(){}publicFan(intspeed,booleanon,doubleradius,Stringcolor){this.speed=speed;this.on=on;this.radius=radius;this.color=color;}publicintgetspeed(){returnspeed;}publicvoidsetspeed(intspeed){this.speed=speed;}publicbooleangeton(){returnon;}publicvoidseton(booleanon){this.on=on;}publicdoublegetradius(){returnradius;}publicvoidsetradius(doubleradius){this.radius=radius;}publicStringgetcolor(){returncolor;}publicvoidsetcolor(Stringcolor){this.color=color;}publicStringtoString(){if(on==true){returnthefanis:+on+thespeedis:+speed+thecolor:+color+theradius:+radius;}else{returnfanisoff+thecolor:+color+theradius:+radius;}}}packageedu.neu.li.run;importedu.neu.li.test.Fan;publicclassFan2{publicstaticvoidmain(String[]args){FanF=newFan();FanF2=newFan(3,true,10,yellow);System.out.println(TheFan:+F2.toString());}}(4)运行结果:thefanis:truethespeedis:3thecolor:yellowtheradius:10.0三、10.4(1)题目设计名为MyPoint的类表示平面中的一个坐标(x,y)两个私有属性:x、y表示横、纵坐标无参数构造方法:用于创建原点(0,0)根据指定坐标(x,y)创建一个点的(带参数)构造方法属性的getter和setter方法【注意使用this关键字】distance方法:返回任意两点间的距离distance方法:返回本坐标和任意一点间的距离(2)UML图(3)代码packageedu.neu.li.test;publicclassMyPoint{privatedoublex;privatedoubley;publicMyPoint(){x=0;y=0;}publicMyPoint(doublex,doubley){super();this.x=x;this.y=y;}publicdoublegetX(){returnx;}publicvoidsetX(doublex){this.x=x;}publicdoublegetY(){returny;}publicvoidsetY(doubley){this.y=y;}publicdoubledistance(MyPointp1,MyPointp2){doubled=0;d=Math.hypot((p1.getX()-p2.getX()),(p1.getY()-p2.getY()));returnd;}publicdoubledistance(MyPointp1){doubled=0;d=Math.hypot((x-p1.getX()),(y-p1.getY()));returnd;}}packageedu.neu.li.run;importedu.neu.li.test.MyPoint;publicclasstest{publicstaticvoidmain(String[]args){MyPointm=newMyPoint();MyPointm1=newMyPoint(10,30.5);System.out.println(Thedistanceis:+m.distance(m,m1));}}(4)运行结果Thesymbolis:32.09750769140807四、11.2(1)题目(Person、Student、Employee、Faculty和Staff类)设计一个名为Person的类和它的两个名为Stude和Employee子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名、地址、电话号码和电子邮箱地址。学生有班级状态(大一、大二、大三或大四)。将这些状态定义为常量。一个雇员有办公室、工资和受聘日期。定义一个名为MyDate的类,包含数据域:year(年)、month(月)和day(日)。教员有办公时间和级别。职员有职务称号。覆盖每个类中的toString方法,显示相应的类名和人名。画出这些类的UML图。实现这些类。编写一个测试程序,创建Person、Student、Employee、Faculty和Staff,并且调用它们的toSting()方法。(2)UML图(3)代码classPerson{Stringname;Stringaddress;Stringtelphone;publicPerson(Stringn,Stringa,Stringt){name=n;address=a;telphone=t;}publicStringtoString(){returnname+Person;}}classStudentextendsPerson{finalStringclass1=一年级;finalStringclass2=二年级;finalStringclass3=三年级;finalStringclass4=四年级;publicStudent(Stringn,Stringa,Stringt){super(n,a,t);}publicStringtoString(){returnname+Student;}}classEmployeeextendsPerson{Stringoffice;doublesalary;publicEmployee(Stringn,Stringa,Stringt,Stringo,doubles){super(n,a,t);office=o;salary=s;}publicStringtoString(){returnname+Employee;}}classFacultyextendsEmployee{intLevel;publicFaculty(Stringn,Stringa,Stringt,Stringo,doublew,intlevel){super(n,a,t,o,w);Level=level;}publicStringtoString(){returnname+Faculty;}}classStaffextendsEmployee{Stringposition;publicStaff(Stringn,Stringa,Stringt,Stringo,doublew,Stringp){super(n,a,t,o,w);position=p;}publicStringtoString(){returnname+Staff;}}publicclassff{publicstaticvoidmain(String[]args){Personp=newPerson(