总结&报告四1
实验目的:
(1)掌握类的继承方法;
(2)变量的继承和覆盖,方法的继示、重载和覆盖实现;
二、实验内容
(1)根据下面的要求实现圆类Circle.
①圆类Cirle的成员变量: radius 表示圆的半径。
②圆类Cirdle的方法成员:
Circle () :构造方法,将半径置0
Circle (doubler) :构造方法:
创建Circle对象时将半径初始化为r
double getRadius () :获得圆的半径值
double getPerimeter () :获得圆的周长
void disp O :将圆的半径、圆的周长和圆的面积输出到屏幕
(2)维承第(1)题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
①圆柱体类Cylinder的成员变量: height 表示圆柱体的高。
②圆柱体类Cylinder的成员方法:Cylinder (doubler, double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h
public class demo2 {
private double radius;
demo2(){
radius=0;//构造方法将半径置0
}
public demo2(double r) { //第七行和第十行有什么区别
radius=r;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius=radius;
}
public double getPerimeter() {
return 2*Math.PI*radius;
}
public double getArea() {
return Math.PI*Math.pow(radius,2);//在java里引入Π的一种方法
}
public static void main(String[] args) {
demo2 a=new demo2(1);
System.out.println("周长:"+a.getPerimeter());
System.out.println("面积:"+a.getArea());
System.out.println("半径:"+a.getRadius());
}
}
运行结果
在后面这个第二问中 我开始不知道我的代码错误在哪 于是出现了如下情况
在这个第33行代码以后 加不加运行结果都是一样的
后来问同学的时候发现是有两个主入口 所以输出的结果只有之前的那一个 后面那个则被忽略
public class demo2 {
private double radius;
public demo2(){
radius=0;//构造方法将半径置0
}
public demo2(double r) { //第七行和第十行有什么区别
radius=r;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius=radius;
}
public double getPerimeter() {
return 2*Math.PI*radius;
}
public double getArea() {
return Math.PI*Math.pow(radius,2);//在java里引入Π的一种方法,一句话要写两个Math
}
public static void main (String[] args){
demo2 a=new demo2(1);
System.out.println("周长:"+a.getPerimeter());
System.out.println("面积:"+a.getArea());
System.out.println("半径:"+a.getRadius());
}
}
class cylinder extends demo2{
private double height;
private double radius;
public cylinder(double r,double h){
this.radius=r; //这一行是不是也可以不写
this.height=h; //这是在整啥?
}
public double getHeight(){
return this.height;
}
public double getVol(){
return super.getArea()*height;
}
public static void main(String[] args){
cylinder b=new cylinder(1,2); //这里还要令一个方法
System.out.println("高:"+b.getHeight());
System.out.println("体积:"+b.getVol());
}
}
本周总结
因为我没有听太懂上课老师讲的 然后又要写这次的作业 所以我就先是看书然后再去做题 这次的题目比较简单 主要是一个继承的方法以及继承后扩展的方法
这两个主要讲的是在重载父类与子类关系时的一个易错点
接口类
定义:如果类的所有方法都没有实现,那么这个类就算是接口
抽象类:
定义:若方法只有方法名字,形参列表,没有方法体,那所在的类就被定义为抽象类。