题目:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高输出其底面积和体积。
解析 创建三个类,矩形类Rectangle{} 长方体类Cuboid{} 运行程序的测试类Test{}
该题目方法很多,我写两种
题目非常简单,但是我们要拓宽的是解题的思路,一定要开放,条条大路通罗马
方法一
:
package com.blb.seatwork_1;
public class Rectangle {
private int longth;
private int width;
public int getLongth() {
return longth;
}
public void setLongth(int longth) {
this.longth = longth;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
int area(){
return longth*width;
}
}
这是矩形类,赋值长宽属性,和一个面积的返回方法
package com.blb.seatwork_1;
public class Cuboid extends Rectangle{
private int height;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
int volume(){
return area()*height;
}
}
这里长方体类,有一个属性,和一个方法,方法返回体积
package com.blb.seatwork_1;
/*
(1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高输出其底面积和体积。
*/
public class Test {
public static void main(String[] args) {
Cuboid c=new Cuboid();
c.setLongth(10);
c.setWidth(10);
c.setHeight(15);
System.out.println(c.area());
System.out.println(c.volume());
}
}
这是一个主函数,来实现题目的功能,方法一完毕
方法二:
同样的三个类,这个程序会简单一些,但是运用了一个多态的知识
package com.blb.seatwork;
public class Rectangle {
double longth;
double width;
public void area(double longth,double width){
double areas=longth*width; //面积的方法
System.out.println("面积为"+areas);
}
}
这个矩形类用的是常规的赋值,属性是从方法参数里面传入的
package com.blb.seatwork;
public class Cuboid extends Rectangle{
double height;
public void volume(double longth,double width,double height){
double volumes=longth*width*height;//体积的方法
System.out.println("体积为"+volumes);
}
}
这个长方体类,体积是三个参数传入
package com.blb.seatwork;
/*
* (1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高输出其底面积和体积。
*
*/
public class Test {
public static void main(String[] args) {
Rectangle r=new Cuboid();//这是运用了多态的内容,但是没有重写,所以也不算多态
r.area(10, 50);
((Cuboid)r).volume(10,50,30);//这是一个强转
}
}
这一步用了一个多态,写在程序里面,注意看