diff --git a/day08/src/com/inmind/static02/Demo11.java b/day08/src/com/inmind/static02/Demo11.java index 712359e..4a69c9f 100644 --- a/day08/src/com/inmind/static02/Demo11.java +++ b/day08/src/com/inmind/static02/Demo11.java @@ -22,6 +22,7 @@ public class Demo11 { Student s1 = new Student(); Student s2 = new Student(); Student s3 = new Student(); + Student.clazz = "1903室"; //询问3个同学的学号分别是什么 System.out.println(s1.id); System.out.println(s2.id); diff --git a/day08/src/com/inmind/static02/Demo12.java b/day08/src/com/inmind/static02/Demo12.java new file mode 100644 index 0000000..671271e --- /dev/null +++ b/day08/src/com/inmind/static02/Demo12.java @@ -0,0 +1,30 @@ +package com.inmind.static02; +/* +静态代码块: +定义在成员位置,使用static修饰的代码块{ }。 +位置:类中方法外。 +执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。 + +格式: +static{ + java语句; +} + + 静态代码块的作用:在程序运行之前,就进行一些操作,常用于对静态变量的初始化操作,后期工作中 +常用于对配置文件的值赋值操作 + */ +public class Demo12 { + + //静态代码块 + static { + System.out.println("静态代码块执行了"); + } + + public static void main(String[] args) { + System.out.println("main方法开始了"); + Student s = new Student(); + s.show2(); + + System.out.println("程序结束"); + } +} diff --git a/day08/src/com/inmind/static02/Student.java b/day08/src/com/inmind/static02/Student.java index 8a46d0a..f7d5fa6 100644 --- a/day08/src/com/inmind/static02/Student.java +++ b/day08/src/com/inmind/static02/Student.java @@ -10,6 +10,15 @@ public class Student { //静态变量 static int studentCount; + public static void show(){ + System.out.println(studentCount); + System.out.println(clazz); + show1(); +// System.out.println(this);//静态方法中,不能使用this关键字。 +// System.out.println(name); 成员变量和成员方法在静态方法中都不能访问 +// show2(); + } + public Student(String name, int age, int id) { this.name = name; @@ -19,6 +28,7 @@ public class Student { } public Student() { + System.out.println("学生类的无参构造方法执行了"); //每次创建一个新的学生,都让共享的学生总数静态变量自增1 studentCount++; this.id = studentCount; @@ -26,21 +36,12 @@ public class Student { //静态方法 类方法 - /* 静态方法调用的注意事项: 1.静态方法可以直接访问类变量(静态变量)和静态方法。 2.静态方法不能直接访问普通成员变量或成员方法。静态方法只能访问静态内容,反之,成员方法可以直接访问静态变量或静态方法。 3.静态方法中,不能使用this关键字。 */ - public static void show(){ - System.out.println(studentCount); - System.out.println(clazz); - show1(); -// System.out.println(this);//静态方法中,不能使用this关键字。 -// System.out.println(name); 成员变量和成员方法在静态方法中都不能访问 -// show2(); - } public static void show1(){ } diff --git a/day08/src/com/inmind/static02/Test13.java b/day08/src/com/inmind/static02/Test13.java new file mode 100644 index 0000000..f999498 --- /dev/null +++ b/day08/src/com/inmind/static02/Test13.java @@ -0,0 +1,67 @@ +package com.inmind.static02; + +import java.util.ArrayList; +import java.util.Scanner; + +/* +模拟用户登录。 +* 定义用户类,属性为用户名和密码。 +* 使用集合存储多个用户对象。 +* 录入用户和密码,对比用户信息,匹配成功登录成功,否则登录失败。 +* 登录失败时,当用户名错误,提示没有该用户。 +* 登录失败时,当密码错误时,提示密码有误。 + */ +public class Test13 { + static ArrayList users = new ArrayList<>();//静态变量 + + //我要求,在主程序开始运行之前,就准备好一些可以登录的用户对象 + // 静态代码块的作用:在程序运行之前,就进行一些操作,常用于对静态变量的初始化操作 + static { + users.add(new User("张三", "12346")); + users.add(new User("李四", "12346")); + users.add(new User("王五", "12346")); + } + + + public static void main(String[] args) { + //录入用户和密码,对比用户信息,匹配成功登录成功,否则登录失败。 + Scanner sc = new Scanner(System.in); + System.out.println("请输入用户名:"); + String username = sc.nextLine(); + System.out.println("请输入密码:"); + String password = sc.nextLine(); + User user = new User(username, password); + //定义一个接收用户的方法,判断是否登录成功 + boolean result = login(user); + System.out.println("是否登录成功:"+result); + } + + public static boolean login(User user) { + //判断用户名和密码 + String password = user.getPassword(); + String username = user.getUsername(); + boolean result = false; + + //遍历已经定义好的用户信息,如果一致则成功,否则失败 + for (int i = 0; i < users.size(); i++) { + //获取每个用户,一一比对 + User u = users.get(i); + if (u.getUsername().equals(username)) { + //判断密码 + if (u.getPassword().equals(password)) { + result = true; +// break; + } else { + System.out.println("密码不正确"); +// break; + } + break; + } + } + + /*if (!result) { + System.out.println("用户名不正确"); + }*/ + return result; + } +} diff --git a/day08/src/com/inmind/static02/User.java b/day08/src/com/inmind/static02/User.java new file mode 100644 index 0000000..4201d0a --- /dev/null +++ b/day08/src/com/inmind/static02/User.java @@ -0,0 +1,30 @@ +package com.inmind.static02; + +public class User { + private String username; + private String password; + + public User() { + } + + public User(String username, String password) { + this.username = username; + this.password = password; + } + + 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; + } +}