• 第六周&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.剩下还有强制转换时,先转换成父类,再强制转换。
    其次因为国庆假期好像有点忘记了。需要再次牢记。

  • 相关阅读:
    java多线程执行时主线程的等待
    数据库锁机制
    数据库事务学习
    EF查询百万级数据的性能测试--多表连接复杂查询
    EF查询百万级数据的性能测试--单表查询
    一文看懂-Docker容器化
    一文看懂-Kafka消息队列
    一文看懂-ElasticSearch全文搜索引擎
    Linux系统(ubuntu)部署Asp.Net Core网站
    Linux系统学习(一)一Linux介绍
  • 原文地址:https://www.cnblogs.com/dapeng1234/p/11631636.html
Copyright © 2020-2023  润新知