初学Java 有没有哪位帮忙解答一下? 5

 我来答
你是我的眼
2019-11-29 · 优秀毕业生
你是我的眼
优秀毕业生
采纳数:1 获赞数:0
2016-2017年度国家励志奖学金获得者

向TA提问 私信TA
展开全部

解答如下:

    (一)

            1.新建一个名为Shape的抽象类,然后定义属性color,两个抽象方法calPerimeter(),Type()。

public abstract class Shape {
    private String color;//属性一般访问类型私有。
    protected abstract double calPerimeter();//访问类型受保护,只能本类或子类进行访问
    protected abstract String Type();
    /**
     * 为color属性添加get/set方法
     * @return
     */
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
}

          2.新建一个名为Circle类继承Shape类,然后定义属性radious,重写父类方法calPerimeter(),Type()。

 public  class Circle extends Shape {
    private double radius;//属性私有化,在为其添加get/set
    @Override
    public double calPerimeter() {
        return Math.PI * 2 * radius;//计算周长2 * pI * r
    }
    @Override
    public String Type() {
        super.setColor("红色");//super指向父类,为其设置颜色
        return super.getColor()+"圆形";//
    }
    public double getRadius() {
        return radius;
    }
    public void setRadius(double radius) {
        this.radius = radius;
    }
}

        3.新建一个名为Triangle类继承Shape类,然后定义属性a、b、c,重写父类方法calPerimeter(),Type(),定义setSides(double a,double b,double c)
方法。

public class Triangle extends Shape {
    private double a;//假三边分别是 a,b,c,然后为其添加get/set方法。
    private double b;
    private double c;
    @Override
    public double calPerimeter() {
        return a + b + c;
    }
    @Override
    public String Type() {
        super.setColor("黄色");//super指向父类,为其设置颜色
        return super.getColor()+"三角形";
    }
    public boolean setSides(double a,double b,double c){
        if(a + b > c && a - b < c){//两边之和大于第三边,两边之差小于第三边则是三角形,给属性赋值。
            this.a = a;
            this.b = b;
            this.c = c;
            return true;
        }
        //否则都不是三角形
        return false;
    }
}

         4.写测试类TestShape,这里用的是Junit测试。

public class TestShape {
    @Test//测试
    public void m1(){
        Circle circle = new Circle();
        circle.setRadius(6);//假设半径为6;
        System.out.println(circle.calPerimeter());
        System.out.println(circle.Type());
    }
    @Test//测试
    public void m2(){
        Triangle triangle = new Triangle();
        boolean flag = triangle.setSides(5,8,10);
        if(flag){//如果为真,则是三角形
            System.out.println(triangle.calPerimeter());
            System.out.println(triangle.Type());
        }else{//否则不是三角形
            System.out.println("不是三角形");
        }
    }
}

        5. 测试m1运行结果

        6.测试m2运行结果

    (二)   

       1.新建一个名为Animal的抽象类,然后定义属性name,抽象方法enjoy()。

   public abstract class Animal {
        private String name;
        public Animal() {
        }
    protected abstract void enjoy();
    }

    2. 新建一个名为Cat类继承Animal类,定义属性eye,重写enjoy()。

  public class Cat extends Animal {
    private String eye;
    public String getEye() {
        return eye;
    }
    public Cat() {
    }
    public Cat(String eye) {
        this.eye = eye;
    }
    @Override
    protected void enjoy() {
        System.out.println("喵喵喵");
    }
    public void setEye(String eye) {
        this.eye = eye;
    }
}

        3. 新建一个名为Dog类继承Animal类,定义属性fur,重写enjoy()。

public class Dog extends Animal {
    private String fur;
    public String getFur() {
        return fur;
    }
    public Dog() {
    }
    public Dog(String fur) {
        this.fur = fur;
    }
    @Override
    protected void enjoy() {
        System.out.println("汪汪汪");
    }
    public void setFur(String fur) {
        this.fur = fur;
    }
}

    4.  新建一个名为Lady类,定义属性name,color,定义方法myPetenjoy()

public  class Lady {    
        private String name;    
        private String color;
        public Lady(String name,String color) {//有参构造        
            this.name = name;        
            this.color = color;
     }    public Lady(){//无参构造    };
     protected  void myPetenjoy(){
        Cat cat1 = new Cat("蓝色");
        Dog dog1 = new Dog("黑色");
        cat1.enjoy();//猫叫
        String eye = cat1.getEye();
        System.out.println("猫的眼睛颜色为:"+eye);
        dog1.enjoy();//狗叫
        String fur = dog1.getFur();
        System.out.println("狗的毛颜色为:"+fur);
    }
}

    5.写测试类TestShape,这里用的是Junit测试。

public class TestAnimal {
    @Test
    public void m1(){
        Animal cat = new Cat("蓝色");
        Animal dog = new Dog("黑色");
        Lady lady = new Lady();
        lady.myPetenjoy();
    }
}

6. 测试结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式