第六周课程总结&实验报告(四)
第六周&java实验报告四
一.实验目的
(1)掌握类的继承
在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例
接口要使用也必须通过子类,子类通过implements关键字实现接口
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
一个子类可以同时继承抽象类和实现接口
class 子类 extends 抽象类 implements 接口A,接口B.....{}
(3)接口和抽象的限制
·允许一个抽象类实现多个接口
一个接口是不允许继承抽象类的
允许一个接口继承多个接口
一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
二.实验的内容
(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类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
三.实验代码
public class Circle { private double radius; private double perimeter; public void Circle(){ this.radius=0; } public void Circle(double radius){ this.radius=radius; } public void setRadius(double radius){ this.radius=radius; } public double getRadius(){ return radius; } public void setPerimeter(){ this.perimeter=2*Math.PI*radius; } public double getPerimeter(){ return perimeter; } public void disp(){ System.out.println("半径:"+radius); System.out.println("周长:"+perimeter); System.out.println("面积:"+(Math.PI*Math.pow(radius,2))); } }
继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)//构造方法,创建Cylinder
//对象时将圆半径初始化为r,圆柱体高初始化为h。 double getHeight() //获得圆柱体的高 double getVol() //获得圆柱体的体积 void dispVol() //将圆柱体的体积输出到屏幕
3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
public class Cylinder extends Circle { private double height; private double vol; public void Cylinder(double radius,double height){ this.height=height; this.setRadius(radius); } public double getHeight(){ return height; } private void setHeight(double height){ this.height=height; } public double getVol(){ vol=(Math.PI*Math.pow(getRadius(),2)*height); return vol; } public void dispVol(){ System.out.println("体积:"+vol); } } import java.util.Scanner; public class Test { public static void main(String[] args){ System.out.print("请输入半径:"); Scanner r1=new Scanner(System.in); double r=r1.nextDouble(); System.out.print("请输入高:"); Scanner h1=new Scanner(System.in); double h=h1.nextDouble(); Cylinder cyl=new Cylinder(); cyl.Cylinder(r,h); cyl.getVol(); cyl.dispVol(); } }
结果:
总结
instanceof关键字接口 ,继承抽象类实现接口 以及实现接口接口和抽象类的使用限制