项目设计主要涉及的知识点:
-
类的继承性和多态
-
对象值的传递、接口
-
static和final修饰符
-
特殊类的使用:包装类、抽象类、内部类
-
异常的处理
-
Java基本语法和流程控制
-
ArrayList集合的使用
该项目主要实现的四个板块:
project1文件组成:
view(各个功能的视图) :
loginView:登陆时的功能视图;
TeamView:团队管理时的功能视图;
IndexView:主程序入口类,主菜单功能视图;
Utility类:限制用户输入规范数据行为的工具类;
service(各个模块的各种行为实现的方法):
TeamException:自定义异常类;
NameListServirce:开发人员管理模块的各个功能实现方法;
TeamService:团队管理模块的各个功能实现方法;
ProjectService:项目管理模块的各个功能实现方法;
domain(抽象类以及具体类和接口):
Employee:父类员工类,被继承项目所需要的员工子类,提供各员工属性的get/set方法、构造方法、toString()重写;
Project:项目类,提供项目属性的set/get方法、构造方法、toString()重写;
板块一:用户注册和登陆的实现
实现思路:
①定义一个LoginView来实现用户注册和登陆的功能视图
②定义一个集合用来储存默认用户和新添加用户
③判断输入的数据在集合中有无匹配,没有则调用注册方法
④获取的账户名和密码在集合中匹配,成功则继续下个模块
⑤输入用户名时获取,修改用户名和密码时去匹配
**设计知识点:**集合的使用;java基础语法;流程控制;
板块二:开发人员管理实现
实现思路:
①在domain中创建各员工子类;
②在NameListService中实现员工增删改查;
③需要创建一个集合存储所有人员,在此集合数据基础上增删改查;
**涉及知识点:**类的继承性和多态对象值的传递;接口static和final修饰符;特殊类的使用:包装类、抽象类;异常的处理;Java基本语法和流程控制;ArrayList集合的使用
所遇到问题:
①static修饰符:块语句和员工集合都要需要用static修饰,在另一个类中调用时才会数据同步,只修饰集合时,在另一个类中实例本集合的类时会再加载一次块语句,那么块语句一共加载了两次,集合中块语句就存了两次;在块语句前也用static修饰,则集合只存一份,且本类所有对象都共享,静态修饰的集合生命周期被加载后会持续到整个程序的结束;
②包装类的使用,数据类型的转换:在判断是否更改用户数据时需要注意;
int i;
double j;
//String转int
String s1 = String.valueOf(i);
//String转double
String s1 = String.valueOf(j);
//int转String
int i1 = Integer.parseInt(s1);
//double转String
double j1 = Double.parseDouble(s1);
③Scanner部分方法的区别:
next():获取用户用户输入的数据,在输入有效数据前输入空格和回车都不收录,输入有效数据后遇到回车和空格作为结束符;
nextLine():遇到空格和回车作为结束符,收录回车空格;
hasNextLine():判断是否有输入一行数据,包含空格和回车行;
板块三:开发团队调度管理实现
实现思路:
①需要创建一个存储集合的集合,用来装团队集合,可采用数组,为了数据添加灵活我用的集合;
②遍历装有团队的集合,重写toString()方法的利用;
③删除团队成员时注意id的变化,集合的元素的覆盖,Arrays方法的remove()的使用格外注意索引越界;
**涉及知识点:**类的继承性和多态对象值的传递;异常的处理;Java基本语法和流程控制;ArrayList集合的使用
遇到问题:
①集合的集合定义:
//定义装集合的集合
List<List<E>> = new ArrayList<List<E>>();
②下标容易越界,需格外注意
板块四:开发项目管理实现
实现思路 :
①提供默认选择项目,写入数据;
②Rondom()方法的随机分配团队给项目
③利用重写toString()打印项目情况
④Arrays.remove()删除项目
⑤限制正在开发中项目不可删除等
**涉及知识点:**类的继承性和多态对象值的传递;异常的处理;Java基本语法和流程控制;ArrayList集合的使用;