一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
package java实验报告五; class Circle { private double radius; //声明属性 public Circle(){ } public Circle(double r){ this.setRadius(r); //将半径初始化为r } public double getPerimeter(){ //计算周长的方法 double Perimeter=2*Math.PI*getRadius(); return Perimeter; } public double getArea(){ //计算面积的方法 double Area=Math.PI*getRadius()*getRadius(); return Area; } public void disp(){ System.out.println("半径;"+getRadius()); System.out.println("周长:"+getPerimeter()); System.out.println("面积:"+getArea()); } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } } public class CircleTest1{ public static void main(String arg[]){ Circle cir=new Circle(1.00); cir.disp(); } }
(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
double getHeight():获得圆柱体的高
double getVol():获得圆柱体的体积
void dispVol():将圆柱体的体积输出到屏幕
package java实验报告五; class Cylinder extends Circle{ private double height; //定义新属性height Cylinder(double r,double h){ super(r); this.setHeight(h); } public double getVol(){ //计算体积 double Vol=getArea()*getHeight(); return Vol; } public void dispVol(){ System.out.println("体积:"+getVol()); } public double getHeight(){ return height; } public void setHeight(double height) { this.height = height; } } public class CylinderTest1 { public static void main(String arg[]){ Cylinder cy=new Cylinder(1.00,2.00); cy.dispVol(); } }
3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
package java实验报告五; import java.util.Scanner; class Cylinder extends Circle{ private double height; //定义新属性height Cylinder(double r,double h){ super(r); this.setHeight(h); } public double getVol(){ //计算体积 double Vol=getArea()*getHeight(); return Vol; } public void dispVol(){ System.out.println("体积:"+getVol()); } public double getHeight(){ return height; } public void setHeight(double height) { this.height = height; } } public class CylinderTest1 { public static void main(String arg[]){ Scanner sc=new Scanner(System.in); double r=sc.nextDouble(); double h=sc.nextDouble(); Cylinder cy=new Cylinder(r,h); cy.dispVol(); } }
总结:我学到了类的继承,用extends关键字,变量的继承和覆盖,方法的继承,this访问本类,super访问父类,重载和覆盖的实现及区别,重载发生在一个类中,覆写发生在继承类中。