面向对象技术书面作业4
5.编写一个完整的JAVA Application程序,包含接口Shape,Circle类和Square类,Test类,具体要求如下:
1)接口Shape:包含方法
double getArea():求一个形状的面积
double getPerimeter():求一个形状的周长
2)Circle类:具有以下属性和方法:
属性radius:double类型,表示圆的半径。
方法:Circle(double r):构造函数
toString(): 输出圆的相关信息(半径等)。
3)Square类:具有以下属性和方法:
属性length,width:均是double类型,表示长方形的长和宽。
方法:Square(double x,double y):构造函数
toString(): 输出长方形的相关信息(长 宽等)
4)Test类作为主类完成测试功能:
输出圆的周长和面积。
输出长方形的周长和面积
产生随机数决定生成形状的类型,偶数就生成一个Circle对象,奇数就生成一个Square对象,将生成的对象赋值给接口句柄,计算并输出该形状的周长和面积。
import java.util.Random;
/*编写一个完整的JAVA Application程序,包含接口Shape,Circle类和Square类,Test类,具体要求如下:*/
/*Test类作为主类完成测试功能:
输出圆的周长和面积。
输出长方形的周长和面积
产生随机数决定生成形状的类型,偶数就生成一个Circle对象,
奇数就生成一个Square对象,将生成的对象赋值给接口句柄,
计算并输出该形状的周长和面积。*/
public class Test {
public static void main(String[] args) {
//半径
double radius = 4;
//长宽
double length =4;
double width = 4;
Random random =new Random();
if (random.nextInt() %2 == 0){
//是偶数
Shape circle =new Circle(radius);
System.out.println(circle);
}else{
//是奇数
Shape square= new Square(length,width);
System.out.println(square);
}
}
}
/*接口Shape:包含方法
double getArea():求一个形状的面积
double getPerimeter():求一个形状的周长
*/
public interface Shape {
//接口中的方法都是抽象的
//public abstract修饰符可以省略。
double getArea();
double getPerimeter();
}
package caopeng.javase.上机4;
/*Circle类:具有以下属性和方法:
属性radius:double类型,表示圆的半径。
方法:Circle(double r):构造函数
toString(): 输出圆的相关信息(半径等)。
*/
public class Circle implements Shape{
//半径属性
private double radius;
//构造方法
public Circle() {
}
public Circle(double radius) {
this.radius = radius;
}
//set和get方法
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
//π * r^2
return Math.PI*Math.pow(radius,2);
}
@Override
public double getPerimeter() {
return 2*Math.PI*radius;
}
@Override
public String toString() {
return "圆的半径是" + radius + ",周长是" + getPerimeter() + ",面积是" + getArea();
}
}
package caopeng.javase.上机4;
/*Square类:具有以下属性和方法:
属性length,width:均是double类型,表示长方形的长和宽。
方法:Square(double x,double y):构造函数
toString(): 输出长方形的相关信息(长 宽等)*/
public class Square implements Shape{
//属性
private double length;
private double width;
//构造方法
public Square() {
}
public Square(double length, double width) {
this.length = length;
this.width = width;
}
//set和get方法
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
@Override
public double getArea() {
return width*length;
}
@Override
public double getPerimeter() {
return (width + length) *2;
}
@Override
public String toString() {
return "矩形的长宽分别是" + length + "," + width + ",周长是" + getPerimeter() + ",面积是" + getArea();
}
}