尧图精选

类与对象Java编程

🕒 发布时间:2026/11/6 8:24:40 📁 来源:尧图网络
实验名称 实验三、类与对象一、实验目的1、学会定义并实现类。2、学会定义并创建类的对象通过类的对象访问类的成员属性与方法。3、学会定义并实现派生类学会使用派生类的对象。4、理解并学会使用类的多态性。二、实验环境Eclipse三、实验内容(写出主要的内容)1 定义并实现一个长方体类Cube包含长length、宽width与高height等三个属性包含计算体积calVolume与计算表面积calArea等两个方法类的属由构造函数进行初始化或通过成员函数赋值。编写一段程序测试该类。packagepkg403;classCube{floatlength;floatwidth;floatheight;publicfloatCalv(floatl,floatw,floath){floatcalVolume;calVolumel*w*h;returncalVolume;}publicfloatCala(floatL,floatW,floatH){floatcalArea;calArea2*L*W2*L*H2*W*H;returncalArea;}}publicclassMain{publicstaticvoidmain(String[]args){CubepnewCube();System.out.println(长方体的体积为p.Calv(3,4,5));System.out.println(长方体的面积为p.Cala(3,4,5));}}截图2.定义并实现一个三角形类Triangle其三个边长edge1, edge2, edge3为其属性包含判断其是否为三角形isTriangle、计算周长calPerimeter及计算面积calArea等三个方法类的属由构造函数进行初始化或通过成员函数赋值。编写一段程序测试该类。packageaa;classTrangle{doubleedge1;doubleedge2;doubleedge3;publicvoidIstri(doublea1,doublea2,doublea3){edge1a1;edge2a2;edge3a3;if(edge1edge2edge3edge1edge3edge2edge2edge3edge1)System.out.println(这三条边能构成三角形);elseSystem.out.println(这三条边不能能构成三角形);}publicdoubleCalp(doublea1,doublea2,doublea3){edge1a1;edge2a2;edge3a3;doublecalPermeteredge1edge2edge3;System.out.println(该三角形的周长为calPermeter);return0;}publicdoubleCala(doublea1,doublea2,doublea3){edge1a1;edge2a2;edge3a3;doubleC(edge1edge2edge3)/2;doublecalAreaMath.sqrt(C*(C-edge1)*(C-edge2)*(C-edge3));System.out.println(该三角形的面积为calArea);return0;}}publicclassAa{publicstaticvoidmain(String[]args){TrangletrnewTrangle();tr.Istri(1,2,3);tr.Calp(3,4,5);tr.Cala(3,4,5);}}截图3. 定义并实现一个复数类(Complex)包含实部real及虚部image两个属性包含计算两个复数的和(add)、积(multiply)以及打印复数(print)等三个方法类的属由构造函数进行初始化或通过成员函数赋值。编写一段程序测试该类。packagehh;classComplex{intreal;intimage;publicComplex(intreal,intimage){this.realreal;this.imageimage;}publicstaticComplexadd(Complexexa1,Complexexa2){intrealexa1.realexa2.real;intimageexa1.imageexa2.image;returnnewComplex(real,image);}publicstaticComplexmultiply(Complexexa1,Complexexa2){intreal(exa1.real*exa2.real)-(exa1.image*exa2.image);intimage(exa1.image*exa2.real)(exa1.real*exa2.image);returnnewComplex(real,image);}publicStringtoString(){return(this.realthis.imagei);}}publicclasshh{publicstaticvoidmain(String[]args){Complexcomplex1newComplex(2,3);Complexcomplex2newComplex(4,5);System.out.println((complex1)(complex2)Complex.add(complex1,complex2));System.out.println((complex1)*(complex2)Complex.multiply(complex1,complex2));}}截图4. 定义并实现一个Person类包含姓名name与编号code等两个属性通过构造函数为属性赋值拥有显示属性值的方法showInfo。从Person类派生出一个Student类拥有数学成绩、英语成绩、Java成绩等三个属性拥有输入成绩、计算平均成绩、显示信息姓名、编号及平均值等方法。编写一段程序测试这两个类。packageper;importjava.util.Scanner;classPerson{Stringname;intcode;publicvoidperson(Stringname,intcode){this.namename;this.codecode;}publicvoidshowInfo(Stringname,intcode){System.out.println(姓名为name);System.out.println(编号为code);}}classStudentextendsPerson{intmathscored;intEnglishscored;intjavascored;publicvoidinput(){ScannerscannernewScanner(System.in);System.out.println(请分别输入数学成绩、英语成绩、Java成绩);mathscoredscanner.nextInt();Englishscoredscanner.nextInt();javascoredscanner.nextInt();}publicfloatavg_scored(){floatavg(mathscoredEnglishscoredjavascored)/3;returnavg;}publicvoidshowInfo(Stringname,intcode,floatavg){avgavg_scored();System.out.println(姓名为name);System.out.println(编号为code);System.out.println(平均值为avg);}}publicclassTestperson{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);Stringname;intcode;floatavg;System.out.print(请输入姓名和编号);namescanner.next();codescanner.nextInt();PersonpnewPerson();StudentsnewStudent();p.showInfo(name,code);s.input();avgs.avg_scored();s.showInfo(name,code,avg);}}截图5. 定义并实现一个Circle类属性为圆的半径radius其值由构造函数初始化。包含计算周长(calPerimeter)与计算面积(calArea)显示信息半径、周长与面积(showInfo)等方法。从Circle类派生出Cylinder类拥有高height这个属性其值由构造函数初始化。包含计算表面积calArea、计算体积calVolume及显示信息半径、表面积、体积(showInfo)等方法。编写一段程序测试这两个类。packagecir;importjava.util.Scanner;classCircle{floatradius;publicvoidcircle(floatcirl){radiuscirl;}publicdoubleCalp(){doublecalPerimeter;calPerimeter2*Math.PI*radius;returncalPerimeter;}publicdoubleCala(){doublecalArea;calAreaMath.PI*radius*radius;returncalArea;}publicvoidshowInfo(floatradius,doublecalArea1,doublecalPerimeter){calArea1Cala();calPerimeterCalp();System.out.println(圆的半径为radius);System.out.println(圆的面积为calArea1);System.out.println(圆的周长为calPerimeter);}}classCylinderextendsCircle{floatheight;publicvoidcylinder(floatf){heightf;}publicdoubleCalv(){doublecalVolume;calVolume1/3*Math.PI*radius*radius*height;returncalVolume;}publicdoubleCala(){doublecalArea;calAreaheight*Math.PI*radius;returncalArea;}publicvoidshowInfo(floatradius,doublecalArea2,doublecalVolume){calArea2Cala();calVolumeCalp();System.out.println(圆锥的半径为radius);System.out.println(圆锥的面积为calArea2);System.out.println(圆锥的体积为calVolume);}}publicclassTestCircle{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);CirclecnewCircle();CylindercynewCylinder();floatradius;floatheight;doublecalArea1;doublecalVolume;doublecalPerimeter;doublecalArea2;System.out.print(请输入半径);c.radiusscanner.nextFloat();calArea1c.Cala();calPerimeterc.Calp();c.showInfo(c.radius,calArea1,calPerimeter);System.out.print(请输入高度);cy.heightscanner.nextFloat();cy.radiusc.radius;calArea2cy.Cala();calVolumecy.Calv();cy.showInfo(cy.radius,calArea2,calVolume);}}截图6. 定义并实现如下三个类1Shape类无属性有一个抽象方法calArea2Rectangle类从Shape类派生有长度length与宽度width两个属性需重写calArea方法3Circle类从Shape类派生有半径Radius一个属性需重写calArea方法。编写一段程序来测试这几个类。javapackageshape;importjava.util.Scanner;abstractclassShape{publicabstractvoidcalArea();}classRectangleextendsShape{doublelength;doublewidth;publicvoidretangle(floatl,floatw){lengthl;widthw;}publicvoidcalArea(){doublearealength*width;System.out.println(长方形的面积为areaarea);;}}classCircleextendsShape{floatradius;publicvoidcircle(floatr){radiusr;}publicvoidcalArea(){doubleareaMath.PI*radius*radius;System.out.println(圆的面积为areaarea);}}publicclassTestshape{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);RectanglernewRectangle();CirclecnewCircle();floatlength,width;floatradius;System.out.print(请输入长方形的长和宽);r.lengthscanner.nextFloat();r.widthscanner.nextFloat();r.calArea();System.out.print(请输入圆的半径);c.radiusscanner.nextFloat();c.calArea();}}截图7. 在6的基础上从Rectangle类派生Cube类有属性高度width有计算表面积calArea及计算体积(calVolume)等方法。编写一段程序来测试这几个类。packageshape;importjava.util.Scanner;abstractclassShape{publicabstractvoidcalArea();}classRectangleextendsShape{doublelength;doublewidth;publicvoidretangle(floatl,floatw){lengthl;widthw;}publicvoidcalArea(){doublearealength*width;System.out.println(长方形的面积为areaarea);}}classCubeextendsRectangle{doubleheight;publicvoidcube(doubleh){heighth;}publicvoidcalArea(){doublearea2*length*width2*length*height2*width*height;System.out.println(长方体的表面积为area);}publicvoidColv(){doublecalVolumelength*width*height;System.out.println(长方体的体积为calVolume);}}publicclassTestshape{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);CubecnewCube();RectanglernewRectangle();doublelength,width,height;System.out.print(请输入长方体的长和宽);r.lengthscanner.nextFloat();r.widthscanner.nextFloat();c.lengthr.length;c.widthr.width;System.out.print(请输入长方体的高);c.heightscanner.nextFloat();c.calArea();c.Colv();}}截图
上一篇/下一篇内容由系统自动关联 返回资讯列表 →