• java继承与多态-3个小题


    1、(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长

    (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。

    该类包含有成员变量:

    radius:public 修饰的double类型radius,表示圆的半径。

    x:private修饰的double型变量x,表示圆心的横坐标。

    y:protected修饰的double型变量y,表示圆心的纵坐标。

    包含的方法有:

    Circle(double radius) 有参构造方法。以形参表中的参数初始化半径,圆心为坐标原点。 double getRadius():获取半径为方法的返回值。void setCenter(double x, double y):利用形参表中的参数设置类Circle的圆心坐标。void setRadius(double radius):利用形参表中的参数设置类Circle的radius域。

    public interface ShapePara {
        int getArea();
        int getCircumference();
    }
    public class Circle implements ShapePara {
        public double radius;
        private double x;
        protected double y;
        Circle(double radius){
            this.radius=radius;
        }
        public double getRadius() {
            return radius;
        }
        public void setRadius(double radius) {
            this.radius = radius;
        }
        public double getX() {
            return x;
        }
        public void setX(double x) {
            this.x = x;
        }
        public double getY() {
            return y;
        }
        public void setY(double y) {
            this.y = y;
        }
    
        @Override
        public int getArea() {
            // TODO 自动生成的方法存根
            double area=Math.PI*Math.pow(radius, 2);
            return (int)area;
        }
    
        @Override
        public int getCircumference() {
            // TODO 自动生成的方法存根
            double ference=Math.PI*2*radius;
            return (int)ference;
        }
    }
    public class TestCircle {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Circle c=new Circle(3);
            System.out.println("半径为3的圆的面积是:"+c.getArea());
            System.out.println("半径为3的圆的周长是:"+c.getCircumference());
        }
    }

    2、定义图形类Shape,该类中有获得面积的方法getArea();定义长方形类Rect,该类是Shape的子类,类中有矩形长和宽的变量double a,double b,设置长和宽的方法setWidth()、setHeight(),使用getArea()求矩形面积

    public class Shape {
        public void getArea(){
            double area=0;
            System.out.println("面积是:"+area);
        }
    }
    public class Rect extends Shape {
        private double width;
        private double height;
        Rect(double a, double b){
            this.width=a;
            this.height=b;
        }
        public double getWidth() {
            return width;
        }
        public void setWidth(double width) {
            this.width = width;
        }
        public double getHeight() {
            return height;
        }
        public void setHeight(double height) {
            this.height = height;
        }
        public void getArea(){
            System.out.println("面积是:"+(width*height));
        }
    }

    3、编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount()。定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount()。定义Tiger类,是Animal类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount()。定义SouthEastTiger类,是Tiger类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount()。

    public class Animal {
        private String name;
        private int legs;
        private int count;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getLegs() {
            return legs;
        }
        public void setLegs(int legs) {
            this.legs = legs;
        }
        public int getCount() {
            return count;
        }
        public void setCount(int count) {
            this.count = count;
        }
    }
    public class Fish extends Animal{
        public int getFishCount() {
            setCount(10);
            return getCount();
        }
    }
    public class Tiger extends Animal{
        public int getTigerCount() {
            setCount(20);
            return getCount();
        }
    }
    public class SouthEastTiger extends Tiger {
        public int getTigerCount() {
            setCount(10);
            return getCount();
        }
    }
    public class Test {
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Fish f=new Fish();
            Tiger t=new Tiger();
            SouthEastTiger s=new SouthEastTiger();
            System.out.println("鱼有"+f.getFishCount()+"条");
            System.out.println("老虎有"+t.getTigerCount()+"只");
            System.out.println("东北虎有"+s.getTigerCount()+"只");
        }
    }

  • 相关阅读:
    修理牛棚 贪心 USACO
    零件加工 贪心 题解
    花店橱窗 动态规划 题解
    动态规划 摆花 题解
    NOIP2004普及组第3题 FBI树
    实况世界杯4小游戏链接
    poj2761(treap入门)
    最大连续子序列和(分治法)
    任意区间的最长连续递增子序列,最大连续子序列和
    lca转RMQ
  • 原文地址:https://www.cnblogs.com/jingzhenhua/p/5897003.html
Copyright © 2020-2023  润新知