> 文章列表 > 阶段二11_面向对象高级_学生管理系统案例2

阶段二11_面向对象高级_学生管理系统案例2

阶段二11_面向对象高级_学生管理系统案例2

主要内容:
添加学生
static关键字

一.添加学生时判断id是否存在

0.思路图片:
04/图片/2_添加学生判断id存在的问题分析.png
阶段二11_面向对象高级_学生管理系统案例2
1.思路实现详细步骤:
StudentController【客服接待】

/**
接收到学生id后,判断该id在数组中是否存在
这种判断属于业务处理
指派StudentService中判断 id 是否存在
调用内部 isExists方法,该方法返回boolean类型
true: 存在
false: 不存在
接收学员 id 和判断的代码,使用无限循环包裹直到输入了不存在的id,结束循环
*/
while(true) {System.out.println("请输入学生id:");id = sc.next();boolean fag=  studentService.isExists(id);if(fag){System.out.println("该学号已存在");}else{break;}}

StudentService【业务员】

/**
isExists方法
从StudentDao中获取存储学生对象的数组,调用内部findAllStudent方法.
该方法返回学生数组,遍历数组获取每一个学生对象
判断学号是否存在,返回 true 或 false 结果
*/
public boolean isExists(String id) {Student[] students =  studentDao.findAll();boolean isExists = false;  //false不存在for(Student stu: students){if(stu!=null && stu.getId().equals(id)){isExists = true;break;}}return isExists;
}

StudentDao【库管】

//findAllStudent方法,将学生数组返回即可
//返回全部学生对象
private Student[] students = new Student[5];
public Student[] findAll() {return students;
}

二.添加学生时判断id是否存在,问题分析

分析图片
04/图片/3_添加学生时判断id是否存在.png
阶段二11_面向对象高级_学生管理系统案例2

解决:
使用static 关键字解决
思路:将使用的Student[] 学生数组变为共享数据,加入static静态修饰

三.static关键字

1.概念:
static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量。
被static修饰的成员变量,一般叫做静态变量
被static修饰的成员方法,一般叫做静态方法

2.static 修饰的特点
被类的所有对象共享
是我们判断是否使用静态关键字的条件
随着类的加载而加载,优先于对象存在
对象需要类被加载后,才能创建
可以通过类名调用
也可以通过对象名调用
推荐使用类名调用

3.static 关键字内存图解
图:04/图片/4_static关键字内存图解
阶段二11_面向对象高级_学生管理系统案例2

4.static 关键字的注意事项
静态方法只能访问静态的成员
非静态方法可以访问静态的成员,也可以访问非静态的成员
静态方法中是没有this关键字
总结:静态方法中,只能访问静态成员,静态中没有this关键字