第六周&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)向下转型:子类对象 ← 父类对象;

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

原文地址:https://www.cnblogs.com/lll0719/p/11633297.html