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 block
e.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();
}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值