Java类与类之间的关系(has-a,use-a)
类与类之间的关系主要包括:use-a、has-a、is-a。
实现学生去机房使用电脑
关系
1,机房有电脑,电脑作为机房属性;(has-a)
2,学生使用电脑,电脑作为参数。(use-a)
3,电脑房欢迎学生使用电脑。(相当于use-a)
代码
/电脑类
public class Computer {
//电脑编号
private int number;
//电脑状态
private boolean aBoolean = false;//默认电脑关闭
//改变电脑状态
public void setaBoolean(boolean aBoolean){
this.aBoolean = aBoolean;
}
//获取电脑状态
public boolean getaBoolean(){
return this.aBoolean;
}
//获取电脑编号
public int getNumber(){
return number;
}
//有参构造,给电脑编号
public Computer(int number){
this.number = number;
}
//电脑被使用
public void play(){
System.out.println(this.number+"号电脑被使用。。。");
}
}
//机房类
public class ComputerRoom {
//机房里有电脑,电脑作为属性,实现has-a
private Computer[] computers = new Computer[10];
//创造机房时创造电脑
//无参构造方法
public ComputerRoom(){
for(int i = 0;i < 10;i++){
computers[i] = new Computer(i+1);
}
}
//欢迎学生使用电脑,use-a
public void welcome(Student student){
String name = student.getName();
System.out.println("欢迎"+name+"同学进入机房使用电脑");
student.use(computers);
}
}
import java.util.Random;
//学生类
public class Student {
//学生姓名作为属性
private String name;
//产生随机数决定学生使用完电脑是否关闭电脑
Random random = new Random();
private int a = random.nextInt(2);
//构造方法给属性赋值
public Student(String name){
this.name = name;
}
//获取学生姓名
public String getName(){
return this.name;
}
//学生使用电脑
public void use(Computer[] computer){
//检查所有电脑是否被使用
for(int i = 0;i < computer.length;i ++){
//电脑是否被使用
boolean aBoolean = computer[i].getaBoolean();
//如果电脑没被使用
if(!aBoolean){
//获取电脑编号
int number = computer[i].getNumber();
//打开这台电脑
computer[i].setaBoolean(true);
//显示这台电脑被打开
System.out.println(number + "号电脑被打开");
//学生使用这台电脑,电脑被使用
computer[i].play();
//如果随机数random为0关闭电脑
//如果随机数random为1不关闭电脑
if(this.a == 0){
computer[i].setaBoolean(false);
System.out.println(number + "号电脑被关闭");
}
else
computer[i].setaBoolean(true);
//终止检查
break;
}
}
}
}
public class Demo {
public static void main(String[] args){
ComputerRoom computerRoom = new ComputerRoom();
Student student = new Student("张三");
computerRoom.welcome(student);
Student student1 = new Student("李四");
computerRoom.welcome(student1);
Student student2 = new Student("王五");
computerRoom.welcome(student2);
Student student3 = new Student("钱六");
computerRoom.welcome(student3);
}
}
实现结果
欢迎张三同学进入机房使用电脑
1号电脑被打开
1号电脑被使用。。。
欢迎李四同学进入机房使用电脑
2号电脑被打开
2号电脑被使用。。。
2号电脑被关闭
欢迎王五同学进入机房使用电脑
2号电脑被打开
2号电脑被使用。。。
欢迎钱六同学进入机房使用电脑
3号电脑被打开
3号电脑被使用。。。
3号电脑被关闭