package co.hp.zy.area; /** * 设计形状类(接口)Shape,方法:寻求周长和面积 * 形状类(接口)子类(实现类): * Rect(矩形) * Circle(圆形) * * Rect类的子类: * Square(正方形) * * 不同的子类会有不同的计算周长和面积的方法 * 创建三个不同的形状对象,放在Shape在类型数组中,每个对象的周长和面积分别打印 */ public interface Shape { public void perimeter(double bc1,double bc2); public void acreage(double pi,double bc2); }
package co.hp.zy.area; import java.sql.SQLOutput; import java.util.Scanner; //矩形 public class Rect implements Shape{ @Override //周长 public void perimeter(double bc1,double bc2) { //长加宽*2 double peri = (bc1 bc2)*2; System.out.println("周长为:" peri); } @Override //面积 public void acreage(double bc1,double bc2) { //长*宽 double acre = bc1*bc2; System.out.println("面积为:" acre); } }
package co.hp.zy.area; public class Circle implements Shape{ @Override public void perimeter(double bc1, double bc2) { //3.14r*r double peri = bc1*bc2*bc2; System.out.println("周长为:" peri); } @Override public void acreage(double bc1, double bc2) { //3.14r*2 double acre = bc1*bc2*2; System.out.println("面积为:" acre); } }
package co.hp.zy.area; public class Square extends Rect{ }
package co.hp.zy.area; import java.util.Scanner; public class ShapeTest { public static void main(String[] args) { Rect r = new Rect(); Circle c = new Circle(); Square s = new Square(); System.out.println("矩形,请输入要计算的矩形边长:"); double bc1 = new Scanner(System.in).nextDouble(); double bc2 = new Scanner(System.in).nextDouble(); r.perimeter(bc1,bc2); r.acreage(bc1,bc2); System.out.println("圆,请输入要计算的圆半径:"); double bj = new Scanner(System.in).nextDouble(); double pi = 3.14; c.perimeter(pi,bj); c.acreage(pi,bj); System.out.println("正方形,请输入要计算的正方形边长:"); double zbc1 = new Scanner(System.in).nextDouble(); double zbc2 = zbc1; s.perimeter(zbc1,zbc2); s.acreage(zbc1,zbc2); } }
运行结果
请输入要计算的矩形边长: 12 10.5 周长为:45.0 面积为:126.0 圆,请输入要计算的圆半径: 2.3 周长为:16.610599999999998 面积为:14.443999999999999 正方形,请输入要计算的正方形边长: 4 周长为:16.0 面积为:16.0