一. 实验目的
(1) 掌握类的继承
(2) 变量的继承和覆盖, 方法的继承, 重载和覆盖的实现;
二. 实验的内容
(1) 根据下面的要求实现圆类 Circle.
1. 圆类 Circle 的成员变量: radius 表示圆的半径.
2. 圆类 Circle 的方法成员:
Circle(): 构造方法, 将半径置 0
Circle(double r): 构造方法, 创建 Circle 对象时将半径初始化为 r
double getRadius(): 获得圆的半径值
double getPerimeter(): 获得圆的周长
void disp(): 将圆的半径和圆的周长, 圆的面积输出到屏幕
实验代码
package 圆;
- import java.util.*;
- class Circle
- {
- private double banjing;
- public Circle()
- {
- this.setRadius(0);
- }
- public Circle(double r)
- {
- this.setRadius(r);
- }
- public void setRadius(double r)
- {
- banjing = r;
- }
- public double getRadius()
- {
- return banjing;
- }
- public double getzhouchang()
- {
- return 2*Math.PI*banjing;
- }
- public double getmianji()
- {
- return Math.PI*banjing*banjing;
- }
- public void canshudisp() {
- System.out.print("圆的半径:"+banjing);
- System.out.print("圆的周长:"+2*Math.PI*banjing);
- System.out.println("圆的面积:"+Math.PI*banjing*banjing);
- }
- }
public class 圆 {
- private static Scanner x;
- public static void main(String[] args) {
- Circle yuan=new Circle();
- yuan.canshudisp();
- System.out.print("圆的半径:");
- x = new Scanner(System.in);
- double r=x.nextDouble();
- Circle yuan2=new Circle(r);
- yuan2.canshudisp();
- }
- }
实验结果
(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 圆的相关;
- import java.util.*;
- class Circle
- {
- private double banjing;
- public Circle()
- {
- this.setRadius(0);
- }
- public Circle(double r)
- {
- this.setRadius(r);
- }
- public void setRadius(double r)
- {
- banjing = r;
- }
- public double getRadius()
- {
- return banjing;
- }
- public double getzhouchang()
- {
- return 2*Math.PI*banjing;
- }
- public double getmianji()
- {
- return Math.PI*banjing*banjing;
- }
- public void canshudisp() {
- System.out.print("圆的半径:"+banjing);
- System.out.print("圆的周长:"+2*Math.PI*banjing);
- System.out.println("圆的面积:"+Math.PI*banjing*banjing);
- }
- }
- class Cylinder extends Circle{
- private double height;
- public Cylinder(double r,double h) {
- super(r);
- this.setHeight(h);
- }
- public void setHeight(double h) {
- height=h;
- }
- public double getHeight() {
- return height;
- }
- public double getVol() {
- return getmianji()*height;
- }
- public void disp() {
- System.out.println("圆柱体体积:"+getVol());
- }
- }
public class 圆的相关 {
- private static Scanner a;
- private static Scanner b;
- public static void main(String[] args) {
- System.out.print("圆柱体半径是:");
- a = new Scanner(System.in);
- double r=a.nextDouble();
- System.out.print("圆柱体的高为:");
- b = new Scanner(System.in);
- double h=b.nextDouble();
- Cylinder yuan3=new Cylinder(r,h);
- yuan3.disp();
- }
- }
实验结果
学习总结
1.super 关键字
1) 使用 super 可以访问父类中的方法和属性.
2) 调用父类构造, 必须放在子类构造方法的首行, 与 this 不能同时出现.
编程总结
了解了在同一个包中, 子类可以直接在另一个 class 文件中写, 而不需要把父类再写一遍. 在定义子类对象时, 若子类中有构造方法, 则直接调用构造方法. 国庆节没怎么进行预习学习还得努力
来源: http://www.bubuko.com/infodetail-3230103.html