zoukankan      html  css  js  c++  java
  • 第六周&java实验报告四

    一.实验目的

    (1)掌握类的继承

    (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;

    二.实验的内容

    (1)根据下面的要求实现圆类Circle。

    1.圆类Circle的成员变量:radius表示圆的半径。

    2.圆类Circle的方法成员:

           Circle():构造方法,将半径置0
           Circle(double r):构造方法,创建Circle对象时将半径初始化为r
           double getRadius():获得圆的半径值
           double getPerimeter():获得圆的周长
           void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
    

    实验代码:

    package work4;
    
    public class Circle {
    
    	private double radius;
    
    	public Circle (double r) {
    		radius=r;
    	}
    	public double getRadius() {
    		return radius;
    	}
    	public void setRadius(double radius) {
    		this.radius = radius;
    	}
    	public double getPerimeter() {
    		return 2*Math.PI*radius;
    	}
    	public double getArea() {
    		return Math.PI*Math.pow(radius,2);
    	}
    	public static void main(String[] args) {
    		Circle total=new Circle(16);
    		System.out.println("圆的半径为:"+total.radius);
    		System.out.println("圆的周长为:"+total.getPerimeter());
    		System.out.println("圆的面积为:"+total.getArea());
    	}
    }
    
    

    运行截图:

    (2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:

    1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。

    2.圆柱体类Cylinder的成员方法:

            Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
            double getHeight():获得圆柱体的高
            double getVol():获得圆柱体的体积
            void dispVol():将圆柱体的体积输出到屏幕
    

    实验代码:

    package work4;
    
    public class Cylinder extends Circle{
    
    	private double height;
    	public Cylinder(double height,double radius) {
    		super(radius);
    		this.setHeight(height);
    	}
    	public double getHeight() {
    		return height;
    	}
    	public void setHeight(double height) {
    		this.height = height;
    	}
    	public double getVol() {
    		return super.getArea()*height;
    	}
    	public static void main (String[] args) {
    		Cylinder total=new Cylinder(1.0,16.0);
    		System.out.println("圆柱的体积为:"+total.getVol());
    	}
    }
    
    

    运行截图:

    3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

    实验代码:

    package work4;
    import java.io.*;
    import java.util.*;
    public class Cylinder extends Circle{
    
    	private double height;
    	public Cylinder(double height,double radius) {
    		super(radius);
    		this.setHeight(height);
    	}
    	public double getHeight() {
    		return height;
    	}
    	public void setHeight(double height) {
    		this.height = height;
    	}
    	public double getVol() {
    		return super.getArea()*height;
    	}
    	public static void main (String[] args) {
    		Scanner sc=new Scanner(System.in);
    		int height=sc.nextInt();
    		int radius=sc.nextInt();
    		Cylinder total=new Cylinder(height,radius);
    
    		System.out.println("圆柱的体积为:"+total.getVol());
    	}
    }
    
    

    运行截图:

    学习总结:

    1、类的继承格式

    在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

    class 父类 {
    }
     
    class 子类 extends 父类 {
    }
    

    2、继承的特性

    1.子类拥有父类非 private 的属性、方法。
    2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
    3.子类可以用自己的方式实现父类的方法。
    

    3、包含一个抽象方法的类必须是抽象类;抽象类和抽象方法都要使用abstract关键字声明;抽象方法只需要声明而不需要实现;抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。

    抽象类的定义格式:

    abstract class抽象类名称{
        属性;
        访问权限返回值类型方法名称(参数){ //普通方法
            [return返回值];
    }
        访问权限abstract返回值类型方法名称(参数); //抽象方法
        //在抽象方法中是没有方法体的
    }
    

    4、对象的多态性

    对象向上转型: 父类 子类对象 = 子类实例;
    对象向下转型: 子类 子类对象 = (子类)父类实例;
    

    5、instanceof关键字 : 在Java中可以使用 instanceof 关键字判断一个对象到底是哪个类的实例

    
    对象  instanceof  类   ->  返回 boolean  类型 
    
    

    6、为抽象类与接口的实例化

    abstract class A{
        public abstract viod print();
    }
    class B extends A{
        public void print(){
            System.out.println("hello word!");
    }
    };
    public class AbstractCaseDemo01{
        public static void main (String[] args){
             A a=new B();
            a.print();
    }
    }
    
  • 相关阅读:
    京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家
    运维大规模ES集群的思考和实践
    潘建伟团队再登Nature:建成全球首个集成量子通信网,全长4600公里
    数智化浪潮之中,传统企业如何抓住转型机遇?
    “持证”就能上岗 京东绿色内推招聘通道开启
    IoT爆发前夕,企业架构要面对哪些变革?
    如何使用ClickHouse实现时序数据管理和挖掘?
    图灵测试已过时,AI 需要新基准测试;别了Flash,Adobe播放器正式停运
    送你一份迷你书,全面了解如何做好大促技术备战
    Django 动态修改库名
  • 原文地址:https://www.cnblogs.com/zzwwll/p/11630124.html
Copyright © 2011-2022 走看看