作业3

(1)设计一个名为Geometric的几何图形的抽象类,该类包括:

①两个名为color、filled属性分别表示图形颜色和是否填充。

②一个无参的构造方法。

③一个能创建指定颜色和填充值的构造方法。

④一个名为getArea()的抽象方法,返回图形的面积。

⑤一个名为getPerimeter()的抽象方法,返回图形的周长。

⑥一个名为toString()的方法,返回圆的字符串描述。

package cc;

abstract class Geometric {
private String color;
private boolean filled;
public Geometric(){
System.out.println();
}
public Geometric(String color,boolean filled){
this.color=color;
this.filled=filled;
}
public String getColor(){
return color;
}
public void setColor(String color){
this.color=color;
}
public boolean getFilled(){
return filled;
}
public void setFilled(boolean filled){
this.filled=filled;
}
abstract double getArea();
abstract double getPerimeter();
public String toString(){
return getColor()+getFilled();//因为color与filled是封闭的
}
}

 

 

 

(2)设计一个名为Circle的圆类来实现Geometric类,该类包括:

①一个名为radius的double属性表示半径。

②一个无参构造方法创建圆。

③一个能创建指定radius的圆的构造方法。

④radius的访问器方法。

⑤一个名为getArea()的方法,返回该圆的面积。

⑥一个名为getPerimeter()的方法,返回圆的周长。

⑦一个名为toString()的方法,返回该圆的字符串描述。

package cc;

class Circle extends Geometric{
private double radius;
public Circle(){
System.out.println("圆");
}
public Circle(String colour,boolean filled, double radius){
super(colour,filled);
this.radius=radius;
}
public double getRadius(){
return radius;
}
public void setRadius(double radius){
this.radius=radius;
}
public double getArea(){
return 3.14*radius*radius;
}
public double getPerimeter(){

return 2*3.14*radius;
}
public String toString(){//toString 重写
return "圆的颜色是"+getColor()+"填充"+getFilled()+"圆的面积"+getArea()+"圆的周长"+getPerimeter();
}
}

 

 

 

(3)设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:

①两个名为side1、side2的double属性表示矩形的两条边。

②一个无参构造方法创建矩形。

③一个能创建指定sidel和side2的矩形的构造方法。

④sidel和sidez的访问器方法。

⑤一个名为getArea()的方法,返回该矩形的面积。

⑥一个名为gelPerimeter()的方法,返回该矩形的周长。

⑦一个名为toString()的方法,返回该矩形的字符串描述。

package cc;

class Rectangle extends Geometric{
private double side1;
private double side2;
public Rectangle(){
System.out.println("矩形");
}
public Rectangle(double side1,double side2,String color,boolean filled){
super(color,filled);
this.side1=side1;
this.side2=side2;
}
//访问器
public double getSide1(){//封装性private自动形成getxxx与setxxx
return side1;
}
public void setSide1(double side1){
this.side1=side1;
}
public void setSide2(double side2){
this.side2=side2;
}
public double getArea(){
return side1*side2;
}
public double getPerimeter(){
return 2*side1+2*side2;
}
public String toString(){
return "矩形的颜色是"+getColor()+"填充"+getFilled()+"矩形的面积"+getArea()+"矩形的周长"+getPerimeter();
}
}

 

 

 

(4)设计一个名为Triangle的三角形类来实现Geometric类,该类包括:

①三个名为side1,side2和side3的double属性表示三角形的三条边。

②一个无参构造方法创建三角形。

③一个能创建指定side1,side2和side3的矩形的构造方法。

④sidel,side2和side3的访问器方法。

⑤一个名为getArea()的方法,返回该三角形的面积。

⑥一个名为getPerimeter()的方法,返回该三角形的周长。

⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。

⑧一个名为toString()的方法,返回三边较小的字符串描述。

 package cc;

class Triangle extends Geometric{
private double side1;
private double side2;
public double side3;
public Triangle(){
System.out.println("三角形");
}
public Triangle(double side1,double side2,double side3,String color,boolean filled){
super(color,filled);
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
//访问器
public double getSide1(){
return side1;
}
public void setSide1(double side1){
this.side1=side1;
}
public double getSide2(){
return side2;
}
public void setSide2(double side2){
this.side2=side2;
}
public double getSide3(){
return side3;
}
public void setSide3(double side3){
this.side3=side3;
}
public double getArea(){
double s =(side1+side2+side3)/2;
float S = (float) Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
return S;
}
public double getPerimeter(){
return this.side1+this.side2+this.side3;
}
public boolean isTriangle(double side1,double side2,double side3){
if (side1+side2>side3&&side3-side2<side1){
return true;
}else {
return false;
}
}
public String toString(){
return "三角形的颜色是"+getColor()+"填充"+getFilled()+"三角形的面积"+getArea()+"三角形的周长"+getPerimeter();
}

public String toString(double side1,double side2 ,double side3){
double min;
if (side1<=side2&&side1<=side3){
min=side1;
}else if (side2<=side1&&side2<=side3){
min=side2;
}else {
min=side3;
}
return "三边最小是"+min;
}

}

 

 

 

(5)编写测试类,测试图形的面积和周长。

package cc;
//测试类
public class vv {
public static void main(String[] args) {
Circle aa = new Circle("蓝色",true,2);
System.out.println(aa.toString());
Rectangle bb = new Rectangle(2,3,"黑色",false);
System.out.println(bb.toString());
Triangle cc = new Triangle(3,4,5,"蓝色",true);
System.out.println(cc.toString());
Triangle dd = new Triangle(3,4,5,"蓝色",true);
System.out.println(dd.toString(dd.getSide1(), dd.getSide2(), dd.getSide3()));

}
}

 

 

 

 

posted @ 2022-03-31 14:47  初高  阅读(129)  评论(0编辑  收藏  举报