• 第六周&java实验报告四


    Java实验报告

    班级 计科二班          学号 20188430      姓名 詹洋

    完成时间 2019.10.07

    评分等级

    一.实验目的

    (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 test;
     2 import java.util.Scanner;
     3 class Circle{
     4     private double radius;//定义半径
     5     public double getRadius() {//取得Radius属性
     6         return radius;
     7     }
     8     public void setRadius(double radius) {//设置Radius属性
     9         this.radius = radius;
    10     }
    11     public Circle() {//声明第一个构造方法设置Radius为0
    12         setRadius(0);
    13     }
    14     public Circle(double r) {//声明第二个构造方法设置Radius为传递的参数值r
    15         setRadius(r);
    16     }
    17     public double getPerimeter() {//取得周长
    18         return 2*Math.PI*getRadius();
    19     }
    20     public void disp() {//输出
    21         System.out.println("圆的半径为:"+getRadius());
    22         System.out.println("圆的周长为:"+getPerimeter());
    23         System.out.println("面积为:"+Math.pow(getRadius(),2)*Math.PI);
    24     }
    25 }
    26 public class SHIYAN {
    27 
    28     public static void main(String[] args) {
    29         // TODO Auto-generated method stub
    30         Scanner sc=new Scanner(System.in);
    31         Circle pr=new Circle();
    32         pr.disp();
    33         System.out.println("请输入半径:");
    34         double r=sc.nextDouble();
    35         pr.setRadius(r);
    36         pr.disp();
    37     }
    38 }

    实验结果:

    实验源码2:

     1 package test;
     2 import java.util.Scanner;
     3 
     4 class Cylinder extends Circle {
     5     private double height;
     6     public double getHeight() {
     7         return height;
     8     }
     9 
    10     public void setHeight(double height) {
    11         this.height = height;
    12     }
    13 
    14     public Cylinder(double r,double h) {
    15         setRadius(r);
    16         setHeight(h);
    17     }
    18     public double getVol() {
    19         return Math.pow(getRadius(),2)*Math.PI*getHeight();
    20     }
    21     public void dispVol() {
    22         System.out.println("圆柱体的体积为:"+getVol());
    23     }
    24 }
    25 
    26 public class SHIYAN2 {
    27     public static void main(String[] args) {
    28         Scanner sc=new Scanner(System.in);
    29         System.out.println("请输入圆的半径:");
    30         double r=sc.nextDouble();
    31         System.out.println("请输入圆的高:");
    32         double h=sc.nextDouble();
    33         Cylinder pr=new Cylinder(r,h);
    34         pr.disp();
    35         pr.dispVol();
    36     }
    37 }

    实验结果:

     实验总结:

    实验总结:

    学习了子类和父类之间的关系运用,了解了更加深刻的基础知识,书写父类Circle并在子类中继承,生出Cylinder。

    并在加以运用,使得整体更加精细,对象的多态性:
    1.对象的多态性主要分为以下两种类型:
    (1)向上转型:父类对象 ← 子类对象;
    (2)向下转型:子类对象 ← 父类对象;

    了解到:子类不能直接访问父类中的私有成员,但是可以调用父类中的非私有方法。

  • 相关阅读:
    DOM解析和SAX解析对比
    SAX解析示例代码和原理
    xPath技术
    dom4j工具对XML写入修改删除操作实现
    Dom4j工具j解析XML原理和示例代码
    Servlet的多线程并发问题
    Servlet的自动加载
    servlet缺省路径
    线程安全问题出现 的根本原因和解决方案
    9.12測试(四)——測试笔
  • 原文地址:https://www.cnblogs.com/lll0719/p/11633297.html
Copyright © 2020-2023  润新知