用接口,多态,继承,类计算三角形和矩形的周长和面积

定义接口规范

/**
 * @author vvv
 * @date 2013-8-10 上午08:56:48
 */
package com.duotai;

/**
 * 
 * 
 */
public interface Shape {
	public double area();
	public double longer();
}


/**
 * @author vvv
 * @date 2013-8-10 上午09:10:06
 */
package com.duotai;

/**
 * 
 * 
 */
public class Triangle implements Shape {
	double s1;
	double s2;
	double s3;

	// 初始化一个三角形对象,并赋予该三角形三边长
	public Triangle(double s1, double s2, double s3) {
		if (isTri(s1, s2, s3)) {
			this.s1 = s1;
			this.s2 = s2;
			this.s3 = s3;
		} else {
			System.out.println("输入的三边长" + s1 + "、" + s2 + "、" + s3
					+ "不能组成一个三角形,请重新输入三边长!");
		}
	}

	// 判断是否是个三角形
	public boolean isTri(double s1, double s2, double s3) {
		if (s1 + s2 < s3) {
			return false;
		}
		if (s1 + s3 < s2) {
			return false;
		}
		if (s2 + s3 < s1) {
			return false;
		}
		return true;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.duotai.Shape#area()
	 */
	@Override
	public double area() {
		double p = (s1 + s2 + s3) / 2;
		return Math.sqrt(p * (p - s1) * (p - s2) * (p - s3));
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.duotai.Shape#longer()
	 */
	@Override
	public double longer() {
		return s1 + s2 + s3;
	}

}



/**
 * @author vvv
 * @date 2013-8-10 上午09:12:06
 */
package com.duotai;

/**
 * 
 * 
 */
public class Director implements Shape {
	double s1;
	double s2;

	// 初始化一个长方形,并赋予该长方形两边长
	public Director(double s1, double s2) {
		this.s1 = s1;
		this.s2 = s2;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.duotai.Shape#area()
	 */
	@Override
	public double area() {
		// TODO Auto-generated method stub
		return s1 * s2;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.duotai.Shape#longer()
	 */
	@Override
	public double longer() {
		// TODO Auto-generated method stub
		return 2 * (s1 + s2);
	}
}



/**
 * @author vvv
 * @date 2013-8-10 上午09:13:30
 */
package com.duotai;

/**
 * 
 * 
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Shape triangle = new Triangle(3, 4, 8);// 新建一个三边长为3,4,5的三角形
		Shape tri = new Triangle(3, 4, 5);
		Shape director = new Director(10, 20);// 新建一个两边长为10,20的长方形
		System.out.println("三角形triangle的周长为:" + triangle.longer());
		System.out.println("三角形triangle的面积为:" + triangle.area());
		System.out.println("三角形tri的周长为:" + tri.longer());
		System.out.println("三角形tri的面积为:" + tri.area());
		System.out.println("该长方形的周长为:" + director.longer());
		System.out.println("该长方形的面积为:" + director.area());
	}

}




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个问题是关于计算图形周长面积的编程问题,我可以回答。这里我假设您已经了解了Java编程语言。 我们可以定义两个:Triangle(三角形)和Rectangle(矩形)。这两个继承自Shape(形状)。在Shape中,我们定义周长面积的抽象方法,这能够确保Triangle和Rectangle都必须实现这两个方法。 下面是代码: ```java abstract class Shape { public abstract double getArea(); public abstract double getPerimeter(); } class Triangle extends Shape { private double a; private double b; private double c; public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } @Override public double getArea() { double p = (a + b + c) / 2; return Math.sqrt(p * (p - a) * (p - b) * (p - c)); } @Override public double getPerimeter() { return a + b + c; } } class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } @Override public double getPerimeter() { return (width + height) * 2; } } ``` 这里我们定义了Shape作为基础,包含了计算周长面积的抽象方法。然后Triangle和Rectangle继承自Shape,并且实现它的抽象方法。 我们可以在main方法中创建Triangle和Rectangle对象,并分别调用它们的getArea和getPerimeter方法来计算它们的周长面积。 ```java public static void main(String[] args) { Triangle triangle = new Triangle(3, 4, 5); System.out.println("Triangle area: " + triangle.getArea()); System.out.println("Triangle perimeter: " + triangle.getPerimeter()); Rectangle rectangle = new Rectangle(4, 5); System.out.println("Rectangle area: " + rectangle.getArea()); System.out.println("Rectangle perimeter: " + rectangle.getPerimeter()); } ``` 输出结果如下: ``` Triangle area: 6.0 Triangle perimeter: 12.0 Rectangle area: 20.0 Rectangle perimeter: 18.0 ``` 以上就是用接口多态继承计算三角形矩形周长面积的方法。希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值