Java实验报告
班级 1班 学号 20188390 姓名 宋志豪
实验四 类的继承
1.实验目的
(1)掌握类的继承方法;
(2)变量的继承和覆盖,方法的继承、重载和覆盖实现;
2.实验内容
实验代码
package 继承;
import java.io.InputStream;
import java.util.Scanner;
class Circle{
private double radius;
public Circle() {
this.radius=0;
}
public Circle(double radius) {
this.radius=radius;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return Math.PI*2*this.radius;
}
public double getArea() {
return Math.PI*Math.pow(this.radius, 2);
}
public void disp() {
System.out.println("圆的半径:"+this.radius+"
圆的周长:"+this.getPerimeter()+"
圆的面积:"+this.getArea());
}
}
public class Cylinder extends Circle{
private double height;
public Cylinder(double r,double h) {
super(r);
this.height=h;
}
public double getHeight() {
return height;
}
public double getVol() {
return getArea()*this.height;
}
public void dispVol() {
System.out.println(getVol());
}
public static void main(String[] args) {
Scanner input=new Scanner (System.in);
Cylinder cylinder=new Cylinder(input.nextDouble(),input.nextDouble());
cylinder.disp();
System.out.println(cylinder.getVol());
}
}
实验结果
没有在同时输出圆的周长,和圆柱的面积,只是输出了圆的体积:已经解决问题,忘记调用方法disp()了。
出现了一个问题:使用 Scanner input=new Scanner(System.in); 错误提示说 Scanner无法解析为类型
原因是没有导入这个类, 因为前面使用了import java.io.InputStream;这个类,所以一时疏忽忘记了。
实验心得
在写这个题的时候,发现它的基础算法与以前的长方形问题大同小异,难点在于继承这个新知识的使用,使用时非常的难以理解,要看着软件里的警告和问题提示一点一点改正,看不懂的知识还要上网搜索。
学习总结
老师上课的时候提到了两个思考题,上周第一节课是猫类和狗类的判断吧,记得不是很清楚;第二个就是说判断传进来的参数是否是猫的子类或者是猫的实例,我们寝室讨论的结果是使用if语句,用instanceof关键字来判断传进来的参数是否是猫的子类或者是猫的实例。
implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的所有方法的实现。
instanceof关键字用来确定对象所属的类。
接口:
接口的定义
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口;
当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现;
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口的作用
(1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
(2)通过接口可以指明多个类需要实现的方法。
(3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
注意的点:
类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
自己对学习的看法
上课的内容的跨度比较大,一节课学习的内容比较多,不提前进行预习是很难跟得上老师的进度。
以后可以在PTA上找出比较适合自己实力的题目去拓展自己,不过要等到我能熟练的使用我所学的知识,加油!!!