zoukankan      html  css  js  c++  java
  • 第十一周上机

    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人的轿车。

    package book1;
    
    public class Vehicle {
        String brand;
        String color;
        double speed;
    
        public Vehicle() {
    
        }
    
        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("该汽车的品牌为:" + this.brand + "颜色为:" + this.color + "初始速度为" + this.speed + "  跑得很快");
        }
    
    }
    package book1;
    
    public class Car extends Vehicle {
        int loader;
    
        public Car() {
            super();
        }
    
        public Car(String brand, String color, double speed, int loader) {
            super(brand, color, speed);
            this.loader = loader;
        }
    
        @Override
        public void run() {
            System.out.println(
                    "该轿车的品牌为:" + this.brand + "颜色为:" + this.color + "初始速度为" + this.speed + "载人数为" + this.loader + "   跑的很稳");
        }
    
    }
    package book1;
    
    public class VehicleTest {
    
        public static void main(String[] args) {
            Vehicle a = new Vehicle();
            a.setBrand("benz");
            a.setColor("black");
            a.setSpeed(0);
            a.run();
    
        }
    
    }
    package book1;
    
    public class Test {
    
        public static void main(String[] args) {
            Car c = new Car();
            c.setBrand("Honda");
            c.setColor("red");
            c.setSpeed(0);
            c.loader = 2;
            c.run();
    
        }
    
    }



    2、设计四个类,分别是:(知识点:抽象类及抽象方法)
    (1)Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。
    (2)2个子类:
    1)Rectangle表示矩形类,增加两个属性,Width表示长度、height表示宽度,重写getPer、getArea和showAll三个方法,另外又增加一个构造方法(一个是默认的、一个是为高度、宽度、颜色赋值的)。
    2)Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。
     (3)一个测试类PolyDemo,在main方法中,声明创建每个子类的对象,并调用2个子类的showAll方法。

    package Task2;
    
    public abstract class Shape {
        private int area;
        private int per;
        private String color;
    
        public Shape() {
            super();
        }
    
        public Shape(String color) {
            super();
            this.color = color;
        }
    
        public abstract void getArea();
    
        public abstract void getPer();
    
        public abstract void showAll();
    
        public void getColor() {
            System.out.println("颜色为:" + this.color);
    
        }
    }
    package Task2;
    
    public class Rectangle extends Shape {
        private int Width;
        private int height;
    
        public Rectangle() {
    
        }
    
        public Rectangle(int width, int height, String color) {
            super(color);
            this.Width = width;
            this.height = height;
        }
    
        public void getArea() {
            System.out.println("矩形的面积为:" + this.Width * this.height);
    
        }
    
        public void getPer() {
            System.out.println("矩形的周长为:" + 2 * (this.Width + this.height));
    
        }
    
        public void showAll() {
            System.out.println("长为:" + this.height + "宽为:" + this.Width);
            this.getArea();
            this.getPer();
            getColor();
        }
    
    }
    package Task2;
    
    public class Circle extends Shape {
        private double radius;
    
        public Circle(double radius, String color) {
            super(color);
            this.radius = radius;
        }
    
        public void getArea() {
            System.out.println("圆的面积为:" + this.radius * this.radius * 3.14);
    
        }
    
        public void getPer() {
            System.out.println("圆的周长为:" + 2 * this.radius * 3.14);
    
        }
    
        public void showAll() {
            System.out.println("半径为:" + this.radius);
            this.getArea();
            this.getPer();
            getColor();
        }
    
    }
    package Task2;
    
    public class PolyDemo {
    
        public static void main(String[] args) {
            Shape f = new Rectangle(2, 4, "黄色");
            Shape y = new Circle(2, "蓝色");
    
            f.showAll();
            y.showAll();
        }
    
    }

  • 相关阅读:
    POJ 3630 Phone List/POJ 1056 【字典树】
    HDU 1074 Doing Homework【状态压缩DP】
    POJ 1077 Eight【八数码问题】
    状态压缩 POJ 1185 炮兵阵地【状态压缩DP】
    POJ 1806 Manhattan 2025
    POJ 3667 Hotel【经典的线段树】
    状态压缩 POJ 3254 Corn Fields【dp 状态压缩】
    ZOJ 3468 Dice War【PD求概率】
    POJ 2479 Maximum sum【求两个不重叠的连续子串的最大和】
    POJ 3735 Training little cats【矩阵的快速求幂】
  • 原文地址:https://www.cnblogs.com/wxyailjy/p/12887719.html
Copyright © 2011-2022 走看看