zoukankan      html  css  js  c++  java
  • 第十一次作业

    package lianxi;
    /*1、(1)定义一个汽车类Vehicle,要求如下:(知识点:类的继承 方法的覆盖)
    (a)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型)。
    (b)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。
    (c)为属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。
    (d)定义一个一般方法run(),用打印语句描述汽车奔跑的功能
    定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。
    (2)定义一个Vehicle类的子类轿车类Car,要求如下:
    (a)轿车有自己的属性载人数loader(int 类型)。
    (b)提供该类初始化属性的构造方法。
    (c)重新定义run(),用打印语句描述轿车奔跑的功能。
    (d)定义测试类Test,在其main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车。*/
    public class Vehicle {
        String brand;
        String color;
        double speed=0;
        public Vehicle(String brand,String color,double speed){
            this.brand=brand;
            this.color=color;
            this.speed=speed;
        }
        public String getBrand() {
            return brand;
        }
        public void setBrand(String brand) {
            this.brand = brand;
        }
        public String getColor() {
            return color;
        }
        public void setColor(String color) {
            this.color = color;
        }
        public double getSpeed() {
            return speed;
        }
        public void setSpeed(double speed) {
            this.speed = speed;
        }
        public void run() {
            System.out.println("汽车在跑");
        } 
        
    }
    package lianxi;
    /*(2)定义一个Vehicle类的子类轿车类Car,要求如下:
    (a)轿车有自己的属性载人数loader(int 类型)。
    (b)提供该类初始化属性的构造方法。
    (c)重新定义run(),用打印语句描述轿车奔跑的功能。
    (d)定义测试类Test,在其main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车。*/
    public class Car extends Vehicle{
        int loader;
         public Car(String brand, String color, int loader) {
             super(brand, color, 40);
             this.loader = loader;
         }
    
         public void run() {
             System.out.println("汽车停止");
         }
         public static void main(String[] args) {
             Car b=new Car("Volvo","black",4);
             b.run();
         }
    }
    package lianxi;
    
    public class VehicleTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Vehicle v1=new Vehicle("benz","black",120);
            System.out.println("品牌为:"+v1.getBrand()+"的汽车,颜色为"+v1.getColor()+"正在以"+v1.getSpeed()+"的速度前行");
            v1.run();
            System.out.println("--------------");
            Car c1 = new Car("Volvo","black",4);
            System.out.println("品牌为"+c1.getBrand()+"的汽车,颜色为"+c1.getColor()+"载人数为"+c1.loader+"正在以"+c1.getSpeed()+"的速度前行");
            c1.run();
        }
    
    }

    package lianxi1;
    /*2、设计四个类,分别是:(知识点:抽象类及抽象方法)
    (1)Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。
    
     */
    public abstract class Shape {
        protected double area;
        protected double per;
        protected String color;
        public Shape() {
        }
    
        public Shape(String color) {
            this.color = color;
        }
         public abstract void getArea();
    
         public abstract void getPer();
    
         public abstract void showAll();
            
    }
    package lianxi1;
    /*(2)2个子类:
    1)Rectangle表示矩形类,增加两个属性,Width表示长度、height表示宽度,重写getPer、getArea和showAll三个方法,另外又增加一个构造方法(一个是默认的、一个是为高度、宽度、颜色赋值的)。
    */
    public class Rectangle extends Shape{
            double width;
            double height;
            public Rectangle() {
            }
            public Rectangle(String color, double width, double height) {
                super(color);
                this.width = width;
                this.height = height;
                this.color=color;
            }
            public void getPer() {
                per = (width+height)*2;
            }
            public void getArea() {
                area =(width*height);
            }
            public void showAll() {
                System.out.println("矩形面积为:" + area + ",周长为:" + per + ",颜色:" + color);
            }
    }
    package lianxi1;
    /*2)Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。*/
    public class Circle extends Shape{
        int radius;
    
        public Circle(int radius,String color) {
            super(color);
            this.radius = radius;
            this.color=color;
        }
    
        public void getPer() {
            per = radius*2*3.14;
        }
        public void getArea() {
            area =radius*radius*3.14;
        }
        public void showAll() {
            System.out.println("圆形面积为:" + area + ",周长为:" + per + ",颜色:" + color);
        }
        
    }
    package lianxi1;
    /*(3)一个测试类PolyDemo,在main方法中,声明创建每个子类的对象,并调用2个子类的showAll方法。*/
    public class Polydamo {
        public static void main(String[] args) {
            Shape r1= new Rectangle("蓝色",5.0,6.0);
            Shape c1 = new Circle(5,"白色");
            r1.getArea();
            r1.getPer();
            c1.getArea();
            c1.getPer();
            r1.showAll();
            c1.showAll();
        }
    }

  • 相关阅读:
    POJ 3114 Tarjan+Dijkstra
    278. First Bad Version
    209. Minimum Size Subarray Sum
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    710. Random Pick with Blacklist
    767. Reorganize String
    524. Longest Word in Dictionary through Deleting
    349. Intersection of Two Arrays
    350. Intersection of Two Arrays II
  • 原文地址:https://www.cnblogs.com/tianzhiyuan/p/12887987.html
Copyright © 2011-2022 走看看