java实验报告中文版_Java实验报告四-Go语言中文社区

一、实验目的

(1)掌握类的继承方法;

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

二、实验内容

9282577088e6d6da0492a08f1d98d84b.png

1)实验代码

import java.util.Scanner;

public class Circle{

private static double radius; //声明变量

private double perimeter;

private double area;

public Circle(){ //构造半径为0

this.setRadius(0);

}

public Circle(double r) { //构造半径为r

this.setRadius(r);

}

public void setRadius(double radius) {

this.radius=radius;

}

public static double getRadius() {

return radius;

}

public void setPerimeter(double perimeter) {

this.perimeter=perimeter;

}

public double getPerimeter(){

return getRadius()*2*Math.PI;

}

public void setArea(double area) {

this.area=area;

}

public double getArea() {

return getRadius()*getRadius()*Math.PI;

}

public void disp() { //输出半径,周长,面积

System.out.println("圆的半径为:"+getRadius());

System.out.println("圆的周长为:"+getPerimeter());

System.out.println("圆的面积为:"+getArea());

}

static class Cylinder extends Circle{ //Cylinder继承Circle

private double height;

public Cylinder(double r,double h) { //半径,高初始化

this.setRadius(r);

this.setHeight(h);

}

private void setHeight(double height) {

this.height=height;

}

public double getHeight() { //获得高

return height;

}

public double getVol() { //获得体积

return getRadius()*getRadius()*Math.PI*getHeight();

}

public void dispVol() { //输出体积

System.out.println("圆柱体的体积:"+getVol());

}

public static void main(String[] args) {

Scanner s=new Scanner(System.in);

System.out.println("请输入半径:");

double r=s.nextInt(); //读取半径数入值

System.out.println("请输入高:");

double h=s.nextInt(); //读取高输入值

Cylinder s1=new Cylinder(r,h);

s1.disp(); //调用类中的输出

s1.dispVol();

}

}

}

2)实验结果截图

37439e459cd23b74f7d5658e171c5ccd.png

遇到的问题:在静态方法中调用了动态,导致结果出错。所以在子类继承父类中用了static函数,结果对了。

学到的知识:继承和覆盖。

super关键字

1).使用super可以访问父类中的方法和属性。

2).调用父类构造,必须放在子类构造方法的首行,因此与this不能同时出现。

final关键字

1).使用final声明的类不能有子类。

2).使用final声明的方法不能被子类所覆写。

3).使用final声明的变量即为常量,不可修改。

总结:

多态的特性:我觉得就是同一个方法根据调用对象的不同而产生多种结果。

这周作业不是很难,主要就是会运用子类调用父类这个知识点,而且有点粗心,竟然在静态构造方法中调用了动态,导致了编译出错,最后在网上查找到了解决办法,直接在构造方法中加入static函数,其中我还出现了一些小错误,括号的位置都打错了。总的来说,这周作业感觉一般,没什么好讲的,在书上就可以找到方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值