基础版本:

需求:采取控制台的方式去书写学生管理系统。

分析:

(1)、初始菜单:

(2)、学生类:

属性:id、姓名、年龄、家庭住址。

(3)、添加功能:

键盘录入每一个学生信息并添加,满足以下要求:id唯一。

(4)、删除功能:

键盘录入要删除的学生id,需要满足以下要求:

id存在删除。

id不存在,需要提示不存在,并回到初始菜单。

(5)、修改功能:

键盘录入要修改的学生id,需要满足以下要求:

id存在,继续录入其他信息。

id不存在,需要提示不存在,并回到初始菜单。

(6)、查询功能:

打印所有的学生信息,满足以下要求:

如果没有学生信息,提示:当前无学生信息,请添加后再查询。

如果有学生信息,需要按照以下格式输出。(不用过于纠结对其的问题)

package XSGL;public class Student {private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}
package XSGL;import java.util.ArrayList;
import java.util.Scanner;public class Dome {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();loop:while (true) {System.out.println("欢迎来到学生管理系统");System.out.println("1:添加学生");System.out.println("2:删除学生");System.out.println("3:修改学生");System.out.println("4:查询学生");System.out.println("5:退出");Scanner sc = new Scanner(System.in);System.out.println("请输入你的选择:");String choose = sc.next();switch (choose){case "1": {addStudent(list); break;}case "2": {deleteStudent(list); break;}case "3": {updateStudent(list); break;}case "4": {searchStudent(list); break;}case "5": {System.out.println("退出");//break loop;   //程序结束方法1:利用标记,然后break会跳出标记的循环System.exit(0); //程序结束方法2:利用此语句停止虚拟机运行}default: System.out.println("没有这个选项");}}}//添加学生public static void addStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);String id = null;while (true) {System.out.println("请输入学生的id");id = sc.next();boolean flag = contions(list,id);if(flag){System.out.println("id已经存在");} else {break;}}System.out.println("请输入学生的名字");String name = sc.next();System.out.println("请输入学生的年龄");int age = sc.nextInt();System.out.println("请输入学生的家庭住址");String address = sc.next();Student stu1 = new Student(id,name,age,address);list.add(stu1);System.out.println("学生信息添加成功");}//删除学生public static void deleteStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);System.out.println("请输入要删除的学生的id");String uid = sc.next();//获取查询的id在集合中对应的索引int index = getIndex(list,uid);if(index >= 0){list.remove(index);  //删除索引所对应的集合的元素System.out.println("id为" + uid + "的学生删除成功");} else {System.out.println("id不存在,删除失败");}}//修改学生public static void updateStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);String uid = null;System.out.println("请输入要修改的学生的id");uid = sc.next();//获取查询的id在集合中对应的索引int index = getIndex(list,uid);if(index == -1){System.out.println("要修改的id" + uid + "不存在");return ;}//代码执行到这的时候,说明要修改的id是存在的Student stu = list.get(index);System.out.println("请输入新的名字");String newName = sc.next();stu.setName(newName);System.out.println("请输入新的年龄");int newAge = sc.nextInt();stu.setAge(newAge);System.out.println("请输入新的家庭地址");String newAdress = sc.next();stu.setAddress(newAdress);System.out.println("学生信息修改成功");}//查询学生public static void searchStudent(ArrayList<Student> list){if(list.size() == 0){System.out.println("当前无学生信息,请添加后再查询");return ;}//打印表头信息System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getId() + "\t\t" + s.getName() + "\t\t" +s.getAge() + "\t\t" + s.getAddress());}}//判断id是否已经存在public static boolean contions(ArrayList<Student> list,String id){
//        for (int i = 0; i < list.size(); i++) {
//            Student stu2 = list.get(i);
//            String uid = stu2.getId();
//            if(uid.equals(id)){
//                return true;
//            }
//        }
//        return false;return getIndex(list,id) >= 0;}//通过id获取对应的索引public static int getIndex(ArrayList<Student> list,String id){for (int i = 0; i < list.size(); i++) {Student stu2 = list.get(i);String uid = stu2.getId();if(uid.equals(id)){return i;}}return -1;}
}

升级版本:

需求:

为学生管理系统书写一个登录、注册、忘记密码的功能。

只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。

分析:

(1)、登录界面:

(2)、用户类:

属性:用户名、密码、身份证号码、手机号码。

(3)、注册功能:

1、用户名需要满足以下要求:

验证要求:

用户名唯一

(分析:Scanner键盘录入用户名username,先到list集合中判断是否存在  contains / getindex)

用户名长度必须在3~15位之间

(分析:可以利用字符串的length() )

只能是字母加数字的组合,但是不能是纯数字

(分析:先循环获取username里面的每个字符,如果有一个字符不在 'a'~'z'  'A'~'Z'  '0'~'9',那么当前用户名不符合条件。统计一下用户名username当中有多少个字符在 a-z A-Z ,判断一下个数,只有大于0才是满足要求的用户名)

2、密码键盘输入两次,两次一致才可以进行注册。

(分析:利用Scanner第一次输入密码,利用Scanner第二次输入密码,只有两次一致,才是符合要求的,否则就不符合要求。)

3、身份证号需要验证。

验证要求:

长度为18位

(分析:键盘录入身份证号码,调用字符串里面的 length() 方法获取长度,只有长度为18的时候才满足)

不能以0为开头

(分析:可以调用 charAt(0) 获取第一个字符,跟  '0'  进行比较)

前17位,必须都是数字

(分析:遍历前面17位,如果有一个不在 '0'~'9' 这个范围当中,那么就是不符合的)

最后一位可以是数字,也可以是大写X或小写x

(分析:获取最后一个字符,如果这个字符在 '0'~'9' 之间或者 'X' 或者  'x'  那么就满足)

4、手机号验证。

验证要求:

长度为11位

(分析:键盘录入手机号码,调用字符串里面的 length() 方法获取长度)

不能以0为开头

(分析:可以调用 charAt(0) 与  '0'  进行比较)

必须都是数字

(分析:遍历手机号码,如果有一个字符不在 '0'~'9' 那么就是不行的)

分析:写完之后将属性添加到用户当中,然后把用户添加到集合当中。

User u = new User(username,password,personid,phoneNumber);

list.add(u);

(4)、登录功能:

1、键盘录入用户名

2、键盘录入密码

3、键盘录入验证码(分析:需要先获取一个验证码)

验证要求:

用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册。

判断验证码是否正确,如果不正确,请重新输入。

再判断用户名和密码是否正确,有3次机会。

分析:先判断用户名是否存在,如果不存在,直接提示未注册。既然用户名存在,那么久判断密码和验证码是否正确,如果正确登陆成功,如果错误会有三次机会。)

(5)、忘记密码:

1、键盘录入用户名,判断当前用户是否存在,如果不存在直接结束方法,并提示:未注册。

(分析:键盘录入用户名,判断是否存在,不存在直接提示未注册。)

2、键盘录入身份证号码和手机号码。

(分析:当代码执行到第二步,就表明用户名是存在的。此时才能键盘录入身份证号码和手机号码)

3、判断当前用户的身份证号码和手机号码是否一致。

如果一致,则提示输入密码,并进行修改。

如果不一致,则提示:账号信息不匹配,修改失败。

(分析:判断身份证号码和手机号码是否正确,如果错误则修改失败,如果正确,才让用户继续键盘录入密码,提示修改成功。)

(6)、验证码规则:

长度为5

由4位大写或者小写字母和1位数字组成,同一个字母可重复。

数字可以出现在任意位置。

package XSGLSJB;public class Student {private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}
package XSGLSJB;import java.util.ArrayList;
import java.util.Scanner;public class Dome {public static void startDome() {ArrayList<Student> list = new ArrayList<>();loop:while (true) {System.out.println("------欢迎来到学生管理系统功能界面------");System.out.println("1:添加学生");System.out.println("2:删除学生");System.out.println("3:修改学生");System.out.println("4:查询学生");System.out.println("5:退出");Scanner sc = new Scanner(System.in);System.out.println("请输入你的选择:");String choose = sc.next();switch (choose){case "1": {addStudent(list); break;}case "2": {deleteStudent(list); break;}case "3": {updateStudent(list); break;}case "4": {searchStudent(list); break;}case "5": {System.out.println("退出");//break loop;   //程序结束方法1:利用标记,然后break会跳出被标记的循环System.exit(0); //程序结束方法2:利用此语句停止虚拟机运行}default: System.out.println("没有这个选项");}}}//添加学生public static void addStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);String id;while (true) {System.out.println("请输入学生的id");id = sc.next();boolean flag = contions(list,id);if(flag){System.out.println("id已经存在");} else {break;}}System.out.println("请输入学生的名字");String name = sc.next();System.out.println("请输入学生的年龄");int age = sc.nextInt();System.out.println("请输入学生的家庭住址");String address = sc.next();Student stu1 = new Student(id,name,age,address);    //把学生的属性,添加到学生对象当中list.add(stu1);     //把学生对象添加到集合当中System.out.println("学生信息添加成功");}//删除学生public static void deleteStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);System.out.println("请输入要删除的学生的id");String uid = sc.next();//获取查询的id在集合中对应的索引int index = getIndex(list,uid);if(index >= 0){     //索引的值大于等于0,代表该id在集合中是存在的list.remove(index);  //根据索引,删除索引所对应的集合中的对象System.out.println("id为" + uid + "的学生删除成功");} else {System.out.println("id不存在,删除失败");}}//修改学生public static void updateStudent(ArrayList<Student> list){Scanner sc = new Scanner(System.in);String uid;System.out.println("请输入要修改的学生的id");uid = sc.next();//获取查询的id在集合中对应的索引int index = getIndex(list,uid);if(index == -1){System.out.println("要修改的id" + uid + "不存在");return ;}//代码执行到这的时候,说明要修改的id是存在的Student stu = list.get(index);  //根据索引,获得集合中对应的Student对象System.out.println("请输入新的名字");String newName = sc.next();stu.setName(newName);System.out.println("请输入新的年龄");int newAge = sc.nextInt();stu.setAge(newAge);System.out.println("请输入新的家庭地址");String newAdress = sc.next();stu.setAddress(newAdress);System.out.println("学生信息修改成功");}//查询学生public static void searchStudent(ArrayList<Student> list){if(list.size() == 0){System.out.println("当前无学生信息,请添加后再查询");return ;}//打印表头信息System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getId() + "\t\t" + s.getName() + "\t\t" +s.getAge() + "\t\t" + s.getAddress());}}//判断id是否已经存在,true表示存在public static boolean contions(ArrayList<Student> list,String id){
//        for (int i = 0; i < list.size(); i++) {
//            Student stu2 = list.get(i);
//            String uid = stu2.getId();
//            if(uid.equals(id)){
//                return true;
//            }
//        }
//        return false;return getIndex(list,id) >= 0;}//通过id获取对应的索引,返回值为对应的索引public static int getIndex(ArrayList<Student> list,String id){for (int i = 0; i < list.size(); i++) {Student stu2 = list.get(i);String uid = stu2.getId();if(uid.equals(id)){return i;}}return -1;}
}
package XSGLSJB;public class User {private String username;private String password;private String personid;private String phoneNumber;public User() {}public User(String username, String password, String personid, String phoneNumber) {this.username = username;this.password = password;this.personid = personid;this.phoneNumber = phoneNumber;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getPersonid() {return personid;}public void setPersonid(String personid) {this.personid = personid;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}
}
package XSGLSJB;import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;public class App {public static void main(String[] args) {ArrayList<User> list = new ArrayList<>();while (true) {System.out.println("欢迎来到学生管理系统");System.out.println("请选择操作:1 登录  2 注册  3 忘记密码  4 退出");Scanner sc = new Scanner(System.in);String choose = sc.next();switch (choose){case "1" :login(list); break; //直接输入方法名,然后alt+回车可直接生成方法case "2" :zhuce(list); break;case "3" :forgetpassword(list); break;case "4" :System.out.println("退出"); System.exit(0);default: System.out.println("没有此选项");}}}//忘记密码private static void forgetpassword(ArrayList<User> list) {Scanner sc = new Scanner(System.in);System.out.println("请输入用户名:");String userName = sc.next();//判断用户名是否存在boolean flag5 = contains(list,userName);if(!flag5){System.out.println("未注册,请先注册");return;}//键盘录入身份证号和手机号System.out.println("请输入身份证号:");String userID = sc.next();System.out.println("请输入手机号:");String userPhone = sc.next();//需要把用户对象先通过索引取出来int index = getindex(list,userName);    //根据输入用户名获得对应的索引User user = list.get(index);    //根据索引获得用户对象if(!(user.getPersonid().equalsIgnoreCase(userID) && user.getPhoneNumber().equals(userPhone))){System.out.println("身份证号或手机号错误,不能修改密码");return;}//代码到这里的时候,说明可以修改密码了String mima;while (true) {System.out.println("请输入新的密码:");mima = sc.next();System.out.println("请再次输入新的密码:");String mima2 = sc.next();if(mima.equals(mima2)){//System.out.println("两次输入密码一致");break;} else {System.out.println("两次密码输入不一致,请重新输入密码");continue;}}//直接修改即可user.setPassword(mima);System.out.println("修改密码成功");}//登录private static void login(ArrayList<User> list) {Scanner sc = new Scanner(System.in);for (int i = 0 ; i < 3 ; i++) {     //因为登录有3次机会,所以利用了for循环System.out.println("请输入用户名:");String userName = sc.next();//判断用户名是否存在boolean flag5 = contains(list,userName);if(!flag5){System.out.println("未注册,请先注册");return;}//代码到这,说明用户名存在,需要输入密码System.out.println("请输入密码");String password = sc.next();while (true) {//让用户输入验证码String rightCode = getCode();System.out.println("当前验证码为:" + rightCode);System.out.println("请输入验证码:");String code = sc.next();if(code.equalsIgnoreCase(rightCode)){//System.out.println("验证码输入正确");break;} else {System.out.println("验证码错误");continue;}}//验证码已经验证完毕,检测用户名和密码是否正确,集合中是否包含用户名和密码/**封装思想的应用,* 我们可以把一些零散的数据,封装成一个对象,* 以后传递参数的时候,只要传递一个整体就可以了,不需要管这些零散的数据*/User useInfo = new User(userName,password,null,null);boolean flag6 = checkUserInfo(list,useInfo);if(flag6){//true为存在,登录成功System.out.println("登录成功,可以开始使用学生管理系统了");/**创建对象调用方法,启动学生管理系统* 创建Dome类的对象,然后调用Dome中的startDome方法,* 和创建User类对象,调用User中的getUsername()等方法,原理是一样的*/Dome dd = new Dome();   //创建对象dd.startDome();     //根据对象,调用相应的方法break;} else {System.out.println("登录失败,用户名或密码错误");if(i == 2){System.out.println("当前帐号被锁定,请练习客服");return;     //当前账号被锁定后,直接结束方法即可} else {//因为有3次机会,当循环第一次执行时,已经用了一次机会,剩下2次机会,此时i的值为0,//所以输出剩下 2-i 次机会,  模板:剩余 ( n-1 - i ) 次机会System.out.println("剩下" + (2 - i) + "次机会");}}}}//注册public static void zhuce(ArrayList<User> list){//键盘录入用户名Scanner sc = new Scanner(System.in);/**开发细节:* 先验证格式是否正确,再验证是否唯一* 因为在以后所有的数据,都是存在数据库中,如果我们要校验,需要使用到网络资源。*///用户名输入String inName;  //如果inName定义在循环里面,它的作用只能是循环内,不方便直接添加到用户当中。while (true) {System.out.println("请输入用户名:");inName = sc.next();boolean flag1 = checkUsername(inName); //检验用户名格式是否正确if(!flag1){System.out.println("格式不正确,请重新输入");continue;}//代码执行到这时,表明用户名格式正确,接下来判断是否唯一//判断username在集合中是否已经存在boolean flag2 = contains(list,inName);if(flag2){//true,用户名存在System.out.println("用户名已经存在,请重新输入用户名");continue;} else {//false,用户名不存在//System.out.println("用户名可以使用");break;  //用户名可以使用时,不需要再输入,利用break跳出while循环,不再输入}}//密码输入String inmima1;while (true) {System.out.println("请输入密码:");inmima1 = sc.next();System.out.println("请再次输入密码:");String inmima2 = sc.next();if(!inmima1.equals(inmima2)){System.out.println("两次密码输入不一致,请重新输入");continue;} else{//System.out.println("两次密码输入一致,请输入其他数据");break;}}//身份证号码录入String inpersonID;while (true) {System.out.println("请输入身份证号");inpersonID = sc.next();boolean flag3 = checkPersonID(inpersonID);if(flag3){//System.out.println("身份证号码格式符合要求");break;} else {System.out.println("身份证号码不符合要求,请重新输入");continue;}}//手机号码录入String inPhoneNumber;while (true) {System.out.println("请输入手机号码:");inPhoneNumber = sc.next();boolean flag4 = checkPhoneNumber(inPhoneNumber);if(flag4){System.out.println("手机号码格式符合要求");break;} else {System.out.println("手机号码不符合要求,请重新输入");continue;}}//把用户属性添加到用户当中,进而添加到集合当中//若户名,密码,身份证号,手机号码都定义在循环内,则无法放到用户对象中User u = new User(inName,inmima1,inpersonID,inPhoneNumber);//把用户对象添加到集合中list.add(u);System.out.println("注册成功");//检查是否遍历成功,遍历集合printlist(list);}//定义一个方法,检测该整体在集合中是否存在,true为存在private static boolean checkUserInfo(ArrayList<User> list, User useInfo) {//遍历集合,判断用户是否存在,如果存在登录成功,如果不存在登录失败。for (int i = 0; i < list.size(); i++) {User uu = list.get(i);if(uu.getUsername().equals(useInfo.getUsername()) && (uu.getPassword().equals(useInfo.getPassword()))){return true;}}return false;}//打印集合中的内容private static void printlist(ArrayList<User> list) {for (int i = 0; i < list.size(); i++) {User us = list.get(i);System.out.println(us.getUsername() + "," + us.getPassword() + ","+ us.getPersonid() + "," + us.getPhoneNumber());}}//判断手机号码格式是否符合要求,true为符合private static boolean checkPhoneNumber(String inPhoneNumber) {int len = inPhoneNumber.length();//判断是否为11位if(len != 11){return false;}//判断开头是否为0if(inPhoneNumber.startsWith("0")){return false;}//判断是否都是数字for (int i = 0; i < inPhoneNumber.length(); i++) {char c = inPhoneNumber.charAt(i);if(!(c >= '0' && c <= '9')){return false;}}return true;}//检测身份证号码格式是否符合要求,true为符合要求private static boolean checkPersonID(String personID) {//长度为18if(personID.length() != 18){return false;}//不能以0开头char startch = personID.charAt(0);//boolean c = personID.startsWith("9");  //判断字符串第一个元素是否为9if(startch == '0'){return false;}//前17位必须为数字for (int i = 0; i < personID.length() - 1 ; i++) {char c2 = personID.charAt(i);if(!(c2 >= '0' && c2 <= '9')){return false;}}//最后一位可以是数字,也可以是X或xchar endch = personID.charAt(personID.length() - 1 );if(!((endch >= '0' && endch <= '9') || (endch == 'X') || (endch == 'x'))){return  false;}return true;   //true为格式符合要求}//判断用户名在集合中是否已经存在,true为存在private static boolean contains(ArrayList<User> list,String username) {for (int i = 0; i < list.size(); i++) {User u = list.get(i);String jhname = u.getUsername();if(username.equals(jhname)){return true;  //表示用户名在集合中已经存在}}return false; //表示用户名在集合中不存在}//检测用户名是否符合规范,true为符合规范private static boolean checkUsername(String username) {//判断用户名长度为3~15int len = username.length();if(len < 3 || len >15){return false;}//当代码执行到这里,表示用户名长度符合要求//判断用户名格式为字母+数字for (int i = 0; i < username.length(); i++) {char c = username.charAt(i);if(!((c>='a'&&c<='z') ||(c>='A'&&c<='Z')||(c>='0'&&c<='9'))){return false;}}//当代码执行到这里,表示用户名长度符合要求,而且是字母+数字的组合方式//判断是否全部为数字,当字母个数大于0时,即可满足要求int count = 0;for (int i = 0; i < username.length(); i++) {char c = username.charAt(i);if((c>='a'&&c<='z') ||(c>='A'&&c<='Z')){count++;break;  //if执行时表示已经有字母存在,此时可以直接跳出for循环}}return count >0 ;}//根据用户名找出其在集合中的索引,返回值为索引public static int getindex(ArrayList<User> list,String userName){for (int i = 0; i < list.size(); i++) {User u = list.get(i);String un = u.getUsername();if(un.equals(userName)){return i;}}return -1;}//生成验证码private static String getCode(){//1、创建一个集合,添加所有的大写和小写字母ArrayList<Character> list = new ArrayList<>();//往集合内添加英文字母for (int i = 0; i < 26; i++) {list.add((char)('a' + i));list.add((char)('A' + i));}//随机抽取4个字符StringBuilder sb = new StringBuilder(); //创建字符串容器Random r = new Random();for (int i = 0; i < 4; i++) {//获取随机字母int index = r.nextInt(list.size());//利用随即索引获取字符char  c = list.get(index);sb.append(c);   //将字符拼接到字符串容器中}//把一个随机数字添加到末尾int number = r.nextInt(10);sb.append(number);//调整验证码中数字的位置/**如果我们要修改字符串中的内容* 先把字符串变成字符数组,在数组中修改,然后再创建一个新的字符串*/String newsb = sb.toString();   //将sb变成字符串newsbchar[] arr = newsb.toCharArray();   //将字符串newsb变成字符数组arr[]//用最后一个索引与前面的索引随机调换int randomIndex = r.nextInt(arr.length);char temp = arr[randomIndex];arr[randomIndex] = arr[arr.length - 1];arr[arr.length - 1] = temp;String result = new String(arr);  //将字符数组转化为字符串return result;}
}

黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day12-学生管理系统相关推荐

  1. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day10-字符串

    1.API和API帮助文档 API:应用程序接口. 简单理解:API就是别人已经写好的东西,我们不需要自己编写,直接使用即可. JavaAPI:指的就是JDK中提供的各种功能的Java类.这些类将底层 ...

  2. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day15-阶段项目(拼图小游戏)(上篇)

    1.主界面分析 1.练习:创建主界面1 到IDEA中创建一个宽603像素,高680像素的游戏主界面 到IDEA中创建一个宽488像素,高430像素的登录界面 到IDEA中创建一个宽488像素,高500 ...

  3. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day14-面向对象进阶02

    1.权限修饰符和代码块 1.1 权限修饰符 权限修饰符:是用来控制一个成员能够被访问的范围的. 可以修饰:成员变量.方法.构造方法.内部类. 巧计举例: private--------私有的----- ...

  4. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day7-综合练习

    1.卖飞机票 需求:机票价格按照淡季旺季.头等舱和经济舱收费.输入机票原价.月份和头等舱或者经济舱. 按照如下规则进行计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折:淡季(11月到来年4月 ...

  5. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day4-判断和循环

    1.顺序结构 顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行. 2.分支结构 1.if语句 (1).if语句的第一种格式,格式如下: if (关系表达式){语句体; } ...

  6. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day11-ArrayList集合

    1.集合的基本应用 数组的长度是固定的,集合的长度是可变的,集合具有自动扩容的功能. 数组可以存基本数据类型和引用数据类型,集合只能存储引用数据类型,基本数据类型只有设置成包装类才能存储在集合当中. ...

  7. 黑马程序员Java零基础视频教程_下部(P52-P134)

    黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...

  8. 黑马程序员Java零基础视频教程_下部(P135-P200)

    黑马程序员Java零基础视频教程_下部(P135-P200) 1 多线程 1.1 什么是多线程? 1.2 多线程的并发与并行 1.3 多线程的实现方式 1.3.1 继承Thread类的方式进行实现 1 ...

  9. 黑马程序员Java零基础视频教程_上部(P1-P80)

    黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...

最新文章

  1. WeApp-Workflow:基于Gulp 的“微信小程序”前端开发工作流
  2. 深度linux卡在扫描硬盘,linux使用badblocks命令扫描硬盘排除故障
  3. Python之 jinja2模板浅析
  4. 沙溪理工学校计算机,学雷锋树新风——沙溪理工学校计算机部开展学雷锋活动...
  5. 【完结】 12篇文章带你完全进入NLP领域,掌握核心技术
  6. 轻松构建复杂数据集,永洪自服务数据查询功能详解
  7. javascript-排序算法
  8. 使用Apache Isis快速进行SEMAT应用程序开发
  9. angularJS+requireJS实现controller及directive的按需加载
  10. 《你不常用的c#之五》:Thread与ThreadPool的内存之战
  11. 如何提升 CSS 性能的小知识
  12. 【git】建git仓库
  13. TypeScript:数组
  14. ElasticSearch倒排索引原理揭秘——基于mapreduce实现自己的倒排索引
  15. 扇贝有道180924每日一句
  16. Tomcat无法成功启动startup.bat解决方法(闪退)
  17. numpy库的安装方法
  18. TwinCAT 3 基础——编程基础
  19. java rds 数据库_java项目连接rds数据库
  20. 免费图片转pdf的方法?学会图片转pdf很重要

热门文章

  1. 一文带你掌握Tcpdump命令的使用
  2. 基于echarts制作的洛阳市3D地图
  3. freeswitch SIP内呼与外呼配置
  4. python 构造函数传入多变量
  5. 2022年12月电子学会Python等级考试试卷(三级)答案解析
  6. 学生个人主页网站模板下载 个人简历网页制作 个人博客网页设计作4网页精选
  7. ng4中npm start和ng serve--open
  8. CSS中伪元素、伪类选择器和字体、文本相关属性
  9. 判断一段文字中是否包含某些关键词
  10. 亚马逊和光环新网破裂_亚马逊光环人体扫描功能不仅危险,而且也没有用