第六周&java实验报告四

实验目的
(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)的实验代码:


package hlha;

public class Circle1 {
	    private double radius;
	    
	    public double getArea() {                                     //获得圆的面积
	        double area;
	        area=getRadius()*Math.PI*getRadius();
	        return area;
	    }
	    public double getPerimeter() {                           //获得圆的周长
	        double perimeter;
	        perimeter=2*getRadius()*Math.PI;
	        return perimeter;
	    }
	    public double getRadius() {                               //获得圆的半径值
	        return radius;
	    }
	    public void setRadius(double radius) {
	        this.radius = radius;
	    }
	    public void Circle() {                    
	        setRadius(0);
	    }
	    public void Circle(double r) {                                
	        this.setRadius(r);
	    }
	    public void disp() {
	        System.out.println("此圆半径为:"+getRadius());
	                System.out.println("此圆周长为:"+getPerimeter());
	                System.out.println("此圆面积为:"+getArea());
	    }
	}
	


(2)(3)实验代码:


package hlha;
	import java.util.Scanner;
	public class Cylinder extends Circle1{
	    private double height;
	    public Cylinder(double r,double h){     
	        this.Circle(r);
	        this.setHeight(h);
	    }
	    public void setHeight(double height) {
	        this.height = height;
	    }
	    public double getHeight() {                                    //获得圆柱体的高
	                return height;
	        }
	    public double getVol() {                                         //获得圆柱体的体积
	        double vol;
	        vol=getArea()*getHeight();
	        return vol;
	        }
	    public void dispVol() {                                         //将圆柱体的体积输出到屏幕
	        System.out.println("此圆柱体的体积为:"+getVol());
	        }
	    
	    
	    public static void main(String args[]) {
	        Scanner sum=new Scanner(System.in);
	        System.out.println("请输入半径:");
	        double num=sum.nextDouble();                                //获取r的值
	        if(num<0) {
	            System.out.println("半径不能为负请重新运行程序");            //对r的值进行判断 数据过大先不考虑,但数不可能为负数但不会返回上一级,只能这样结束
	            return;
	        }
	        System.out.println("请输入高:");                               //获取h的值
	        double  h=sum.nextDouble();
	        if(h<0) {
	            System.out.println("高不能为负请重新运行程序。");                    
	            return;
	        }
	        Cylinder sum1=new Cylinder(num,h);                             
	        sum1.disp();
	        sum1.dispVol();
	        }
	}



运行结果:

总结:

1.instanceof关键字:在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例;对象instanceof类→返回boolean类型。
2.继承抽象类实现接口:一个子类可以同时继承抽象类和实现接口。
3.剩下还有强制转换时,先转换成父类,再强制转换。
其次因为国庆假期好像有点忘记了。需要再次牢记。

posted @ 2019-10-07 19:16  马大鹏  阅读(209)  评论(1编辑  收藏  举报