package com.demo.phonesystem.view;
import com.demo.phonesystem.service.PhoneService;
import com.demo.phonesystem.utils.Unity;
import com.demo.phonesystem.domain.User;
public class SignInView {
private boolean loop = true;//控制显示菜单
private char key = ' ';//接受用户的选择
private PhoneService userOperate = new PhoneService(10);//创建操作对象
public void mainMenu(){
//因为防止用户输入不对 使用循环来输入 首先要输入一次 可以使用do while 语句
do{
System.out.println("\n=============手机登录系统=============");
System.out.println("\t\t\t1 注 册 账 号");
System.out.println("\t\t\t2 登 录 账 号");
System.out.println("\t\t\t3 查 看 账 号");
System.out.println("\t\t\t4 退 出");
System.out.println("请输入你的选择(1~3)");
//使用Utlity中的方法 来输入单个数字
key = Unity.readChar();
//利用switc选择结构来进行选择 而这些选项的服务需要通过 service包中的方法来完成
switch (key){
case '1' :
addUser();
break;
case '2':
if(!enterNumber()){
loop = false;
}
break;
case '3':
listNumber();
break;
case '4':
System.out.println("退出成功");
loop = false;
break;
default:
System.out.println("输入不存在 你的选择(1~3)");
break;
}
}while(loop);
}
public void addUser(){
boolean flag = true;
String phontNumber;
String postWord;
String temp = "";
do{
System.out.println("输入账号(11位数字)");
phontNumber = Unity.phoneNumber();
if(Unity.existence(userOperate.list(),phontNumber)){
System.out.println("=============账号存在=============");
System.out.println("=============重新注册=============");
}else{
System.out.println("=============创建成功=============");
flag = false;
}
}while (flag);
flag = true;
do{
System.out.println("输入密码(三位字符,三位数字)");
postWord = Unity.postWord();
System.out.println("=============确认密码=============");
if(Unity.judge(postWord)){
flag = false;
}else{
System.out.println("=============密码错误=============");
System.out.println();
System.out.println("=============重新创建=============");
addUser();
}
}while(flag);
flag = true;
do{
temp = Unity.code();//生成验证码
System.out.println("验证码:"+temp);
System.out.println("输入验证码(区分大小写)");
if(Unity.judge(temp)){
flag = false;
}else{
System.out.println("============验证码不正确============");
}
}while (flag);
User newUser = new User(phontNumber,postWord);//创建对象
if(userOperate.add(newUser)){
System.out.println("=============创建成功=============");
}else{
System.out.println("=============创建失败=============");
}
}
public void listNumber(){
System.out.println("用户");
User[] users = userOperate.list();
for(int i = 0 ; i < users.length ;i++){
if(users[0] == null){
System.out.println("=============暂无信息=============");
break;
}else if(users[i] == null){
break;
}else {
System.out.println(users[i].toString());
}
}
}
//登入账号
public boolean enterNumber(){
int index = 0;
String phoneNumber = "";
//输入账号 先正确
System.out.println("输入手机账号:");
phoneNumber = Unity.phoneNumber();
//如果存在就将索引位置赋值给index 否则就输出账号不存在 请去注册
if(Unity.existence(userOperate.list(),phoneNumber)){
index = Unity.returnIndex(userOperate.list(),phoneNumber);
System.out.println("============登录密码============");
if(!Unity.enterPostWord(userOperate.list(),index)){
return false;
}else {
System.out.println("============登录成功============");
}
}else{
System.out.println("============账号不存在============");
}
return true;
}
}
phonesystem.zip
需积分: 0 181 浏览量
更新于2021-11-20
收藏 5KB ZIP 举报
《面向对象编程初探:构建一个简单的登录系统》
在编程世界中,面向对象编程(Object-Oriented Programming,简称OOP)是一种广泛使用的编程范式,尤其在大型项目和复杂系统中,其优势尤为突出。本文将通过分析一个简单的登录系统,帮助“新手小白”理解并掌握面向对象的基本概念和应用。
我们来看“phonesystem.zip”这个压缩包,它很可能包含了用于实现一个简单电话系统登录功能的代码文件。在这个系统中,我们将涉及到几个关键的面向对象概念,如类、对象、封装、继承和多态。
1. **类与对象**:
类是面向对象编程的核心,它是对现实世界中某一类事物的抽象描述。在我们的登录系统中,可能会有“用户”类,用来表示系统中的用户信息,包括用户名、密码等属性。对象则是类的实例,每个用户都是一个具体的对象,具有类定义的属性和行为。
2. **封装**:
封装是面向对象的重要特性,它允许我们将数据和操作这些数据的方法捆绑在一起,形成一个独立的单元。在登录系统中,用户类可能会有一个私有的密码属性,防止外部直接访问,而是通过公共方法(如`setPassword`和`checkPassword`)来设置和验证密码,保护数据的安全性。
3. **继承**:
继承是另一个关键特性,允许一个类(子类)从另一个类(父类)继承属性和方法。在登录系统中,如果我们要为管理员添加额外权限,可以创建一个“管理员”类,它继承自“用户”类,并增加一些特有的方法,如管理其他用户、修改系统设置等。
4. **多态**:
多态是指不同的对象能对同一消息做出不同的响应。在登录系统中,虽然所有用户都继承自同一个基类,但管理员和其他普通用户在执行某些操作时可能有不同的行为。例如,`login`方法对于管理员可能还包括验证权限的步骤,这就是多态性的体现。
5. **设计模式**:
在实际开发中,我们还会用到一些设计模式,比如工厂模式(Factory Pattern)用于创建用户对象,单例模式(Singleton Pattern)确保登录系统的全局唯一性,策略模式(Strategy Pattern)用于处理不同类型的验证规则等。
通过以上分析,我们可以看到,即使是简单的登录系统,也涵盖了面向对象编程的多个核心概念。对于新手来说,理解并实践这些概念是成为熟练程序员的关键一步。在实践中,不断地编写、调试和优化代码,将会让你对这些概念有更深入的理解,从而更好地应对复杂的编程挑战。
「已注销」
- 粉丝: 1
- 资源: 1
最新资源
- 各类合同-06-实习协议书.docx
- 各类合同-09-退休返聘协议书.docx
- 劳动合同的解除.docx
- 保守商业秘密协议.doc
- 保密协议样本.doc
- 反竞争协议样本.doc
- 岗位劳动合同.doc
- 变更劳动合同协议书.doc
- 变更、终止、解除劳动合同通知书.doc
- 雇佣合同书范本.doc
- 解除劳动合同通知书.doc
- Self-supervised Learning of Adversarial Example:Towards Good Generalizations for Deepfake Detection
- 劳动合同变更协议书.doc
- 劳动合同管理规定.docx
- 介绍信格式范本.doc
- 借用人员劳务协议.doc