您好,欢迎访问三七文档
第三章Java面向对象1、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007和Plane,其中Car007的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C。需要编写三类:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:计算Plane的时间:javaComputeTimePlane203040计算Car007的时间:javaComputeTimeCar007233445如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:javaComputeTimeShip223344提示:充分利用接口的概念,接口对象充当参数。实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName(Plane).newInstance()便可。interfaceCommon{abstractdoublegetSpeed();abstractdoublegetTime();}classPlaneimplementsCommon{intA,B,C;publicPlane(inta,intb,intc){A=a;B=b;C=c;}publicdoublegetSpeed(){returnA+B+C;}publicdoublegetTime(){return1000/(A+B+C);}}classCar007implementsCommon{intA,B,C;publicCar007(inta,intb,intc){A=a;B=b;C=c;}publicdoublegetSpeed(){returnA*B/C;}publicdoublegetTime(){return1000/(A*B/C);}}publicclassComputeTime{publicstaticvoidmain(String[]args){Commonplane=newPlane(20,30,40);System.out.println(飞机飞1000公里需要的时间为:+plane.getTime());Car007car=newCar007(23,34,45);System.out.println(汽车跑1000公里需要的时间为:+car.getTime());}}2、编写一个学生类Student,要求:(1)学生类Student属性有:id:long型,代表学号name:String类对象,代表姓名age:int型,代表年龄sex:boolen型,代表性别(其中:true表示男,false表示女)phone:String类对象,代表联系电话(2)学生类Student的方法有:Student(longi,Stringn,inta,booleans,Stringp):有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。intgetAge()():获取年龄作为方法的返回值。booleangetSex()():获取性别作为方法的返回值。StringgetPhone():获取联系电话作为方法的返回值。publicStringtoString():以姓名:联系电话的形式作为方法的返回值。classStudent{privatelongid;privateStringname;privateintage;privatebooleansex;privateStringphone;publicStudent(longi,Stringn,inta,booleans,Stringp){id=i;name=n;age=a;sex=s;phone=p;}publicintgetAge(){returnage;}publicbooleangetSex(){returnsex;}publicStringgetPhone(){returnphone;}publicStringtoString(){returnname+ageis+age++sex++phone;}}publicclassStudentInformation{publicstaticvoidmain(String[]args){Studentstu=newStudent(106,丁馨宇,20,false,18684882747);System.out.println(stu.getAge());System.out.println(stu.getPhone());System.out.println(stu.toString());}}3、利用接口编写三角形、矩形的面积和周长的程序。interfaceIShape{abstractdoublegetArea();abstractdoublegetLength();}classSanJiaoimplementsIShape{doublelow;doublehight;doubleleft,right;publicSanJiao(doublelow,doublehight,doubleleft,doubleright){this.low=low;this.hight=hight;this.left=left;this.right=right;}publicdoublegetArea(){returnlow*hight/2;}publicdoublegetLength(){returnlow+left+right;}}classJuimplementsIShape{doublewidth;doublelength;publicJu(doublew,doublel){width=w;length=l;}publicdoublegetArea(){returnlength*width;}publicdoublegetLength(){return(length+width)*2;}}publicclassApp1{publicstaticvoidmain(String[]args){IShapesanjiaoxing=newSanJiao(4.5,2.3,3,4);Jujuxing=newJu(5,4);System.out.println(三角形的面积=+sanjiaoxing.getArea());System.out.println(三角形的周长=+sanjiaoxing.getLength());System.out.println(矩形的面积=+juxing.getArea());System.out.println(矩形的周长=+juxing.getLength());}}4、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如我ABC4,应该截为我AB,输入我ABC汉DEF,6,应该输出为我ABC而不是我ABC+汉的半个。importjava.util.Scanner;publicclassCutString{staticStringstr;staticintn;publicstaticvoidmain(String[]args){System.out.println(请输入字符串:);Scannerreader=newScanner(System.in);str=reader.next();System.out.println(请输入字节数:);n=reader.nextInt();Interception(setValue());reader.close();}publicstaticString[]setValue(){String[]string=newString[str.length()];for(inti=0;istring.length;i++){string[i]=str.substring(i,i+1);}returnstring;//将这个字符数组返回}publicstaticvoidInterception(String[]string){intcount=0;Stringm=[\u4e00-\u9fa5];//汉字的正则表达试System.out.println(以每+n+字节划分的字符串如下所示:);for(inti=0;istring.length;i++){if(string[i].matches(m)){count=count+2;}else{count=count+1;}if(countn){System.out.print(string[i]);}elseif(count==n){//如果当前计数器count的值等于n,则输出当前字符System.out.print(string[i]);count=0;System.out.println();//内循环结果,则需要换行,起到控制打印格式的作用}else{count=0;//如果当前计数器count的值大于n,则计数器count清零,接着执行外部循环}}}}
本文标题:java-作业三6
链接地址:https://www.777doc.com/doc-4882426 .html