第六周课程总结&java实验报告四

第六周课程总结:

一、instanceof关键字

1.作用:在Java中可以使用instanceof关键字判断一个对象到底是哪个类的实例。

2.格式:对象 instanceof 类 -> 返回boolean类型

二、接口

1.概念:接口是Java中最重要的的概念之一,可以理解为一种特殊的类,里面全部都是由全局变量和公共变量的抽象方法所组成。

2.定义格式:

interface 接口名称{
        全局变量;
        抽象方法;
}

3.注意:在接口中的抽象方法必须定义成public访问权限,这个是绝对不可改变的,在很多Java程序中,经常看到编写接口方法的时候省略了public,那么就会有很多的读者认为它的访问权限是default,实际上这是错误的,不管写与不写接口中的方法永远是public

4.使用:与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。

5.实现接口格式:

class 子类 implements 接口A,接口B,...{
}

6.要求:一个子类同时实现了两个接口,在子类中就必须同时覆写完两个接口中的全部抽象方法。

三、抽象类与接口

1.一个子类可以同时继承抽象类和实现接口。

2.格式:

class 子类 extends 抽象类 implements 接口A,接口B,...{
}

3.使用限制:

3.1:允许一个抽象类实现多个接口。

3.2:一个接口是不允许继承抽象类的。

3.3:允许一个接口继承多个接口。

格式:

interface 子接口 extends 父接口A,父接口B,...{
}

实验报告四

实验的内容

根据下面的要求实现圆类Circle。

1.圆类Circle的成员变量:radius表示圆的半径。

2.圆类Circle的方法成员:

        Circle():构造方法,将半径置0
       Circle(double r):构造方法,创建Circle对象时将半径初始化为r
       double getRadius():获得圆的半径值
       double getPerimeter():获得圆的周长
       void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

源代码

package disizhou;
class Circle {
	private double radius;
	public void Circle() {
		this.radius=0;
	}
	public Circle(double r) {
		this.radius=r;
	}
	public void setRadius(double radius) {
		this.radius = radius;
	}
	public double getRadius() {
		return radius;
	}
	public double getPerimeter() {
		return 2*Math.PI*radius;
	}
	public void disp() {
		System.out.println("圆的半径:"+getRadius());
		System.out.println("圆的周长:"+getPerimeter());
		System.out.println("圆的面积:"+Math.PI*Math.pow(getRadius(), 2));
	}
	public static void main(String[] args) {
		Circle cir=new Circle(4);
		cir.disp();
	}
}

错误截图


改正:发现是构造函数返回类型不能写void,应该把void去掉就可以了。

运行截图

改正后截图

自我评价:这个题目并不是很难,只要细心做就能做出来,期间也看了一下书。

(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 disizhou;
class Cylinder extends Circle {
	private double height;
	public Cylinder(double r,double h) {
		super(r);
		this.height=h;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public double getVol() {
		return Math.PI*Math.pow(getRadius(), 2)*height;
	}
	public static void main(String[] args) {
		Cylinder cyl=new Cylinder(2,4);
		System.out.println("圆柱体的体积:"+cyl.getVol());
	}
}

运行截图:

自我评价:因为有了第一题的基础所以这个题目做起来还可以。

源代码

package disizhou;
import java.util.Scanner;
class Cylinder extends Circle {
	private double height;
	public Cylinder(double r,double h) {
		super(r);
		this.height=h;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public double getVol() {
		return Math.PI*Math.pow(getRadius(), 2)*height;
	}
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		double radius=sc.nextDouble();
		double heigth=sc.nextDouble();
		Cylinder cyl=new Cylinder(radius,heigth);
		System.out.println("圆柱体的体积:"+cyl.getVol());
	}
}

运行截图

自我评价:这个题目也就是上个题目加个输入就可以了,还是能够写出来的。

原文地址:https://www.cnblogs.com/lcbxhda/p/11632161.html