dijiuzu

 

20220720 第一组 于芮 面向对象——挺抽象3(第十三天)

 
小白成长记——第十三天
 
   今天依旧是面向对象的一天,但是今天的知识点相对来说比较少,但是需要理解的程度一点都不逊色于前两天的学习,同时,今天的代码量也显著提高,需要理解的地方也要非常多,但是,这丝毫不能打到我,苦海无涯,学无止境,只要付出努力,当然会得到回报,来看看今天的学习笔记吧!!

string字符串(类)
双等号比较的是虚地址(对象在内存中的存储地址)
等号赋值,地址相等,new赋值,双等号比较也不相等
常用方法
比较字符串的内容
equals方法(等于)
1.需要传参,传入string类型参数
2.有返回值,是Boolean型
3.访问权限public


length方法(获取字符串的长度)
1.不需要传参
2.有返回值,int类型
3.访问权限public

字符串获取长度和数组获取长度有什么区别?
1.数组的length是属性,字符串的length()是方法

下标(索引)--从0开始
charAt方法(取出指定下标位置的字符)
indexof(判断指定字符是否存在)--返回值为字符串在值的下标,如果不存在,返回-1,如果有多个,返回从左到右第一个匹配的目标
indexof(string int)代表从int位置开始查找,包括当前位置

字符串的截取
substring(beginindex)--有返回值
如果传一个参数,从指定位置开始截取,直到字符串的末尾,包括起始位置的字符,生成一个新的字符串,不会改变原有数据
substring(beginindex,endindex)
从指定位置开始,到终止位置,包含起始位置,不包含终止位置。
touppercase()把字符串中的英文字母转成大写--返回新的字符串
tolowercase()把字符串中的英文字母转成小写
startwith()判断是不是以。。开头--返回TRUE或false
equalsignorecase()忽略大小写进行比较内容
trim()去掉字符串前后的空格
split(字符串)根据指定的字符分割,分割之后,分割条件消失了--返回值是string类型的数组
字符串的替换replace()--生成新的字符串


字符串和数组的转换以及字符串和其它数据类型的转换
任何类型做加法,结果都是字符串数据类型和字符串
字符串转数组tochararray();
转成字节型数组在----操作文件时常用
包装器类型(包装类,封装类)
int---Inteengr
char----character

自动封箱:把 int包装成integer(基本类型转换成对应的包装器类型)
自动拆箱:把integer转换成int类型(包装器类型转换成对应的基本数据类型)

JDK5之后的新功能
1.自动装箱,自动封箱
2.增强for循环
3.枚举
JDK7以后的新功能
1.switch case 可以用string

异常
1.数组下标越界
2.内存溢出
3.空指针
4.字符串下标越界
5.数据格式化

   今天学习内容不是很多,但是有一个比较大的案例,相比于理论,我觉得实践更重要,今天的实践是一个简易的员工管理系统,一起来看看代码吧!

  1 package Employee;
  2 
  3 import java.util.Scanner;
  4 
  5 
  6 
  7 import java.util.Scanner;
  8 
  9     /**
 10      * 注册和登录!
 11      * 封装:属性一定要私有化,提供公有的set、get方法
 12      * 1、创建一个User类,username和password
 13      * 2、创建一个Employee类,id和name
 14      * 3、Demo类。
 15      *
 16      * 登录:
 17      * 输入账号和密码,然后去数组中比对,
 18      * 遍历数组,分别比对账号和面,如果比对成功,则输出登录成功,则输入账号或密码错误!
 19      *
 20      *
 21      * 空指针异常NullPointerException
 22      *
 23      * 注册2.0版本:
 24      * 用户名不能重复!
 25      * 遍历,用户名和数组中的用户名比对一下
 26      * 15分钟!
 27      *
 28      */
 29     public class Demo {
 30 
 31         public static void main(String[] args) {
 32             Scanner sc = new Scanner(System.in);
 33             UserManager userManager = new UserManager();
 34 
 35 
 36             main:for (;;){
 37                 User[] users = userManager.getUsers();
 38                 System.out.println("请选择功能:1、注册  2、登录 3、查询账户");
 39                 String flag = sc.next();
 40                 u:for(;;){
 41                     switch (flag) {
 42                         case "1":
 43                             System.out.println("请输入账号:");
 44                             String username = sc.next();
 45                             for (User user : users) {
 46                                 if (user != null) {
 47                                     if (username == user.getUsername()) {
 48                                         System.out.println("用户名不能重复,请重新输入!");
 49                                         continue u;
 50                                     }
 51                                 }
 52                             }
 53                             System.out.println("请输入密码:");
 54                             String password = sc.next();
 55                             String info = userManager.register(username, password);
 56                             System.out.println(info);
 57 
 58                             continue main;
 59                         case "2":
 60                             System.out.println("请输入账号:");
 61                             String username1 = sc.next();
 62                             System.out.println("请输入密码:");
 63                             String password1 = sc.next();
 64 
 65                             boolean b = userManager.login(username1, password1);
 66                             if (b) {
 67                                 // 进入到员工管理
 68                                 System.out.println("登录成功!");
 69                                 System.out.println("请选择功能:1.添加员工  2.查询员工  3.修改员工  4.删除员工");
 70                                 String selection = sc.next();
 71                                 switch (selection) {
 72                                     case "1":
 73                                         System.out.println("请输入新的员工姓名:");
 74                                         String username2 = sc.next();
 75                                         String s = Employee.addEmp(name);
 76                                         System.out.println(s);
 77                                         continue u;
 78 
 79 
 80                                     case "2":
 81                                         System.out.println("请选择功能:1.根据id查询  2.查询所有");
 82                                         String s2 = sc.next();
 83                                         switch (s2) {
 84                                             case "1":
 85                                                 System.out.println("请输入id:");
 86                                                 int id = sc.nextInt();
 87                                                 Employee empById = Employee.getEmpById(id);
 88                                                 if (empById != null) {
 89                                                     System.out.println("你要找的" + id + "号员工信息为:" + empById.getName());
 90                                                 } else {
 91                                                     System.out.println("你要找的" + id + "号员工不存在!");
 92                                                 }
 93                                                 continue u;
 94                                             case "2":
 95                                                 for (Employee employee : employees) {
 96                                                     if (employee != null) {
 97                                                         System.out.println(employee.getId() + "," + employee.getName());
 98                                                     }
 99                                                 }
100                                                 continue u;
101                                         }
102                                     case "3":
103                                         System.out.println("请输入工号:");
104                                         int id = sc.nextInt();
105                                         Employee emp = employeeManager.getEmpById(id);
106                                         if (emp != null) {
107                                             System.out.println("你要修改的" + id + "号员工信息为:" + emp.getName());
108                                             System.out.println("请输入新的姓名:");
109                                             String name1 = sc.next();
110                                             emp.setName(name1);
111                                             // 需要把当前已经修改好的对象重新给数组
112                                             for (int i = 0; i < employees.length; i++) {
113                                                 if (employees[i] == emp) {
114                                                     employees[i] = emp;
115                                                 }
116                                             }
117                                             System.out.println("修改成功!新的信息为:" + emp.getId() + "," + emp.getName());
118                                         } else {
119                                             System.out.println("你要找的" + id + "号员工不存在!");
120                                         }
121                                     case "4":
122                                         System.out.println("请输入工号:");
123                                         int id1 = sc.nextInt();
124                                         Employee emp1 = employeeManager.getEmpById(id1);
125                                         if (emp1 != null) {
126                                             for (int i = 0; i < employees.length; i++) {
127                                                 if (employees[i] == emp1) {
128                                                     employees[i] = null;
129                                                 }
130                                             }
131                                             // 移位
132                                             System.out.println("删除成功!");
133                                         } else {
134                                             System.out.println("你要找的" + id1 + "号员工不存在!");
135                                         }
136                                 }
137                             }
138                             continue u;
139                     }
140                             }
141 
142 
143                     }
144                 }
145             }

 

