类与类的关系——继承 包含 依赖的练习

Posted hsy-go

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类与类的关系——继承 包含 依赖的练习相关的知识,希望对你有一定的参考价值。

1、学生进入机房使用电脑

电脑有开机,关机,使用中的状技术图片

电脑类:

package com.stu_computer;

public class Computer {
    //属性
    private boolean isUsed = false;//若为false则处于关机状态;为true为开机状态
    private int number;
    //方法
    public boolean isUsed() {
        return isUsed;
    }
    public int getNumber() {
        return number;
    }
    //构造方法
    public Computer(){}
    public Computer(int number){
        this.number = number;
    }
    //被开机的方法
    public void beOn(Computer computer){
        System.out.println(this.number+"号电脑开机啦");
        computer.isUsed = true;
    }
    //被关机的方法
    public void beUsing(Computer computer){
        System.out.println(this.number+"号电脑正在使用中");
        }
    //被开机的方法
    public void beOff(Computer computer){
        System.out.println(this.number+"号电脑关机啦");
        computer.isUsed = false;
        }
}

机房类:

package com.stu_computer;

public class MachineRoom {
    //属性
    public Computer[] computer = new Computer[5];
    //方法
    public MachineRoom(){
        init();
    }
    public void init(){
        for(int i=0;i<computer.length;i++){
            computer[i] = new Computer(i+1);
        }
    }
    //欢迎学生进机房的方法
    public void welStudent(Student student){
        System.out.println("欢迎"+student.getName()+"进来机房");
        for(int i=0;i<computer.length;i++){//通过遍历找到未被开机的电脑  供学生使用
            if(!computer[i].isUsed()){
            student.useComputer(computer[i]);
            break;//找到之后即结束查找
            }
        }
    }
    
}
学生类:
package com.stu_computer; public class Student { //学生和电脑是依赖的关系 //属性 private String name; private int RP = (int)(Math.random()*10); //方法 public String getName() { return name; } //构造方法 public Student(){} public Student(String name){ this.name = name; } //学生使用电脑的方法 public void useComputer(Computer computer){ System.out.println(this.name+"使用"+computer.getNumber()+"号电脑啦"); computer.beOn(computer); computer.beUsing(computer); //判断学生的RP,根据RP情况选择是否执行关机操作 if(this.RP<5){ computer.beOff(computer); }else{ System.out.println(this.name+"人品太差了,没关电脑"); } } }
测试类:
package com.stu_computer;
public class Test { public static void main(String[] args) { //创建一个机房对象 MachineRoom machineRoom = new MachineRoom(); //创建学生对象 机房执行欢迎学生进来的方法 Student student1 = new Student("小花"); machineRoom.welStudent(student1); Student student2 = new Student("小ff"); machineRoom.welStudent(student2); Student student3 = new Student("小文件"); machineRoom.welStudent(student3); } }

2.测速器测量小汽车速度,警车追击小汽车

技术图片

package com.car_policecar;

public class Car {
    //属性
    private int speed;
    //方法
    //获取小汽车的速度
    public int getSpeed() {
        return speed;
    }
    //构造方法
    public Car(){}
    public Car(int speed){
        this.speed = speed;
    }
}
package com.car_policecar;

public class PoliceCar {
    //属性
    private int speed;
    //方法
    //获取警车的速度
    public int getSpeed() {
        return speed;
    }
    public PoliceCar(){}
    public PoliceCar(int speed){
        this.speed = speed;
    }
    //追击小汽车方法
    //比较警车和小汽车速度 判断是否能追上
    public void catchCar(Car car){
        if(this.speed>car.getSpeed()){
            int time = 100/(this.speed - car.getSpeed());
            System.out.println("经过"+time+"s追击成功");
        }else{
            System.out.println("追击失败");
        }
    }
    
}
package com.car_policecar;

public class VelometerMachine {
    private int standardTime;
    
    public int getStandardTime() {
        return standardTime;
    }

    //方法
    public VelometerMachine(){}
    public VelometerMachine(int time){
        this.standardTime = time;
    }
    public void measureSpeed(Car car){
        int carSpeed = car.getSpeed();
        int carTime = 100/carSpeed;
        if(this.standardTime>carTime){//小汽车超速了
            System.out.println("小汽车超速,马上进行追击");
            PoliceCar pc = new PoliceCar(25);
            pc.catchCar(car);
        }else{
            System.out.println("小汽车速度正常");
        }
        
    }
}
package com.car_policecar;

public class Test {
    public static void main(String[] args) {
        VelometerMachine vm = new VelometerMachine(5);
        Car car = new Car(26);
        vm.measureSpeed(car);
    }
}

 

以上是关于类与类的关系——继承 包含 依赖的练习的主要内容,如果未能解决你的问题,请参考以下文章

类与类之间的6种关系

Java 类与类的关联聚合继承实现关系

面向对象之类与类的关系

类与类的关系(横向关系)

类与类的继承关系

类与类之间的友元关系可以继承吗? 友元函数是类的成员函数吗?