• 5.14上机


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

     1 //父类
     2 
     3 package pro1;
     4 
     5 public class Vehicle {
     6      private  String brand;
     7      private String color;
     8      private double speed=0;
     9     
    10     public Vehicle() {
    11     
    12     }
    13 
    14     public Vehicle(String brand, String color, double speed) {
    15 
    16         this.brand = brand;
    17         this.color = color;
    18         this.speed = speed;
    19     }
    20 
    21     public String getBrand() {
    22         return brand;
    23     }
    24 
    25     public String getColor() {
    26         return color;
    27     }
    28 
    29     public void setColor(String color) {
    30         this.color = color;
    31     }
    32 
    33     public double getSpeed() {
    34         return speed;
    35     }
    36 
    37     public void setSpeed(double speed) {
    38         this.speed = speed;
    39     }
    40     public void run(){
    41         System.out.println("一辆"+color+"色的"+brand+"牌汽车以"+speed+"的速度奔驰");
    42     }
    43 
    44     @Override
    45     public String toString() {
    46         return "Vehicle [brand=" + brand + ", color=" + color + ", speed=" + speed + "]";
    47     }
    48     
    49 
    50     
    51 
    52 }
     1 //子类
     2 
     3 package pro2;
     4 
     5 public class Car extends Vehicle{
     6     int loader;
     7     
     8     public Car(String brand, String color, double spend, int loader) {
     9         super(brand, color, spend);
    10         this.loader = loader;
    11     }
    12 
    13     public int getLoader() {
    14         return loader;
    15     }
    16 
    17     public void setLoader(int loader) {
    18         this.loader = loader;
    19     }
    20     public void run(){
    21         System.out.println("这辆车可"+loader+"人");
    22     }
    23 
    24 }

    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方法。

     1 public class pro1 {
     2     public static void main(String[] args) {
     3         Rectangle r=new Rectangle("蓝",6,6);
     4         Circle c=new Circle("蓝",7);
     5         r.getAll();
     6         c.getAll();
     7     }
     8 }
     9 //父类(形状类)
    10 public abstract class Shape {
    11     double area;
    12     double per;
    13     String color;
    14 
    15     public Shape() {
    16     }
    17 
    18     public Shape(String color) {
    19         this.color = color;
    20     }
    21 
    22     public Shape(int area, int per, String color) {
    23         this.area = area;
    24         this.per = per;
    25         this.color = color;
    26     }
    27     public abstract double getArea();
    28     public abstract double getPer();
    29     public abstract void getAll();
    30 
    31     public String getColor() {
    32         return color;
    33     }
    34 }
    35 //子类(矩形类)
    36 public class Rectangle extends Shape{
    37     int width;
    38     int height;
    39 
    40     public Rectangle(String color, int width, int height) {
    41         super(color);
    42         this.width = width;
    43         this.height = height;
    44     }
    45 
    46     @Override
    47     public double getArea() {
    48          area=width*height;
    49         return area;
    50     }
    51 
    52     @Override
    53     public double getPer() {
    54         per=(width+height)*2;
    55         return per;
    56     }
    57 
    58     @Override
    59     public void getAll() {
    60         System.out.println("宽为"+width+"高为"+height+"面积为"+getArea()+"周长为"+getPer());
    61 
    62     }
    63 }
    64 
    65 子类(圆形类)
    66 public class Circle extends Shape {
    67     int radius;
    68 
    69     public Circle(String color, int radius) {
    70         super(color);
    71         this.radius = radius;
    72     }
    73 
    74     @Override
    75     public double getArea() {
    76     area=3.14*(radius*radius);
    77         return area;
    78     }
    79 
    80     @Override
    81     public double getPer() {
    82     per=2*3.14*radius;
    83         return per;
    84     }
    85 
    86     @Override
    87     public void getAll() {
    88         System.out.println("半径为"+radius+"面积为"+getArea()+"周长为"+getPer());
    89     }
    90 }
  • 相关阅读:
    求解:块级元素的宽度自适应问题
    list 小练习
    codevs1017乘积最大
    codevs1048石子归并
    luogu1387 最大正方形
    BZOJ1305: [CQOI2009]dance跳舞
    linux下分卷tar.bz文件的合并并解压缩
    ubuntu命令查补
    认识与学习BASH(中)
    认识与学习BASH
  • 原文地址:https://www.cnblogs.com/qq1123514689/p/12887950.html
Copyright © 2020-2023  润新知