package Employee;




    public class Employee {


        private int id;
        private String name;

        public Employee(int id, String name) {
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
 1 package Employee;
 2 
 3 public class EmployeeManager{
 4     private Employee [] employees = new Employee[10];
 5     private int index = 0;
 6 
 7     private int id = 1001;
 8 
 9     public Employee getEmpById(int id){
10         Employee emp = null;
11         for (Employee employee : employees) {
12             if(employee != null){
13                 if(id == employee.getId()) {
14                     emp = employee;
15                 }
16             }
17         }
18         return emp;
19     }
20 
21     public String addEmp(String name){
22         Employee employee = new Employee(id,name);
23         employees[index] = employee;
24 
25         index ++;
26 
27 
28         return "添加成功,工号:" + (id++) + ",姓名:" + name;
29     }
30 
31     public Employee[] getEmployees() {
32         return employees;
33     }
34 
35     public void setEmployees(Employee[] employees) {
36         this.employees = employees;
37     }
38 
39 }
 1 package Employee;
 2 
 3 
 4 
 5     public class User {
 6 
 7         private String username;
 8         private String password;
 9 
10         public String getUsername() {
11             return username;
12         }
13 
14         public void setUsername(String username) {
15             this.username = username;
16         }
17 
18         public String getPassword() {
19             return password;
20         }
21 
22         public void setPassword(String password) {
23             this.password = password;
24         }
25 
26         public User() {
27         }
28 
29         public User(String username, String password) {
30             this.username = username;
31             this.password = password;
32         }
33     }
 1 package Employee;
 2 
 3 
 4 
 5     public class UserManager {
 6 
 7         // User类型的数组
 8         // User类型的数中保存的就是一个一个的User对象
 9         private User [] users = new User[10];
10         private int index = 1;
11 
12         public UserManager() {
13             users[0] = new User("admin","123456");
14         }
15 
16         public String register(String username, String password){
17             // 保存账号密码,保存的是User对象
18             // 构建User对象
19             User user = new User(username,password);
20             users[index] = user;
21 
22             index ++;
23 //        this.index = this.index + 1;
24 
25             return "注册成功,账号:" + username + ",密码:" + password;
26         }
27 
28         public boolean login(String username,String password) {
29 
30             boolean b = false;
31             for (User u : users) {
32                 if(u != null){
33                     if(u.getUsername().equals(username) && u.getPassword().equals(password)) {
34                         b = true;
35                         break;
36                     }
37                 }
38             }
39             return b;
40 
41         }
42 
43         public User[] getUsers() {
44             return users;
45         }
46 
47         public void setUsers(User[] users) {
48             this.users = users;
49         }
50 
51 
52     }

 

 

posted on 2022-07-20 18:24  于芮  阅读(11)  评论(0编辑  收藏  举报

导航