Door.java
package com.handson.sys;
public class Door {
final String OPEN="门已开启";
final String CLASE="门已关闭";
private String state;
private boolean bellState;
public void open(){
this.setState(OPEN);
}
public void close(){
this.setState(CLASE);
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public boolean isBellState() {
return bellState;
}
public void setBellState(boolean bellState) {
this.bellState = bellState;
}
}
Guest.java
package com.handson.user;
import java.util.Scanner;
import com.handson.sys.Door;
public class Guest {
private String name;
public Guest(){}
public Guest(String name){
this.name=name;
}
public void pressRing(Door door) {
Scanner in = new Scanner(System.in);
System.out.print("访客:" + getName()+" 是否按响门铃(Y/N)?:");
String input = in.next();
if (input.equalsIgnoreCase("Y"))
door.setBellState(true);
else
door.setBellState(false);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Employee.java
package com.handson.user;
import java.util.Scanner;
public class Employee extends Guest {
private String id;
public Employee() {
}
public Employee(String name) {
super(name);
}
public String input() {
Scanner in = new Scanner(System.in);
System.out.print("请输入身份ID:");
setId(in.next());
return getId();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Admin.java
package com.handson.user;
import java.util.Scanner;
import com.handson.sys.Door;
public class Admin extends Employee {
public Admin(){}
public Admin(String name){
super(name);
}
public boolean work(Door door) {
Scanner in = new Scanner(System.in);
System.out.print("管理员:"+getName()+" 门铃想起,是否开启电子门(Y/N)?:");
String input = in.next();
if (input.equalsIgnoreCase("Y")) {
door.setBellState(false);
door.open();
return true;
} else
return false;
}
public boolean work(Door door, Guest guest) {
guest.pressRing(door);
if(door.isBellState())
{
door.open();
return true;
}
else
{
this.work(door);
return false;
}
}
}
DoorTest.java
package com.handson.test;
import com.handson.sys.Door;
import com.handson.user.Admin;
import com.handson.user.Employee;
import com.handson.user.Guest;
public class DoorTest {
public static void main(String[] args) {
Door door=new Door();
Guest liqiang=new Guest("李强");
Employee wangwei=new Employee("王伟");
Admin huanghua=new Admin("黄华");
liqiang.pressRing(door);
System.out.println("访客:" + liqiang.getName()+"按响门铃。");
if(huanghua.work(door)){
System.out.println(door.getState());
}
else{
System.out.println("拒绝开门。");
}
wangwei.input();
System.out.println("信息验证失败。");
wangwei.pressRing(door);
System.out.println("访客:" + liqiang.getName()+"按响门铃。");
if(huanghua.work(door)){
System.out.println(door.getState());
}
else{
System.out.println("拒绝开门。");
}
}
}