4-4编程作业

来源:4-4 编程练习

rock221

2020-12-17 17:01:03

public class Car {

   // 属性:车的颜色color、车主姓名userName

private String color;

private String userName;


public Car() {


}


// 带参构造函数(参数为color和userName)

public Car(String color, String userName) {

this.setColor(color);

this.setUserName(userName);

}


// 通过封装实现对私有属性的get/set操作

public void setColor(String color) {

this.color = color;

}


public String getColor() {

return color;

}


public void setUserName(String userName) {

this.userName = userName;

}


public String getUserName() {

return userName;

}


// 创建无参无返回值得方法use(描述内容为:我是机动车!)

public void use() {

System.out.println("我是机动车!");

}


// 重写equals方法,比较两个对象是否相等(比较color,userName)

public boolean equals(Object obj) {

if (obj == null) {

return false;

}

Car one = (Car) obj;

if (one.color.equals(one.getColor()) && one.userName.equals(one.getUserName())) {

return true;

} else

return false;

}

}

public class Taxi extends Car{

    //私有属性:所属公司( company)

   // 私有属性:所属公司( company)

private String company;


public Taxi() {


}


// 调用父类的构造方法,完成属性赋值

public Taxi(String company) {

super("蓝色", "张小泉");

this.setCompany(company);


}


// 通过封装实现对私有属性的get/set操作

public void setCompany(String company) {

this.company = company;

}


public String getCompany() {

return company;

}


// 创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。

public final void ride() {

System.out.println(this.getUserName() + "出租车是所属于" + this.getCompany() + "公司的。");

}


// 重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一

@Override

public void use() {

System.out.println("出租车是提高市民生活质量的重要条件之一");

}


// 重写toString方法,输出的表现形式不同(输出color,userName)

public String toString() {

return "taxi的信息是:"+this.getUserName()+"拥有一辆"+this.getColor()+"的出租车";

}




}

public final class HomeCar extends Car{

   // 私有属性:载客数(num)

private int num;


public HomeCar() {


}


// 部分赋值,并调用父类有参构造

// public HomeCar(int num) {

// super("紫色","孙二娘");

// this.setNum(num);

// }

// 带参构造方法为所有属性赋值

public HomeCar(String color,String userName,int num) {

this.setColor(color);

this.setUserName(userName);

this.setNum(num);

}


// 通过封装实现对私有属性的get/set操作

public void setNum(int num) {

this.num = num;

}


public int getNum() {

return num;

}


// 创建无参无返回值的display方法,表现为:**拥有的**颜色的私家车,有**座位

public void display() {

System.out.println(this.getUserName() + "拥有的" + this.getColor() + "颜色的私家车,有" + this.getNum() + "座位");

}

// 重载display方法(带参数num),描述为:家用汽车大多有**个座位

public void display(int num) {

System.out.println("家用汽车大多有"+num+"个座位");

}


}

public class Test {

    public static void main(String[] args){ 

//实例化父类对象,并传入两组相同的属性值

Car one=new Car("黄色","张三");

Car two=new Car("黄色","张三");



//调用父类use方法

one.use();



//通过重写equals方法,比较两个对象是否相等

System.out.println("Car和Car的引用比较:"+one.equals(two));



System.out.println("==================================");

        //实例化子类Taxi对象,并传入属性值

Taxi three=new Taxi("长生");


//调用ride和use方法

three.ride();

three.use();


//输出重写toString后的taxi信息

System.out.println(three.toString());


System.out.println("==================================");

// 实例化子类HomeCar对象,并传入属性值

// HomeCar four=new HomeCar(7);

HomeCar four = new HomeCar("紫色", "孙二娘", 7);

//     four.setColor("紫色");

//     four.setUserName("孙二娘");


// 调用display方法及它的重载方法

four.display();

four.display(5);



}

}

打卡

写回答

1回答

好帮手慕小脸

2020-12-17

同学你好,已完成练习,很棒哦~ 继续加油!
0

0 学习 · 16556 问题

查看课程