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():将圆的半径和圆的周长,圆的面积输出到屏幕
      

    实验源码:

    
    
    public class Circle {
        private double Radius;
        public double getRadius() {
            return Radius;
        }
        public void setRadius(double radius) {
            Radius = radius;
        }
    
        Circle(double r){
    
            Radius = r;
    
        }
        double getArea(double r){
    
            return Math.PI * r * r;
    
        }
        double getPerimeter(double r){
    
            return 2 * Math.PI * r;
    
        }
        public void disp( ){
            System.out.println("圆的半径:"+ this.Radius);
            System.out.println("圆的面积: " + this.getArea(Radius));
            System.out.println("圆的周长: " + this.getPerimeter(Radius));
        }
        public static void main(String[] args) {
            Circle c =new Circle(1.0);
            c.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类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

    实验源码:

    package com.company;
    
    import java.util.Scanner;
    
    class program {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            double r = sc.nextDouble();
            double h = sc.nextDouble();
    
            Cylinder a = new Cylinder(r,h);
            a.dispVol();
        }
    }
    
    public class Circle {
        protected double Radius;
        Circle() {
            this.Radius = 0;
        }
    
        Circle(double r) {
            this.Radius = r;
        }
    
        double getRadius() {
            return this.Radius;
        }
        double getPerimeter() {
            return 2 * Math.PI * this.Radius;
        }
        double getArea() {
            return Math.PI * this.Radius * this.Radius;
        }
    
        public void disp( ){
            System.out.println("圆的半径:" + this.Radius);
            System.out.println("圆的面积:" + getArea());
            System.out.println("圆的周长:" + getPerimeter());
        }
    }
    
    class Cylinder extends Circle {         // class 子类 extends 父类
        double height;
    
        Cylinder(double r,double h) {
            super.Radius =  r;
            this.height = h;
        }
    
        double getHeight() {
            return this.height;
        }
    
        double getVol() {       // 获取圆柱的体积
            return super.getArea() * this.height;
        }
    
        void dispVol() {
            System.out.println("圆柱体的体积:" + getVol());
        }
    }
    

    实验结果:

    内容总结:

    作业问题:

    第一题的个人想法:

    public class Main {
    
        public static void main(String[] args) {
            Circle circle = new Circle();
            Scanner sc = new Scanner(System.in);
            double radius =sc.nextDouble();
            System.out.println("圆的半径为:"+circle.getRadius);
            System.out.println("圆的面积为:"+circle.getArea(5));
            System.out.println("圆的周长为:"+circle.getPerimeter(5));
        }
      }
      class Circle{
        public String getRadius;
        public double radius;
        public double getRadius() {
            return radius;
        }
        public double getArea(double radius){
    
            return radius*radius*Math.PI;
    
        }
        public double getPerimeter(double radius){
    
            return 2*radius*Math.PI;
    
        }
    
    }
    

    截图:

    抽象类

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

    instanceof关键字

      1. instanceof关键字的作用:判断一个对象是否属于指定的类别。
      1. instanceof关键字的使用前提:判断的对象与指定的类别必须要存在继承或者实现的关系。
      1. instanceof关键字的使用格式:对象 instanceof 类别
      1. instanceof关键字的作用: 一般我们做强制类型转换之前都会使用该关键字先判断一次,然后再进行转换的。

    接口

    接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。

    接口与类相似点:
    • 一个接口可以有多个方法。
    • 接口文件保存在 .java 结尾的文件中,文件名使用接口名。
    • 接口的字节码文件保存在 .class 结尾的文件中。
    • 接口相应的字节码文件必须在与包名称相匹配的目录结构中。
    接口与类的区别:
    • 接口不能用于实例化对象。
    • 接口没有构造方法。
    • 接口中所有的方法必须是抽象方法。
    • 接口不能包含成员变量,除了 static 和 final 变量。
    • 接口不是被类继承了,而是要被类实现。
    • 接口支持多继承。
    抽象类和接口的区别
      1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
      1. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
      1. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
      1. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    接口的声明语法格式如下:
    [可见度] interface 接口名称 [extends 其他的接口名] {
            // 声明变量
            // 抽象方法
    }
    
  • 相关阅读:
    JAVA与编译语言及解释语言的关系
    Java虚拟机工作原理详解
    VMWare 网络连接模式(bridged、NAT、host-only)详解
    Ubuntu修改语言环境为英文
    Ubuntu安装和设置SSH服务
    Eclipse NDK 配置
    2018年长沙理工大学第十三届程序设计竞赛
    埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛
    算法训练 安慰奶牛
    算法训练 最短路
  • 原文地址:https://www.cnblogs.com/zsbhs/p/11632807.html
Copyright © 2011-2022 走看看