javaoop思维例子

javaoop思想例子运用oop思想做一个有关门禁系统java的封装属性对象只操作对象本身的属性和调用其它对象的

javaoop思想例子
运用oop思想做一个有关门禁系统

java的封装属性
对象只操作对象本身的属性和调用其它对象的方法
对象本身的属性不能直接访问,通过本身的调用方法来实现对属性的修改,达到了封装的效果

门禁系统工作原理
guest到达门前按下门铃
管理员监控门禁系统的门铃,监控门铃信号响铃状态时,判断是后开门,如果开门,将门禁系统的开门开门信号置为开启状态
门禁系统监控开门信号,如果开门信号为开启状态,门禁系统将门的属性置为开启,则开门

我会陆续将此项目做完,请大家多多关注


package org.controlSys.test;import java.util.Scanner;class Door{/** * 电子门开启d */public static final String OPEN = "电子门开启";/** * 电子门关闭 */public static final String CLOSE = "电子门关闭";}/***顾客类*/class Guest{/**按下门铃,将门禁系统类中的ring置为1*/public void pressRing(ControlSys controlSys){//不写controlSys.ring = 1,起到了封装的效果controlSys.setRing();}}/***门禁系统类*/class ControlSys{private Door door = new Door();private int ring = 0;  //响铃     0:安静   1:响铃private int openSign;  //开门信号  0:不开门  1:开门public void setRing(){this.ring = 1;}public int getRing(){return this.ring;}public void setopenSign(){this.openSign = 1;}public int getopenSign(){return this.openSign;}//监控开门信号,如果为1则开门public void work(){if(this.openSign == 1){System.out.println(door.OPEN);try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(door.CLOSE);}else{System.out.println("电子门没有打开");}}}/***管理员类*/class Admin{public void work(ControlSys controlSys){if(controlSys.getRing()==1){System.out.println("有访客访问,是否开门(Y/N)");Scanner input = new Scanner(System.in);String answer = input.next();if(answer.equalsIgnoreCase("y")){controlSys.setopenSign();}else{System.out.println("admin拒绝开门");}}}}/***测试类*/class  Test{public static void main(String[] args) {System.out.println("welcome to out zone");ControlSys controlSys = new ControlSys();Admin admin = new Admin();Guest guest = new Guest();guest.pressRing(controlSys);admin.work(controlSys);controlSys.work();}}