设计一个形状类(接口)Shape,方法:求周长和求面积


形状类(接口)的子类(实现类):

package cn.ds.baidu.demo11.zuoye2;

public interface Shape {
    public  void perimeter();//周长
    public  void area();//面积
}


    Rect(矩形)

package cn.ds.baidu.demo11.zuoye2;

import java.util.Scanner;

public class Rect implements Shape{
    Scanner scanner=new Scanner(System.in);
    int lon =scanner.nextInt();//长
    int width=scanner.nextInt();//宽
    int high=scanner.nextInt();//高

    @Override
    public void perimeter() {
        System.out.print("矩形的长:"+lon);
        System.out.print("矩形的宽:"+width);
        System.out.println("矩形的高:"+high);
        int perimeter=lon*2+width*2;
        System.out.println("矩形的周长为:"+perimeter);
    }

    @Override
    public void area() {
        double m=(lon+width)*high;
        double area=m/2;
        System.out.println("矩形的面积为:"+area);
    }
    //:矩形周长=(长+宽)×2=长×2+宽×2
    //(上边+下底)乘高/2。


}


    Circle(圆形)

package cn.ds.baidu.demo11.zuoye2;

import java.util.Scanner;

public class Circle implements Shape{
    double pai=3.14;
    Scanner sc=new Scanner(System.in);
    int perimeter=sc.nextInt();
    //圆面积=圆周率×半径×半径
    //圆的周长=直径×圆周率

    @Override
    public void perimeter() {
        System.out.println("请输入圆形的直径:"+perimeter);
        double perimeters=perimeter*pai;
        System.out.println("圆的周长为:"+perimeters);
    }

    @Override
    public void area() {
        double area=pai*perimeter;
        System.out.println("圆的面积为:"+area);
    }
}

Rect类的子类:
    Square(正方形)
    

package cn.ds.baidu.demo11.zuoye2;

import java.util.Scanner;

public class Square extends   Rect{
    //正方形的面积=边长×边长=a×a(其中a为正方形的边长)
    //周长=边长×4
    Scanner sc=new Scanner(System.in);
    public void Rect(){
        System.out.println("正方形的边长为:"+this.width);
        int perimeter=this.width*4;
        System.out.println("正方形的周长为:"+perimeter);
        int area=this.width*this.width;
        System.out.println("正方形的面积为:"+area);
    }
}

Test

package cn.ds.baidu.demo11.zuoye2;

public class Test {
    public static void main(String[] args) {
        System.out.println("-----求矩形,圆,正方形的周长和面积----");
        /*
         * 矩形
         * */
        System.out.println("------>>矩形<<------");
        System.out.println("请依次输入矩形长,宽,高");
        Rect rect=new Rect();
        rect.perimeter();
        rect.area();
        /*
        * 圆
        * */
        System.out.println("-----------------------------");
        System.out.println("------>>圆形<<-----");
        System.out.println("请输入圆的直径");
        Circle circle=new Circle();
        circle.perimeter();
        circle.area();
        /*
         * 正方形
         * */
        System.out.println("-----------------------------");
        System.out.println("----->>正方形<<------");
        System.out.println("请输入正方形的长,宽,高");
        Square square=new Square();
        square.Rect();
    }
}


不同的子类会有不同的计算周长和面积的方法
创建三个不同的形状对象,放在Shape类型的数组里,分别打印出每个对象的周长和面积
===========

j结果

-----求矩形,圆,正方形的周长和面积----
------>>矩形<<------
请依次输入矩形长,宽,高
1
2
3
矩形的长:1矩形的宽:2矩形的高:3
矩形的周长为:6
矩形的面积为:4.5
-----------------------------
------>>圆形<<-----
请输入圆的直径
2
请输入圆形的直径:2
圆的周长为:6.28
圆的面积为:6.28
-----------------------------
----->>正方形<<------
请输入正方形的长,宽,高
2
正方形的边长为:2
正方形的周长为:8
正方形的面积为:4


版权声明:本文为m0_70066856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。