类:模板 规范
属性:姓名 年龄 职业 性别
方法:思考 学习 吃饭
对象 类实例化之后 new
方法:动态方法 public
静态方法 static
构造方法/构造器 同名
有参—无参
运行控制:
控制权限
Public 完全公开
Private 私有的(属性api)
Default 同包/不同包子类
特点:
封装:拆解思维 权限控制
继承:超类/父类/基类 extends 子类/派生类
多态:重载 方法明一样 参数不一样
Java
大项目
代码比较规范
分包分层
设计思想:
M V C:
Model模型:数据处理相关
View 视图层:用户相关
Control 控制层:请求转发
Php
重点:
“JavaBean”
Java实体类(设置值,获取值)
ALT+INSERT
“Pojo”
接口Interface 全部实现接口中方法
抽象类abstract 只能被子类继承,并实现抽象方法
类:Student.java
package JavaBean; //实现接口类 public class Student { private Integer id; private String xueHao; private String name; private Integer age; private String major; private String classZ; public Student() { } //引入项目所需要的数组 public Student(Integer id, String xueHao, String name, Integer age, String major, String classZ) { //this(当前类的父类的对象):调用当前类中的方法(表示调用这个方法的对象) this.id = id; this.xueHao = xueHao; this.name = name; this.age = age; this.major = major; this.classZ = classZ; } //设置值 public Integer getId() { return id; } //获取值 public void setId(Integer id) { this.id = id; } public String getXueHao() { return xueHao; } public void setXueHao(String xueHao) { this.xueHao = xueHao; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public String getClassZ() { return classZ; } public void setClassZ(String classZ) { this.classZ = classZ; } @Override public String toString() { return "Student{" + "id=" + id + ", xueHao='" + xueHao + '\'' + ", name='" + name + '\'' + ", age=" + age + ", major='" + major + '\'' + ", classZ='" + classZ + '\'' + '}'; } }
类:Studentrun.java
package UserView; import HandleDataLogic.DoStudentInterfaceLogic; import JavaBean.Student; import java.util.Scanner; public class StudentRun { public static void main(String[] args){ System.out.println("------------欢迎进入学生管理系统-------------"); //定义操作的数据类型 Student[] students =new Student[200]; int stuNum=0; //调用操作的方法 实现对数组的增删改查 DoStudentInterfaceLogic doStudentInterfaceLogic = new DoStudentInterfaceLogic() { @Override public Student addStudent() { return null; } }; while(true) { System.out.println("1.添加学生信息"); System.out.println("2.查看所有学生信息"); System.out.println("3.通过学号查询学生信息"); System.out.println("4.通过学号修改学生信息"); System.out.println("5.删除学生信息"); System.out.println("6.退出学生系统"); System.out.print("请输入"); Scanner scanner = new Scanner(System.in); int anInt = scanner.nextInt(); switch(anInt) { case 1: //判断输入的学号是否相同 Student data=doStudentInterfaceLogic.addStudent(students,stuNum); if(data==null){ System.out.println("学生已经找到了!请重新输入!"); }else{ students[stuNum++]=data; } // System.out.println("student[0].toString() = "+students[0].toString()); break; case 2: //查询所有学生的信息 System.out.println("-------------查询的学生信息如下---------------"); doStudentInterfaceLogic.findAllStudent(students,stuNum);break; case 3: System.out.println("请输入查找同学的学号"); //通过学号查询学生信息,判断学号是否存在并输出结果 String findXueHao = scanner.next(); Student studentOne=doStudentInterfaceLogic.findOneStudent(students,stuNum,findXueHao); if(studentOne!=null){ System.out.println("studentOne.toString() ="+studentOne.toString()); }else{ System.out.println("查无此人"); } break; case 4: //通过学号进行学生信息更改 判断该学号相应学生是否存在 System.out.println("请输入要更新的学号"); String xuehaoUp = scanner.next(); //定义的数组 需要查询的学生信息,提供数组、数量查找的数组 //null如果=则更新的用户不存在,不=则更新成功 if(doStudentInterfaceLogic.updateStudent(students,stuNum,xuehaoUp)!=null) { System.out.println("恭喜!更新成功!"); }else{ System.out.println("更新用户不存在!"); } break; case 5: //通过输入要删除的学号实现对该学生信息的删除 System.out.println("请输入要删除的学号"); String xuehao = scanner.next(); if(doStudentInterfaceLogic.delStudent(students,stuNum,xuehao)){ System.out.println("您已经成功删除了学号是:"+xuehao+"的同学!"); stuNum--; }else{ System.out.println("您要删除的同学不存在!"); } break; case 6: System.exit(0); } } } } 接口:StudentInterface.java
package HandleDataLogic; import JavaBean.Student; /* * 设计实现的接口,给整个项目指定实现的逻辑规范 * */ public interface StudentInterface { //1.实现学生信息的添加 Student addStudent(); //添加学生信息 Student addStudent(Student[] stuAll, int count); //2.实现查找所有学生信息 void findAllStudent(Student stuAll[], int count); //3.实现通过学号查找对应的学生信息 Student findOneStudent(Student stuArr[],int count,String name); //4.实现通过学号修改学上的信息 Student updateStudent(Student stuArr[],int count,String xuehao); //5.实现通过学号删除学生信息 boolean delStudent(Student stuAll[],int count,String xuehao); } 类:DoStudentInterfaceLogic.java
package HandleDataLogic; import JavaBean.Student; import java.util.Scanner; //快捷键自动生成是实现接口 Alt+Ins public abstract class DoStudentInterfaceLogic implements StudentInterface { static int id = 0; @Override //添加学生信息 public Student addStudent(Student[] stuAll, int count) { /*Student student创建一个对象的引用 new 在内存中开辟空间,初始化对象 Student()构造器,给对象的属性赋初值*/ Student student = new Student(); Scanner scanner = new Scanner(System.in); System.out.println("请输入学生姓名"); //作用是将用户输入的字符串赋值给一个名为 “name” 的变量。 student.setName(scanner.next()); //输入语句从控制台中读取用户输入的学生学号,将其赋值给student的对象的xueHao属性。 System.out.println("请输入学生学号"); // next()一定要读取到有效字符后才能结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符 String xh = scanner.next(); //boolean flag=false;//判断学号的标志位 //判断学号是否相同 for (int i =0;i<count;i++){ /*判断stuAll中是否存在输入的XueHao equals比较两个对象的内存地址 */ if(stuAll[i].getXueHao().equals(xh)) { return null; } } student.setXueHao(xh); /*判断年龄是否正确输入 try...catch跳过异常继续处理循环 */ while (true){ try { System.out.println("请输入学生年龄"); Scanner lnScanner= new Scanner(System.in); student.setAge(lnScanner.nextInt()); break; }catch (Exception e){ System.out.println(); } } System.out.println("请输入学生专业"); student.setMajor(scanner.next()); System.out.println("请输入学生班级"); student.setClassZ(scanner.next()); student.setId(++DoStudentInterfaceLogic.id); return student; } @Override //查询所有学生信息 //stuAll是一个存储学生信息的数组 public void findAllStudent(Student[] stuAll, int count) { Student student = new Student(); /*for循环代码,用于stuArr数组 count是学生数组的长度 stuAll是学生数组*/ for (int i = 0; i < count; i++) { System.out.println("stuArr[i]toString()=" + stuAll[i].toString()); } } @Override //通过学号查询学生信息 public Student findOneStudent(Student[] stuArr, int count, String XueHao) { for (int i = 0; i < count; i++) { if (stuArr[i].getXueHao().equals(XueHao)) { return stuArr[i]; } } return null; } @Override //通过学号修改学生信息 public Student updateStudent(Student[] stuArr, int count,String XueHao) { /* 定义一个布尔类型的变量flag,并将其初始化为false 通过判断flag的值来执行不同的操作 成立则将flag设置为true,否则保持为false */ boolean flag=false; //index 所查询的学号的位置是否存在数值 int index=0; Scanner scanner = new Scanner(System.in); for (int i=0;i<count;i++) { if (stuArr[i].getXueHao().equals(XueHao)) { flag = true; index = i; break; } } if(flag) { System.out.println("原来的学号:"+stuArr[index].getXueHao()); System.out.println("请输入要更新的学号"); //1.获取输入内容 String xh = scanner.nextLine(); //2.判断输入内容是否为空 Java中的if-else语句 if(xh.equals("")) { System.out.println(); }else{ stuArr[index].setXueHao(xh); } System.out.println("原来的姓名:"+stuArr[index].getName()); System.out.println("请输入要更新的姓名"); String xm = scanner.nextLine(); if(xm.equals("")) { System.out.println(); }else{ stuArr[index].setName(xm); } System.out.println("原来的年龄:"+stuArr[index].getAge()); System.out.println("请输入要更新的年龄"); String nl = scanner.nextLine(); if(nl.equals("")) { System.out.println(); }else{ //年龄数值转型 Integer规定的整形 stuArr[index].setAge(Integer.parseInt(nl)); } System.out.println("原来的专业:"+stuArr[index].getMajor()); System.out.println("请输入要更新的专业"); String zy = scanner.nextLine(); if(zy.equals("")) { System.out.println(); }else{ stuArr[index].setMajor(zy); } System.out.println("原来的班级:"+stuArr[index].getClassZ()); System.out.println("请输入要更新的班级"); String bj = scanner.nextLine(); if(bj.equals("")) { System.out.println(); }else{ stuArr[index].setClassZ(bj); } return stuArr[index]; }else{ System.out.println("您更新的数据不存在!"); return null; } } @Override //删除学生信息 public boolean delStudent(Student[] stuArr, int count, String xueHao) { boolean flag = false; /*删除元素的索引 index 如果找到相应的数值则flag变成ture执行下一步操作, 没找到则是数值false输出结果 */ int index = 0; for (int i = 0; i < count; i++){ if (stuArr[i].getXueHao().equals(xueHao)) { index = i; flag = true; break; } } if (flag) { //进行删除操作 for (int j = index; j < count - 1; j++) { stuArr[j] = stuArr[j + 1]; } return true; } else { return false; } } }