寻求帮助,写一个Java小程序

设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用Java多态技术设计其子类Circ... 设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用Java多态技术设计其子类Circle(圆形)类,Rectangle(矩形)类和Triangle(三角形)类,并分别实现相应的求面积和求周长的方法.每个类都要覆盖toString方法.海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2 展开
 我来答
纯黑Dr
推荐于2016-09-25
知道答主
回答量:22
采纳率:0%
帮助的人:21万
展开全部
package shape;

//父类
abstract class Shape {
final static double PI = 3.1415926;
public abstract double getPerimeter();
public abstract double getArea();
}
//圆类
class Circle extends Shape {
float radius;

Circle(float radius) {
this.radius = radius;
}

public double getPerimeter() {
return 2 * PI * radius;
}
public double getArea() {
return PI * radius * radius;
}
public float getRadius() {
return radius;
}
public void setRadius(float radius) {
this.radius = radius;
}
@Override
public String toString() {
return "Circle [radius=" + radius + "]";
}

//矩形类

class Rectangle extends Shape {
float length;
float wide;

Rectangle (float length, float wide) {
this.length = length;
this.wide = wide;
}

public double getPerimeter() {
return 2 * length + 2 * wide;
}

public double getArea() {
return length * wide;
}

public float getLength() {
return length;
}
public void setLength(float length) {
this.length = length;
}
public float getWide() {
return wide;
}
public void setWide(float wide) {
this.wide = wide;
}
@Override
public String toString() {
return "Rectangle [length=" + length + ", wide=" + wide + "]";
}
}
//三角形

class Triangle extends Shape {
float side1;
float side2;
float side3;

Triangle (float side1, float side2, float side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public double getArea() {
double p = (side1 + side2 + side3) / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
public float getSide1() {
return side1;
}
public void setSide1(float side1) {
this.side1 = side1;
}
public float getSide2() {
return side2;
}
public void setSide2(float side2) {
this.side2 = side2;
}
public float getSide3() {
return side3;
}
public void setSide3(float side3) {
this.side3 = side3;
}
@Override
public String toString() {
return "Triangle [side1=" + side1 + ", side2=" + side2 + ", side3="
+ side3 + "]";
}
}
//测试类

public class TestShape {
public static void main(String[] args) {
Shape[] s = new Shape[4];
s[0] = new Rectangle(1, 2);
s[1] = new Rectangle(3, 4);
s[2] = new Circle(5);
s[3] = new Triangle(10, 11, 12);

Arrays.sort(s);
for(Shape x : s) {
System.out.println(x.getPerimeter());
}
}
}

希望采纳!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式