一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
double getHeight():获得圆柱体的高
double getVol():获得圆柱体的体积
void dispVol():将圆柱体的体积输出到屏幕
3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
(1)
https://www.zuoyesou.com/question/gjxmdy6630709.html
这是我参考代码的链接
开始的时候进行调试一直报错后面发现是因为少了个
public void setRadius(double radius) {
this.radius = radius;
}
加上之后依然是报错情况
```c`
package zjj;
public class Circle {
private double radius;
public Circle(){
radius=0;
}
public Circle(double r){
radius=r;
}
public double getRadius(){
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter(){
return 2Math.PI radius;
}
}
```c
public class Test {
public static void main(String[] args) {
// 创建Circle对象
Circle c = new Circle(5);
// 获取圆周长
System.out.println(c.getPerimeter());
// 获取圆半径
System.out.print(c.getRadius());
}
}
最终得出以上代码
(2)
public static class Circle{//继承圆Circle类,派生圆柱体类
private double height;//圆柱体的高
public Cylinder(){//构造方法
super();
height = 0;
}
public Cylinder(double r,double h){//构造方法
super(r);
height = h;
}
public double getHeight(){//获得圆柱体的高
return height;
}
public double getVol(){//获得圆柱体的体积
return 3.1415*super.getRadius()*super.getRadius()*height;
}
public void disVol(){//将圆柱体的体积输出到屏幕
System.out.println("圆柱的体积为:"+this.getVol());
}
}
}
此题为第二部分
总结
instanceof关键字
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
instanceof关键字的作用是判断一个对象是否是一个具体类的实例,我们在重写equals方法中要先判断是否是同一对象,之后再判断一个对象是否是另一个的实例,如果是判断各个属性值以判断是否是同一对象,不是一定不是同一对象。
也是先判断是否为同一对象,利用instanceof关键字判断是否是String的实例(任何字符串都是String的实例),如不是对字符串中每个字符进行比较