使用Java实现面向对象编程
使用Java实现面向对象编程
源码展示:
package cdjj.s2t075.com;
import java.util.Scanner;
public class Door {
/*
* Door为门类
* 它包括:开门和关门的操作
* 然而,因为要通过记录Person输入的信息,交由
* Computer计算机类进行处理,之后,再交由Door门类
* 进行处理所以Person要继承于Computer类,Computer类又要
* 继承于Door类
*/
private String status=CLOSE;//定义门为关闭状态
public static final String CLOSE="门已打开";//定义门打开的时候
public static final String OPEN="门已关闭";//定义开门关闭的时候
private String noise;//响铃
public String getNoise() {
return noise;
}
public void setNoise(String noise) {
this.noise = noise;
}
public Door(){
/*
* 定义一个无参的构造函数
*/
}
public Door(String noise){
/*
* 定义一个带参数的构造函数
*/
this.noise=noise;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public void Do(){
System.out.println("这个门是一个全自动的哦...");
}
}
package cdjj.s2t075.com; public class AddEmp extends Admin {
/*
* DeleteEmp为增加内部人员信息
* 可实现增加内部人员操作
* 它继承于Admin高级用户类
*/
public void addemp() throws InterruptedException{
System.out.println("正在增加信息中...");
java.lang.Thread.sleep(5000);
System.out.println("此方法实现增加员工信息");
}
}
AddEmp
package cdjj.s2t075.com; public class Admin {
/*
*Admin为高级用户,他可以实现开门的动作(无限制的)
*而且,他还可以实现对内部人员的增、删、改的操作
*所以,其拥有很高的权限
*/
private String update;//修改信息操作
private String delete;//删除信息操作
private String add;//增加信息操作
private String adminOpen;//高级用户实现开门的操作
public String getUpdate() {
return update;
}
public void setUpdate(String update) {
this.update = update;
}
public String getDelete() {
return delete;
}
public void setDelete(String delete) {
this.delete = delete;
}
public String getAdd() {
return add;
}
public void setAdd(String add) {
this.add = add;
}
public String getAdminOpen() {
return adminOpen;
}
public void setAdminOpen(String adminOpen) {
this.adminOpen = adminOpen;
}
public Admin(){
/*
* 定义一个无参的构造函数
*/
}
public Admin(String update,String delete,String add,String AdminOpen){
/*
* 定义一个带参数的构造函数
*/
this.update=update;
this.delete=delete;
this.add=add;
this.adminOpen=AdminOpen;
}
public void Do(){
System.out.println("这个为高级用户,可进行特殊的操作");
}
}
Admin
package cdjj.s2t075.com; public class AdminOpenDoor extends Admin {
/*
* AdminOpenDoor为高级用户
* 可实现开门操作(无限制)
* 它继承于Admin高级用户类
*/
public void adminOpen() throws InterruptedException{
/*
* 高级用户实现开门的方法
*/
System.out.println("管理员,正在开门...");
java.lang.Thread.sleep(5000);
System.out.println("此时,门已经打开...");
}
}
AdminOpenDoor
package cdjj.s2t075.com; public class CloseDoor extends Door {
/*
* CloseDoor类为关门的操作
* 它继承与Door门类
*/
public void close() throws InterruptedException{
/*
* 实现关门的方法
*/
if(super.CLOSE.equals("门已打开")){
System.out.println("门的状态为...");
java.lang.Thread.sleep(5000);
System.out.println("此时门为关闭状态...");
super.setStatus("门已关闭");
}
} }
CloseDoor
package cdjj.s2t075.com;
import java.util.Scanner;
public class Computer extends Door {
/*
* Computer为计算机类
* 它可以实现获得数据、处理数据、返回数据、保存数据
* 并且,记录历史数据信息的操作
* 然而,因为要通过记录Person输入的信息,交由
* Computer计算机类进行处理,之后,再交由Door门类
* 进行处理所以Person要继承于Computer类,Computer类又要
* 继承于Door类
*/
public void Do(){
Scanner scan=new Scanner(System.in);
System.out.println("请选择你的操作【温馨提示:1保存信息 2删除信息 3处理信息 4获得信息】");
int temp1=scan.nextInt();
while(temp1>4 ||temp1<1){
if(temp1==1){
SaveInfo save=new SaveInfo();
save.saveInfo();
}
else if(temp1==2){
DeleteEmp del=new DeleteEmp();
try {
del.delete();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if(temp1==3){
GainInfo grain=new GainInfo();
grain.Gain();
}
else if(temp1==4){
UpdateEmp up=new UpdateEmp();
up.updateEmp();
}
}
System.out.println("是否退出此操作?【温馨提示:输入数字大于4或小于1即退出,否则,不成立】");
temp1=scan.nextInt();
} private String save;//计算机的保存信息操作
private String del;//计算机的删除信息操作
private String treat;//计算机的处理信息操作
private String giveInfo;//计算机的获得信息操作
public String getSave() {
return save;
}
public void setSave(String save) {
this.save = save;
}
public String getDel() {
return del;
}
public void setDel(String del) {
this.del = del;
}
public String getTreat() {
return treat;
}
public void setTreat(String treat) {
this.treat = treat;
}
public String getGiveInfo() {
return giveInfo;
}
public void setGiveInfo(String giveInfo) {
this.giveInfo = giveInfo;
}
public Computer(){
/*
* 定义一个无参数的构造函数
*/
}
public Computer(String save,String del,String treat,String giveInfo){
/*
* 定义一个带参的构造函数
*/
this.save=save;
this.del=del;
this.treat=treat;
this.giveInfo=giveInfo;
} }
Computer
package cdjj.s2t075.com; public class DeleteEmp extends Admin{
/*
* DeleteEmp为删除内部人员信息
* 可实现删除内部人员操作
* 它继承于Admin高级用户类
*/
public void delete() throws InterruptedException{
System.out.println("正在删除信息中...");
java.lang.Thread.sleep(5000);
System.out.println("此方法实现删除员工信息操作");
}
}
DeleteEmp
package cdjj.s2t075.com; public class DoorFinger extends Person {
/*
* DoorFinger类为指纹验证
* 它要继承于Person人类
*/
public void Finger() throws InterruptedException{
/*
* 指纹验证信息
*/
if(super.temp.length()==1){//指纹验证信息判断
System.out.println("指纹验证中,请稍后...");
java.lang.Thread.sleep(5000);
System.out.println("指纹验证通过...");
}
}
}
DoorFinger
package cdjj.s2t075.com; public class DoorPwd extends Person {
/*
* DoorPwd类为录入密码
* 它要继承于Person人类
*/
public void Pwd() throws InterruptedException{
/*
* 密码验证信息
*/
if(super.temp=="123456"){//高级用户密码判断
System.out.println("密码中,请稍后...");
java.lang.Thread.sleep(5000);
System.out.println("密码验证已通过..."); // }
// else if(super.temp==){//一般用户判断
}
}
}
DoorPwd
package cdjj.s2t075.com; public class DoorRing extends Person {
/*
* DoorRing类为按门铃
* 它要继承于Person人类
*/ public void input() throws InterruptedException{
/*
*输入信息
*/
if(super.temp==""){//呼叫信息判断
System.out.println("门铃响了:叮咚,叮咚...");
java.lang.Thread.sleep(5000);
System.out.println("呼叫信息已发出...");
}
} }
DoorRing
package cdjj.s2t075.com;
import java.awt.Component;
import java.util.*;
import javax.swing.JOptionPane;
public class DorrTest { /**
* 门禁系统测试类
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * *");
System.out.println("\t\t\t门禁系统");
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * *");
System.out.println("是否想进入该系统?【温馨提示 y 想进入 n 不想进入】");
String answer=input.next();
while(answer.equals("y")){
System.out.println("请输入你想了解某个信息【爱心提示:Person人类 Door门类 Admin高级用户类 Computer计算机类】");
String answer1=input.next();
if(answer1.equals("Person")){
Person person=new Person();
person.pressRing();
person.Do(); System.out.println("是否想细致的了解:Person人类、Door门类、Admin高级用户类、Computer计算机类?【温馨提示 y 想进入 n 不想进入】");
String answer2=input.next();
while(answer2.equals("y")){
System.out.println("请选择你要了解的项:DoorRing响铃类、DoorPwd密码类、DoorFinger指纹类?");
String a1=input.next();
if(a1.equals("DoorRing")){
DoorRing doorring=new DoorRing();
doorring.Do();
doorring.pressRing();
doorring.input();
}
else if(a1.equals("DoorPwd")){
DoorPwd doorPwd=new DoorPwd();
doorPwd.Do();
doorPwd.pressRing();
doorPwd.Pwd(); }
else if(a1.equals("DoorFinger")){
DoorFinger finger=new DoorFinger();
finger.Do();
finger.Finger();
finger.pressRing();
}
}
System.out.println("是否想退出此操作?【温馨提示 y 不想退出 n 想退出】");
answer2=input.next();//温馨提示用户 }
else if(answer1.equals("Door")){
Door door=new Door();
door.Do();
System.out.println("是否想细致的了解:Person人类、Door门类、Admin高级用户类、Computer计算机类?【温馨提示 y 想进入 n 不想进入】");
String answer3=input.next();
while(answer3.equals("y")){
System.out.println("请选择你要了解的项:CloseDoor关门类、OpenDoor开门类?【温馨提示:y是 n否】");
String a3=input.next();
while(a3.equals("y")){
if(a3.equals("CloseDoor")){
CloseDoor closedoor=new CloseDoor();
closedoor.Do();
closedoor.close();
}
else if(a3.equals("OpenDoor")){
OpenDoor opendoor=new OpenDoor();
opendoor.Do();
opendoor.open();
}
}
System.out.println("是否想退出此操作?【温馨提示:y是 n否】");
a3=input.next();
}
System.out.println("是否想退出此操作?【温馨提示 y 不想退出 n 想退出】");
answer3=input.next();//温馨提示用户 }
else if(answer1.equals("Computer")){
Computer computer=new Computer();
computer.Do();
System.out.println("是否想细致的了解:Person人类、Door门类、Admin高级用户类、Computer计算机类?【温馨提示 y 想进入 n 不想进入】");
String answer4=input.next();
while(answer4.equals("y")){
System.out.println("请选择你要了解的项:Person人类、Door门类、Admin高级用户类、Computer计算机类?");
String a4=input.next();
if(a4.equals("ReturnInfo")){
ReturnInfo returninfo=new ReturnInfo();
returninfo.Do();
returninfo.returnInfo();
}
else if(a4.equals("SaveInfo")){
SaveInfo save=new SaveInfo();
save.Do();
save.saveInfo();
}
else if(a4.equals("GainInfo")){
GainInfo grain=new GainInfo();
grain.Do();
grain.Gain();
}
}
System.out.println("是否想退出此操作?【温馨提示 y 不想退出 n 想退出】");
answer4=input.next();//温馨提示用户 }
else if(answer1.equals("Admin")){
Admin admin=new Admin();
admin.Do();
System.out.println("是否想细致的了解:Person人类、Door门类、Admin高级用户类、Computer计算机类?【温馨提示 y 想进入 n 不想进入】");
String answer5=input.next();
while(answer5.equals("y")){
System.out.println("请选择你要了解的项:AdminOpenDoor高级管理员类、AddEmp增加内部员工类、DeleteEmp删除内部员工类、UpdateEmp更新内部员工类?");
String a5=input.next();
if(a5.equals("AdminOpenDoor")){
AdminOpenDoor add=new AdminOpenDoor();
add.Do();
add.adminOpen();
}
else if(a5.equals("AddEmp")){
AddEmp emp=new AddEmp();
emp.Do();
emp.addemp();
}
else if(a5.equals("DeleteEmp")){
DeleteEmp delete=new DeleteEmp();
delete.Do();
delete.delete();
}
else if(a5.equals("UpdateEmp")){
UpdateEmp update=new UpdateEmp();
update.Do();
update.updateEmp();
}
}
System.out.println("是否想退出此操作?【温馨提示 y 不想退出 n 想退出】");
answer5=input.next();//温馨提示用户 }
}
System.out.println("是否想退出此系统?【温馨提示 y 不想退出 n 想退出】");
answer=input.next();//温馨提示用户
System.out.println("门禁系统结束!");
} }
DorrTest
package cdjj.s2t075.com;
import java.util.*;
public class GainInfo extends Computer {
/*
* GainInfo为获得信息类
* 它继承于Computer类
*/
Scanner i=new Scanner(System.in);
public void Gain(){
System.out.println("你是否想获得计算机的某些信息?【温馨提示:y是 n否】");
String n=i.next();
while(i.equals("y")){
Computer c=new Computer();
c.getGiveInfo();
c.getDel();
}
System.out.println("你是否想继续获得某些信息【温馨提示:y是 n否】");
String n1=i.next();
}
}
GainInfo
package cdjj.s2t075.com; public class OpenDoor extends Door{
/*
* OpenDoor类为开门的操作
* 它继承与Door门类
*/
public void open() throws InterruptedException{
/*
* 实现开门的方法
*/
if(super.CLOSE.equals("门已关闭")){
super.setStatus("门已打开");
System.out.println("门的状态为...");
java.lang.Thread.sleep(5000);
System.out.println("此时门为打开状态...");
} }
}
OpenDoor
package cdjj.s2t075.com; import java.util.Scanner; public class Person extends Computer{
/*
* Person为人类、包括普通人:如果要进入,按门铃
* 内部人员:录入密码、进行密码验证,按指纹、进行DNA验证
* 因此,Person保存这次操作
* 然而,因为要通过记录Person输入的信息,交由
* Computer计算机类进行处理,之后,再交由Door门类
* 进行处理所以Person要继承于Computer类,Computer类又要
* 继承于Door类
*/
Scanner scanner=new Scanner(System.in);
String temp=scanner.next();
private String name;//姓名
private String sex;//性别
private int age;//年龄
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void pressRing(){
System.out.println("我是来我叔叔家的,请开一下们好吗?");
}
public Person(){
/*
* 定义一个无参的构造函数
*/
}
public Person(String name,String sex,int age){
/*
* 定义一个带参数的构造函数
*/
this.name=name;
this.sex=sex;
this.age=age;
} }
Person
package cdjj.s2t075.com;
import java.util.Scanner;
public class ReturnInfo extends Computer {
/*
* ReturnInfo为返回信息类
* 它继承于Computer类
*/
Scanner input=new Scanner(System.in);
String[] ComputerInfo =new String[200];//对计算机所以信息进行操作
public void returnInfo(){
/*
* 返回内部人员信息方法
*/
System.out.println("确认要获得此数组列表里面的信息吗?【温馨提示:y是 n否】");
String n=input.next();
while(n.equals("y")){
System.out.println("现在的数组元素包含:"+ComputerInfo); }
System.out.println("你是否要继续访问?【温馨提示 y是 n否】");
String n1=input.next(); }
}
ReturnInfo
package cdjj.s2t075.com;
import java.util.Scanner;
public class SaveInfo extends Computer {
/*
* SaveInfo为保存信息类
* 它继承于Computer类
*/
Scanner scann=new Scanner(System.in);
public void saveInfo(){
/*
* 保存内部人员信息方法
*/
System.out.println("请输入你所要保存的信息");
String temp2=scann.next();
String[] ComputerInfo =new String[200];//对计算机所以信息进行操作
for (int i = 0; i < ComputerInfo.length; i++) {
ComputerInfo [i]=temp2; }
System.out.println("现在的数组元素包含:"+ComputerInfo); }
}
SaveInfo
package cdjj.s2t075.com;
import java.util.Scanner;
public class UpdateEmp extends Admin {
/*
* UpdateEmp为更新内部人员信息
* 可实现更新内部人员操作
* 它继承于Admin高级用户类
*/
Scanner scanners=new Scanner(System.in);
String[] ComputerInfo =new String[200];//对计算机所以信息进行操作
public void updateEmp(){
/*
* 更新内部人员信息方法
*/
System.out.println("请输入你要修改的信息");
String temp3=scanners.next();
for (int i = 0; i < ComputerInfo.length; i++) {
ComputerInfo[i]=temp3;
}
System.out.println("现在的数组元素包含:"+ComputerInfo);
}
}
UpdateEmp
需求及详细介绍如下:
使用Java实现面向对象编程的更多相关文章
- JAVA的面向对象编程
JAVA的面向对象编程 面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 全部的事物都有两个方面: 有什么(属性):用来描写叙 ...
- JAVA的面向对象编程--------课堂笔记
面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么 ...
- Java基础--面向对象编程1(类与对象)
1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...
- 1.Java基础-面向对象编程思想(封装继承多态接口)
封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...
- Java基础--面向对象编程3(继承)
1.继承的作用 为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中. 这个公共的类称为父类(super class),继承于父类的类称为子类(sub class). 2.java继 ...
- Java基础--面向对象编程2(封装)
1.封装的定义: 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2. 为什么需要封装?封装的作用和含义? 首先思考一个问题:当我们要 ...
- Java之面向对象编程20170619
/*************************************************************************************************** ...
- Java基础--面向对象编程4(多态)
1.多态的概念 多态是指程序中的同一引用类型,使用不同的实例而执行结果不同的. 同一个类型:一般指父类 不同的实例:不同的子类实例 执行结果不同:针对同一方法执行的结果不同 package cn.sx ...
- JAVA学习(五):Java面向对象编程基础
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...
随机推荐
- hibernate框架模板(可复制修改)
简易搭建jar包 User类 package com.littlepage.test; public class User { private int uid; private String unam ...
- PostgreSQL安装及使用教程二(zip解压方式)
下载postgre包 下载地址:https://www.postgresql.org/download/ 选DOWNLOADS--Windows--zip archive--version10.6- ...
- python IOError: [Errno 22] invalid mode ('r') or filename:
如果你是报这个错误,可能是因为你的文件路径中的中文字符太多的缘故. 你可以将路径或者文件名称改为英文试试.
- 力扣(LeetCode)258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...
- js 动画效果实现
1. 实现方式 - 应用场景 自己写 - 简单的.不用 jq 的项目 jq - 普通动画 成熟插件 - 复杂动画 2. 相关文章 JavaScript基于时间的动画算法 九种原生js动画效果 Twee ...
- Linux学习3-yum安装java和Tomcat环境
前言 linux上安装软件,可以用yum非常方便,不需要下载解压,一个指令就能用yum安装java和tomcat环境. 前面一篇已经实现在阿里云服务器上搭建一个禅道系统的网站,算是小有成就,但并不是每 ...
- 算法笔记--FFT
推荐阅读资料:算法导论第30章 本文不做证明,详细证明请看如上资料. FFT在算法竞赛中主要用来加速多项式的乘法 普通是多项式乘法时间复杂度的是O(n2),而用FFT求多项式的乘法可以使时间复杂度达到 ...
- flex属性的学习
1.需要记住的属性和值. ------------------------------------------------------------- 方向横和纵 flex-direction: row ...
- HTML第三章总结
在这一章节中,主要讲了 HTML 中众多的 element,element 就像在建筑房屋时候的材料,它可以分为两种: Block Element Inline ElementBlock Elemen ...
- 雷林鹏分享:现实生活中的 XML
现实生活中的 XML 如何使用 XML 来交换信息的一些实例. 实例:XML 新闻 XMLNews 是用于交换新闻和其他信息的规范. 对新闻的供求双方来说,通过使用这种标准,可以使各种类型的新闻信息通 ...