xerga 1 年之前
父節點
當前提交
80d68a6bb8
共有 84 個文件被更改,包括 2895 次插入0 次删除
  1. 3 0
      JavaSE/.idea/modules.xml
  2. 8 0
      JavaSE/day10.iml
  3. 11 0
      JavaSE/day10/day10.iml
  4. 16 0
      JavaSE/day10/src/com/lc/day10/abs01/Animal.java
  5. 15 0
      JavaSE/day10/src/com/lc/day10/abs01/Cat.java
  6. 15 0
      JavaSE/day10/src/com/lc/day10/abs01/Dog.java
  7. 20 0
      JavaSE/day10/src/com/lc/day10/abs01/Test01.java
  8. 59 0
      JavaSE/day10/src/com/lc/day10/abs02/Test01.java
  9. 27 0
      JavaSE/day10/src/com/lc/day10/dt01/Animal.java
  10. 23 0
      JavaSE/day10/src/com/lc/day10/dt01/Cat.java
  11. 22 0
      JavaSE/day10/src/com/lc/day10/dt01/Dog.java
  12. 25 0
      JavaSE/day10/src/com/lc/day10/dt01/Test01.java
  13. 27 0
      JavaSE/day10/src/com/lc/day10/dt02/Animal.java
  14. 29 0
      JavaSE/day10/src/com/lc/day10/dt02/Cat.java
  15. 31 0
      JavaSE/day10/src/com/lc/day10/dt02/Test01.java
  16. 22 0
      JavaSE/day10/src/com/lc/day10/dt03/Animal.java
  17. 28 0
      JavaSE/day10/src/com/lc/day10/dt03/Cat.java
  18. 28 0
      JavaSE/day10/src/com/lc/day10/dt03/Dog.java
  19. 42 0
      JavaSE/day10/src/com/lc/day10/dt03/PetShop.java
  20. 37 0
      JavaSE/day10/src/com/lc/day10/dt03/Test01.java
  21. 20 0
      JavaSE/day10/src/com/lc/day10/dt04/Apple.java
  22. 20 0
      JavaSE/day10/src/com/lc/day10/dt04/Fruit.java
  23. 21 0
      JavaSE/day10/src/com/lc/day10/dt04/Ginseng.java
  24. 19 0
      JavaSE/day10/src/com/lc/day10/dt04/Ordinary.java
  25. 41 0
      JavaSE/day10/src/com/lc/day10/dt04/Test01.java
  26. 59 0
      JavaSE/day10/src/com/lc/day10/dt04/Worker.java
  27. 75 0
      JavaSE/day10/src/com/lc/day10/dt05/Test01.java
  28. 55 0
      JavaSE/day10/src/com/lc/day10/dt06/Test01.java
  29. 44 0
      JavaSE/day10/src/com/lc/day10/interface01/HuaweiPhone.java
  30. 46 0
      JavaSE/day10/src/com/lc/day10/interface01/PhoneInterface.java
  31. 30 0
      JavaSE/day10/src/com/lc/day10/interface01/Test.java
  32. 11 0
      JavaSE/day11/day11.iml
  33. 49 0
      JavaSE/day11/src/com/day11/enum10/Test.java
  34. 45 0
      JavaSE/day11/src/com/day11/enum10/Week.java
  35. 54 0
      JavaSE/day11/src/com/day11/ex/Produt.java
  36. 40 0
      JavaSE/day11/src/com/day11/ex/Test.java
  37. 25 0
      JavaSE/day11/src/com/day11/ex1/MyCompartorAge.java
  38. 25 0
      JavaSE/day11/src/com/day11/ex1/MyCompartorName.java
  39. 28 0
      JavaSE/day11/src/com/day11/ex1/Person.java
  40. 42 0
      JavaSE/day11/src/com/day11/ex1/Test.java
  41. 56 0
      JavaSE/day11/src/com/day11/ex2/ArrayTools.java
  42. 21 0
      JavaSE/day11/src/com/day11/ex2/ComparatorSalary.java
  43. 73 0
      JavaSE/day11/src/com/day11/ex2/Employee.java
  44. 65 0
      JavaSE/day11/src/com/day11/ex2/Test.java
  45. 31 0
      JavaSE/day11/src/com/day11/ex3/Test01.java
  46. 20 0
      JavaSE/day11/src/com/day11/inner05/Test.java
  47. 29 0
      JavaSE/day11/src/com/day11/inner06/Outer.java
  48. 21 0
      JavaSE/day11/src/com/day11/inner06/Test.java
  49. 29 0
      JavaSE/day11/src/com/day11/inner07/Outer.java
  50. 19 0
      JavaSE/day11/src/com/day11/inner07/Test.java
  51. 40 0
      JavaSE/day11/src/com/day11/inner08/Test.java
  52. 15 0
      JavaSE/day11/src/com/day11/inner09/Person.java
  53. 14 0
      JavaSE/day11/src/com/day11/inner09/Swming.java
  54. 54 0
      JavaSE/day11/src/com/day11/inner09/Test.java
  55. 58 0
      JavaSE/day11/src/com/day11/inter01/Test01.java
  56. 41 0
      JavaSE/day11/src/com/day11/inter02/a/Test01.java
  57. 38 0
      JavaSE/day11/src/com/day11/inter02/b/Test01.java
  58. 31 0
      JavaSE/day11/src/com/day11/inter02/c/Test01.java
  59. 29 0
      JavaSE/day11/src/com/day11/inter03/Test01.java
  60. 34 0
      JavaSE/day11/src/com/day11/inter03/Test02.java
  61. 34 0
      JavaSE/day11/src/com/day11/inter04/Student.java
  62. 30 0
      JavaSE/day11/src/com/day11/inter04/Test.java
  63. 11 0
      JavaSE/day12/day12.iml
  64. 53 0
      JavaSE/day12/src/com/lc/day12/obj05/Person.java
  65. 51 0
      JavaSE/day12/src/com/lc/day12/obj05/Test.java
  66. 14 0
      JavaSE/day12/src/com/lc/day12/obj06/Person.java
  67. 41 0
      JavaSE/day12/src/com/lc/day12/obj06/Test01.java
  68. 24 0
      JavaSE/day12/src/com/lc/day12/obj07/Person.java
  69. 27 0
      JavaSE/day12/src/com/lc/day12/obj07/Test.java
  70. 19 0
      JavaSE/day12/src/com/lc/day12/obj08/Person.java
  71. 23 0
      JavaSE/day12/src/com/lc/day12/obj08/Test.java
  72. 33 0
      JavaSE/day12/src/com/lc/day12/string09/Test.java
  73. 23 0
      JavaSE/day12/src/com/lc/day12/string09/Test01.java
  74. 15 0
      JavaSE/day12/src/com/lc/day12/string10/Person.java
  75. 59 0
      JavaSE/day12/src/com/lc/day12/string10/Test.java
  76. 28 0
      JavaSE/day12/src/com/lc/day12/string10/Test01.java
  77. 170 0
      JavaSE/day12/src/com/lc/day12/test/TestUser.java
  78. 54 0
      JavaSE/day12/src/com/lc/day12/throwable01/Test01.java
  79. 25 0
      JavaSE/day12/src/com/lc/day12/throwable02/Test.java
  80. 79 0
      JavaSE/day12/src/com/lc/day12/throwable03/Test01.java
  81. 42 0
      JavaSE/day12/src/com/lc/day12/throwable03/Test02.java
  82. 24 0
      JavaSE/day12/src/com/lc/day12/throwable04/Test01.java
  83. 44 0
      JavaSE/day12/src/com/lc/day12/throwable04/Triangle.java
  84. 17 0
      JavaSE/day12/src/com/lc/day12/throwable04/TriangleException.java

+ 3 - 0
JavaSE/.idea/modules.xml

@@ -12,6 +12,9 @@
       <module fileurl="file://$PROJECT_DIR$/day07/day07.iml" filepath="$PROJECT_DIR$/day07/day07.iml" />
       <module fileurl="file://$PROJECT_DIR$/day08/day08.iml" filepath="$PROJECT_DIR$/day08/day08.iml" />
       <module fileurl="file://$PROJECT_DIR$/day09/day09.iml" filepath="$PROJECT_DIR$/day09/day09.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day10/day10.iml" filepath="$PROJECT_DIR$/day10/day10.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day11/day11.iml" filepath="$PROJECT_DIR$/day11/day11.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day12/day12.iml" filepath="$PROJECT_DIR$/day12/day12.iml" />
     </modules>
   </component>
 </project>

+ 8 - 0
JavaSE/day10.iml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$/day10" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 11 - 0
JavaSE/day10/day10.iml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 16 - 0
JavaSE/day10/src/com/lc/day10/abs01/Animal.java

@@ -0,0 +1,16 @@
+package com.lc.day10.abs01;
+
+/**
+ * ClassName: Animal
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 14:47
+ * @Version 1.0
+ */
+public abstract class Animal {
+
+    //吃的行为。
+    public abstract void eat();
+
+
+}

+ 15 - 0
JavaSE/day10/src/com/lc/day10/abs01/Cat.java

@@ -0,0 +1,15 @@
+package com.lc.day10.abs01;
+
+/**
+ * ClassName: Cat
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 14:49
+ * @Version 1.0
+ */
+public class Cat extends Animal{
+    @Override
+    public void eat() {
+        System.out.println("猫吃鱼");
+    }
+}

+ 15 - 0
JavaSE/day10/src/com/lc/day10/abs01/Dog.java

@@ -0,0 +1,15 @@
+package com.lc.day10.abs01;
+
+/**
+ * ClassName: Dog
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 14:48
+ * @Version 1.0
+ */
+public class Dog extends Animal{//继承Animal
+    @Override
+    public void eat() {  //吃的体现
+        System.out.println("狗吃肉");
+    }
+}

+ 20 - 0
JavaSE/day10/src/com/lc/day10/abs01/Test01.java

@@ -0,0 +1,20 @@
+package com.lc.day10.abs01;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 14:47
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+        // 多态
+        Animal dog = new Dog();
+
+        dog.eat();
+
+    }
+
+}

+ 59 - 0
JavaSE/day10/src/com/lc/day10/abs02/Test01.java

@@ -0,0 +1,59 @@
+package com.lc.day10.abs02;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 15:17
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+        //抽象类**不能创建对象**
+        // A a = new A();
+
+        //有构造方法,是供子类创建对象时
+        //抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
+
+        //抽象类的子类,必须重写抽象父类中**所有的**抽象方法
+
+    }
+
+}
+
+abstract class A {
+
+    String name;
+
+    public A(String name) {
+        this.name = name;
+    }
+}
+
+abstract class B{
+    abstract void  method();
+
+    //限制子类的参数和返回值
+    abstract String methoda( String name );
+}
+
+class C extends B {
+
+    @Override
+    void method() {
+        System.out.println("hello");
+    }
+
+    @Override
+    String methoda(String name) {
+        return null;
+    }
+
+
+}
+
+abstract class D extends B {
+
+}
+

+ 27 - 0
JavaSE/day10/src/com/lc/day10/dt01/Animal.java

@@ -0,0 +1,27 @@
+package com.lc.day10.dt01;
+
+/**
+ * ClassName: Animal
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:55
+ * @Version 1.0
+ */
+public class Animal {
+    //属性
+    String name;
+    String age;
+
+    //行为
+    public void eat(){
+        System.out.println("动物吃饭");
+    }
+
+    public void run(){
+        System.out.println("动物奔跑");
+    }
+
+
+
+
+}

+ 23 - 0
JavaSE/day10/src/com/lc/day10/dt01/Cat.java

@@ -0,0 +1,23 @@
+package com.lc.day10.dt01;
+
+/**
+ * ClassName: Cat
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:56
+ * @Version 1.0
+ */
+public class Cat extends Animal{
+
+    //重写
+
+    @Override
+    public void eat() {
+        System.out.println("猫吃鱼");
+    }
+
+    @Override
+    public void run() {
+        System.out.println("小猫跑");
+    }
+}

+ 22 - 0
JavaSE/day10/src/com/lc/day10/dt01/Dog.java

@@ -0,0 +1,22 @@
+package com.lc.day10.dt01;
+
+/**
+ * ClassName: Dog
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:57
+ * @Version 1.0
+ */
+public class Dog extends Animal{
+
+    @Override
+    public void eat() {
+        System.out.println("狗吃肉");
+    }
+
+    @Override
+    public void run() {
+        System.out.println("小狗跑");
+    }
+
+}

+ 25 - 0
JavaSE/day10/src/com/lc/day10/dt01/Test01.java

@@ -0,0 +1,25 @@
+package com.lc.day10.dt01;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:54
+ * @Version 1.0
+ */
+public class Test01 {
+
+    //多态
+    public static void main(String[] args) {
+        //声明父类  new 子类
+        Animal dog = new Dog();
+
+        Animal cat = new Cat();
+
+        //同一行为 父类的行为。表现在子类上  重写
+        dog.eat();
+        cat.eat();
+
+    }
+
+}

+ 27 - 0
JavaSE/day10/src/com/lc/day10/dt02/Animal.java

@@ -0,0 +1,27 @@
+package com.lc.day10.dt02;
+
+/**
+ * ClassName: Animal
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:55
+ * @Version 1.0
+ */
+public class Animal {
+    //属性
+    String name = "animal";
+    String age;
+
+    //行为
+    public void eat(){
+        System.out.println("动物吃饭");
+    }
+
+    public void run(){
+        System.out.println("动物奔跑");
+    }
+
+
+
+
+}

+ 29 - 0
JavaSE/day10/src/com/lc/day10/dt02/Cat.java

@@ -0,0 +1,29 @@
+package com.lc.day10.dt02;
+
+/**
+ * ClassName: Cat
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:56
+ * @Version 1.0
+ */
+public class Cat extends Animal {
+    //属性
+    String name = "cat";
+
+
+    //重写
+    @Override
+    public void eat() {
+        System.out.println("猫吃鱼");
+    }
+
+    @Override
+    public void run() {
+        System.out.println("小猫跑");
+    }
+
+    public void sleep(){
+        System.out.println("sleep");
+    }
+}

+ 31 - 0
JavaSE/day10/src/com/lc/day10/dt02/Test01.java

@@ -0,0 +1,31 @@
+package com.lc.day10.dt02;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 9:54
+ * @Version 1.0
+ */
+public class Test01 {
+
+    //多态
+    public static void main(String[] args) {
+        //多态
+        Animal animal = new Cat();
+
+        //调用成员变量时:编译看左边 父类 ,运行看左边 父类
+        System.out.println(animal.name); //父类中没有name属性 父类和子类中 进制相同的属性名称。
+
+        //调用成员方法时:编译看左边 父类,运行看右边 子类
+        animal.eat(); //父类
+
+
+        //调用特有的方法
+        //animal.sleep(); //编译看左边
+
+        //缺点:不能 运行子类特有的方法。
+
+    }
+
+}

+ 22 - 0
JavaSE/day10/src/com/lc/day10/dt03/Animal.java

@@ -0,0 +1,22 @@
+package com.lc.day10.dt03;
+
+/**
+ * ClassName: Animal
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 10:42
+ * @Version 1.0
+ */
+public class Animal {
+
+    String name;
+
+    public void show(){
+        System.out.println("动物");
+    }
+
+    public void arithmetic( int a ,int b ){
+        System.out.println("动物可以进行算数");
+    }
+
+}

+ 28 - 0
JavaSE/day10/src/com/lc/day10/dt03/Cat.java

@@ -0,0 +1,28 @@
+package com.lc.day10.dt03;
+
+/**
+ * ClassName: Dog
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 10:42
+ * @Version 1.0
+ */
+public class Cat extends Animal{
+
+    public Cat() {
+    }
+
+    public Cat(String name ) {
+        this.name = name;
+    }
+
+    @Override
+    public void show() {
+        System.out.println(name + ":Cat show");
+    }
+
+    @Override
+    public void arithmetic( int a , int b ) {
+        System.out.println("加法运算:"+ (a + b));
+    }
+}

+ 28 - 0
JavaSE/day10/src/com/lc/day10/dt03/Dog.java

@@ -0,0 +1,28 @@
+package com.lc.day10.dt03;
+
+/**
+ * ClassName: Dog
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 10:42
+ * @Version 1.0
+ */
+public class Dog extends Animal{
+
+    public Dog() {
+    }
+
+    public Dog( String name ) {
+        this.name = name;
+    }
+
+    @Override
+    public void show() {
+        System.out.println(name + ":Dog show");
+    }
+
+    @Override
+    public void arithmetic(int a, int b) {
+        System.out.println("乘法运算:"+ (a * b));
+    }
+}

+ 42 - 0
JavaSE/day10/src/com/lc/day10/dt03/PetShop.java

@@ -0,0 +1,42 @@
+package com.lc.day10.dt03;
+
+
+
+/**
+ * ClassName: PetShop
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 10:40
+ * @Version 1.0
+ */
+public class PetShop {
+
+    //方法的形参是一个非抽象类时,在调用方法时,可以传递父类对象,可以传递所有的子类对象。
+    //寄养
+    public static void foster(Animal animal){
+
+        //Animal animal = dog 多态
+        animal.show();
+    }
+
+    //实现 算数
+    public static void show(Animal animal , int a, int b){
+        animal.arithmetic(a,b);
+    }
+
+
+
+    //领养
+    public static Animal adopt( String name ){
+        if (name.equals("狗")){
+            return new Dog("哈士奇");
+        }else if (name.equals("猫")){
+            return new Cat("猫猫");
+        }else  {
+            System.out.println("没有这个动物");
+            return null;
+        }
+    }
+
+
+}

+ 37 - 0
JavaSE/day10/src/com/lc/day10/dt03/Test01.java

@@ -0,0 +1,37 @@
+package com.lc.day10.dt03;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 10:44
+ * @Version 1.0
+ */
+public class Test01 {
+    public static void main(String[] args) {
+        Dog dog = new Dog("旺财");
+
+        Cat cat = new Cat("加菲");
+        //参数
+        PetShop.foster(dog);
+
+        PetShop.foster(cat);
+
+        //实现不同的逻辑
+        PetShop.show(dog,10,10);
+        PetShop.show(cat,10,10);
+
+
+        //领养方法
+
+        //多态
+        Animal dog1 = PetShop.adopt("狗");
+        //Animal dog1 = new Dog();
+
+        dog1.show();
+
+        Animal cat1 = PetShop.adopt("猫");
+        cat1.show();
+
+    }
+}

+ 20 - 0
JavaSE/day10/src/com/lc/day10/dt04/Apple.java

@@ -0,0 +1,20 @@
+package com.lc.day10.dt04;
+
+/**
+ * ClassName: Apple
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:42
+ * @Version 1.0
+ */
+public class Apple extends Fruit{
+
+    public Apple( String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String showTaste() {
+        return "脆 甜";
+    }
+}

+ 20 - 0
JavaSE/day10/src/com/lc/day10/dt04/Fruit.java

@@ -0,0 +1,20 @@
+package com.lc.day10.dt04;
+
+/**
+ * ClassName: Fruit
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:41
+ * @Version 1.0
+ */
+public class Fruit {
+    String name;
+
+    public String showTaste(){
+        return "";
+    }
+
+    public String toString(){
+        return name +":"+ showTaste();
+    }
+}

+ 21 - 0
JavaSE/day10/src/com/lc/day10/dt04/Ginseng.java

@@ -0,0 +1,21 @@
+package com.lc.day10.dt04;
+
+/**
+ * ClassName: Ginseng
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:43
+ * @Version 1.0
+ */
+public class Ginseng extends Fruit{
+
+    public Ginseng( String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String showTaste() {
+        return "水分充足 很甜";
+    }
+
+}

+ 19 - 0
JavaSE/day10/src/com/lc/day10/dt04/Ordinary.java

@@ -0,0 +1,19 @@
+package com.lc.day10.dt04;
+
+/**
+ * ClassName: Ordinary
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:44
+ * @Version 1.0
+ */
+public class Ordinary extends Fruit{
+
+    public Ordinary( String name) {
+        this.name = name;
+    }
+    @Override
+    public String showTaste() {
+        return "酸 甜";
+    }
+}

+ 41 - 0
JavaSE/day10/src/com/lc/day10/dt04/Test01.java

@@ -0,0 +1,41 @@
+package com.lc.day10.dt04;
+
+import java.util.Arrays;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:59
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+
+        Apple a1 = new Apple("苹果1");
+        Apple a2 = new Apple("苹果2");
+
+        Ginseng g1 = new Ginseng("人参1");
+        Ginseng g2 = new Ginseng("人参2");
+
+        Worker.plantingFruit(a1);
+        Worker.plantingFruit(a2);
+        Worker.plantingFruit(g1);
+        Worker.plantingFruit(g2);
+
+        //看
+        System.out.println(Arrays.toString(Worker.fruits));
+
+        // 摘水果
+
+        Fruit fruit = Worker.plantingFruit("苹果1");
+
+        String s = fruit.showTaste();
+        System.out.println(s);
+
+        //看
+        System.out.println(Arrays.toString(Worker.fruits));
+
+    }
+}

+ 59 - 0
JavaSE/day10/src/com/lc/day10/dt04/Worker.java

@@ -0,0 +1,59 @@
+package com.lc.day10.dt04;
+
+import java.util.Arrays;
+
+import static java.lang.System.*;
+
+/**
+ * ClassName: Worker
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 11:45
+ * @Version 1.0
+ */
+public class Worker {
+    //水果集合
+    static Fruit[] fruits = new Fruit[10];
+
+    //索引
+    static int count = 0;
+
+    public static void plantingFruit( Fruit f ){
+        fruits[count++] = f;
+    }
+
+    public static Fruit plantingFruit( String name ){
+        int index = getFruitName(name);
+        Fruit fruit = fruits[index];
+        //删除
+        // [1,2,3,4] a  原数组  arraycopy  a , 0 , a ,
+        // [0,1,0,0]  新数组
+        arraycopy(fruits, index+1, fruits, index, count-index);
+        //位置置为空
+        fruits[count] = null;
+        count--;
+        //返回
+        return fruit;
+    }
+
+    public static int getFruitName(String name){
+        for (int i = 0; i < count; i++) {
+            if (fruits[i].name.equals(name)){
+                return i;
+            }
+        }
+
+        return -1;
+    }
+
+
+    public static void main(String[] args) {
+        int[] arr1 = {1,2,3,4}; // {1,3,4}
+
+        System.arraycopy(arr1,3, arr1, 2, 1);
+
+        System.out.println(Arrays.toString(arr1));
+
+    }
+
+}

+ 75 - 0
JavaSE/day10/src/com/lc/day10/dt05/Test01.java

@@ -0,0 +1,75 @@
+package com.lc.day10.dt05;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 13:34
+ * @Version 1.0
+ */
+public class Test01 {
+    public static void main(String[] args) {
+        //多态
+        A a = new B();
+
+        a.test();
+
+        //不是父类的声明方法。不可以调用
+        //a.testB();
+
+
+        //new B
+        B b = new B();
+        //自动 多态
+        A  a1 = b;
+
+        //强制转换
+        B b1 = (B) a1;
+        b1.testB();
+
+        //转换 C  //ClassCastException
+        //C c1 = (C) a1;
+
+//        //解决类型转换异常  instanceof
+//        if (a1 instanceof C ) {
+//            C c1 = (C) a1;
+//            c1.testC();
+//        }
+//
+//        if (a1 instanceof B ) { //instanceof 检查类型
+//            B b2 = (B) a1;
+//            b2.testB();
+//        }
+        if (a1 instanceof B b3 ) { //instanceof 检查类型 b3
+            //B b2 = (B) a1; 省略 转换
+            b3.testB();
+        }
+    }
+
+
+}
+
+class A {
+    public void test() {
+
+    }
+
+
+}
+
+class B extends A {
+
+    public void test() {
+
+    }
+    //子类种特有的方法
+    public void testB() {
+        System.out.println("testB");
+    }
+}
+class C extends A {
+
+    public void testC() {
+        System.out.println("testC");
+    }
+}

+ 55 - 0
JavaSE/day10/src/com/lc/day10/dt06/Test01.java

@@ -0,0 +1,55 @@
+package com.lc.day10.dt06;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 14:04
+ * @Version 1.0
+ */
+public class Test01 {
+    public static void main(String[] args) {
+        A a1 = new A(); //
+        A a2 = new B();  //多态
+        B b = new B();
+        C c = new C();
+        D d = new D();
+        // A >  B  >  D  C
+        System.out.println("(1)" + a1.show(b));  // (1)A and A
+        System.out.println("(2)" + a2.show(d));  // (2)B and A
+        System.out.println("(3)" + b.show(c));  //  (3)A and C 继承的方法
+        System.out.println("(4)" + b.show(d));  //  (4)B and B
+    }
+}
+
+class A {
+    public String show(C obj) { //C
+        return ("A and C");
+    }
+
+    public String show(A obj) { //A
+        return "A and A";
+    }
+}
+class B extends A {
+    public String show(B obj) { // B
+        return "B and B";
+    }
+
+//    public String show(C obj) { //C
+//        return ("A and C");
+//    }
+
+    @Override
+    public String show(A obj) { // A 重写
+        return "B and A";
+    }
+}
+class C extends B {
+
+}
+class D extends B {
+
+}
+
+

+ 44 - 0
JavaSE/day10/src/com/lc/day10/interface01/HuaweiPhone.java

@@ -0,0 +1,44 @@
+package com.lc.day10.interface01;
+
+/**
+ * ClassName: HuaweiPhone
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 15:47
+ * @Version 1.0
+ */
+public class HuaweiPhone implements PhoneInterface {
+    @Override
+    public void call() {
+        //常量
+        int signalValue = PhoneInterface.SIGNAL_VALUE;
+
+        //随机
+        int v =(int) (Math.random() * 40) + 40;
+        if ( v >= signalValue ){
+            System.out.println("信号好,通话正常");
+        }else {
+            System.out.println("信号不好,通话质量差");
+        }
+    }
+
+    @Override
+    public void hangup() {
+        //随机
+        int v =(int) (Math.random() * 40) ;
+        if ( v <= 20 ){
+            System.out.println("信号不好,通话质量差 被动挂断");
+        }else {
+            System.out.println("正常挂断");
+        }
+    }
+
+    @Override
+    public void start() {
+        PhoneInterface.super.start();
+        System.out.println("展示华为开机 界面");
+    }
+
+
+
+}

+ 46 - 0
JavaSE/day10/src/com/lc/day10/interface01/PhoneInterface.java

@@ -0,0 +1,46 @@
+package com.lc.day10.interface01;
+
+/**
+ * ClassName: PhoneInterface
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 15:40
+ * @Version 1.0
+ */
+//手机接口
+public interface PhoneInterface {
+
+    //常量
+    // 信号值
+    public static final  int SIGNAL_VALUE = 60;
+
+    //抽象方法
+    //打电话
+    public abstract void call();  // 默认  public abstract
+
+    //挂断
+    public abstract void hangup();
+
+    //静态方法
+    public static void staticMethod(){
+        System.out.println("中国手机 越来越好");
+    }
+
+    //默认方法
+    default void start(){
+        //电量检查
+        System.out.println("手机开机");
+    }
+
+    default void end(){
+        //电量检查
+        System.out.println("手机关机");
+    }
+
+    //私有方法  重复代码 抽取
+
+    private void check(){
+        System.out.println("电量检查");
+    }
+
+}

+ 30 - 0
JavaSE/day10/src/com/lc/day10/interface01/Test.java

@@ -0,0 +1,30 @@
+package com.lc.day10.interface01;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2023/12/24 15:52
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        //测试
+        HuaweiPhone huaweiPhone = new HuaweiPhone();
+
+        //静态
+        PhoneInterface.staticMethod();
+
+        //默认
+        huaweiPhone.start();
+
+        //抽象
+        huaweiPhone.call();
+        huaweiPhone.hangup();
+
+
+    }
+
+}

+ 11 - 0
JavaSE/day11/day11.iml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 49 - 0
JavaSE/day11/src/com/day11/enum10/Test.java

@@ -0,0 +1,49 @@
+package com.day11.enum10;
+
+import java.net.SocketTimeoutException;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 15:28
+ * @Version 1.0
+ */
+public class Test {
+
+    //使用枚举
+    public static void main(String[] args) {
+
+        //类名.值
+        Week monday = Week.MONDAY;
+
+        String name = monday.getName();
+        int number = monday.getNumber();
+
+        System.out.println(name);
+        System.out.println(number);
+
+        //MONDAY 代替的是 数字  1 字符串 星期
+
+        String string = monday.toString();
+        System.out.println(string);
+
+        //返回枚举类型的对象数组
+        Week[] values = Week.values();
+
+        for (Week value : values) {
+            System.out.println(value);
+        }
+
+        //valueOf
+        Week valueOf = Week.valueOf("MONDAY");
+        System.out.println(valueOf);
+
+        //得到当前枚举常量的名称
+        System.out.println(monday.name);
+
+        //返回当前枚举常量的次序号
+        System.out.println(monday.ordinal());
+    }
+
+}

+ 45 - 0
JavaSE/day11/src/com/day11/enum10/Week.java

@@ -0,0 +1,45 @@
+package com.day11.enum10;
+
+/**
+ * ClassName: Week
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 15:28
+ * @Version 1.0
+ */
+public enum Week {
+    //多值
+    MONDAY(1,"星期一"),
+    TUESDAY(2,"星期二"),
+    WEDNESDAY(3,"星期三"),
+    THURSDAY(4,"星期四"),
+    FRIDAY(5,"星期五"),
+    SATURDAY(6,"星期六"),
+    SUNDAY(7,"星期日");//默认的是 无参数的
+
+    //1 星期一
+    int number;
+    String  name;
+
+    //构造
+    Week(int number, String name) {
+        this.number = number;
+        this.name = name;
+    }
+
+    public int getNumber() {
+        return number;
+    }
+
+    public void setNumber(int number) {
+        this.number = number;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 54 - 0
JavaSE/day11/src/com/day11/ex/Produt.java

@@ -0,0 +1,54 @@
+package com.day11.ex;
+
+/**
+ * ClassName: Produt
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:11
+ * @Version 1.0
+ */
+public class Produt  implements Comparable{
+    private String name;
+    private double price;
+
+    public Produt(String name, double price) {
+        this.name = name;
+        this.price = price;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    @Override
+    public String toString() {
+        return "Produt{" +
+                "name='" + name + '\'' +
+                ", price=" + price +
+                '}';
+    }
+
+    @Override
+    public int compareTo(Object o) {
+        //强制转换
+        Produt p = (Produt) o;
+        //价格比较
+        double result = this.price - p.price;
+        // == 0 相等
+        // 名称比较
+        result = result == 0 ? this.name.compareTo(p.name) : result;
+
+        return (int) result;
+    }
+}

+ 40 - 0
JavaSE/day11/src/com/day11/ex/Test.java

@@ -0,0 +1,40 @@
+package com.day11.ex;
+
+import java.util.Arrays;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:12
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        Produt p1 = new Produt("华为汽车",129000.0);
+        Produt p2 = new Produt("小米汽车",119000.0);
+        Produt p3 = new Produt("小鹏汽车",219000.0);
+        Produt p4 = new Produt("小鹏汽车",119000.0);
+
+        //创建数组
+        Produt[] products = {p1,p2,p3,p4};
+
+        //排序之前
+        System.out.println("排序之前");
+
+        for (Produt product : products) {
+            System.out.println(product);
+        }
+        //排序之后
+        System.out.println("排序之后");
+        // 排序 必须实现 Comparable
+        Arrays.sort(products);
+
+        for (Produt product : products) {
+            System.out.println(product);
+        }
+
+    }
+}

+ 25 - 0
JavaSE/day11/src/com/day11/ex1/MyCompartorAge.java

@@ -0,0 +1,25 @@
+package com.day11.ex1;
+
+import java.util.Comparator;
+
+/**
+ * ClassName: MyCompartor2
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:29
+ * @Version 1.0
+ */
+public class MyCompartorAge implements Comparator {
+    @Override
+    public int compare(Object o1, Object o2) {
+        //定制规则
+        //强制转换
+        Person p1 = (Person) o1;
+        Person p2 = (Person) o2;
+
+        //比较 age
+        int i = p1.age - p2.age;
+
+        return i;
+    }
+}

+ 25 - 0
JavaSE/day11/src/com/day11/ex1/MyCompartorName.java

@@ -0,0 +1,25 @@
+package com.day11.ex1;
+
+import java.util.Comparator;
+
+/**
+ * ClassName: MyCompartor
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:27
+ * @Version 1.0
+ */
+public class MyCompartorName implements Comparator {
+    @Override
+    public int compare(Object o1, Object o2) {
+        //定制规则
+        //强制转换
+        Person p1 = (Person) o1;
+        Person p2 = (Person) o2;
+
+        //比较
+        int i = p1.name.compareTo(p2.name);
+
+        return i;
+    }
+}

+ 28 - 0
JavaSE/day11/src/com/day11/ex1/Person.java

@@ -0,0 +1,28 @@
+package com.day11.ex1;
+
+/**
+ * ClassName: Person
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:24
+ * @Version 1.0
+ */
+public class Person {
+
+    String name;
+
+    int age;
+
+    public Person(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Person{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+}

+ 42 - 0
JavaSE/day11/src/com/day11/ex1/Test.java

@@ -0,0 +1,42 @@
+package com.day11.ex1;
+
+import java.util.Arrays;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:24
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        //排序
+        //public static <T> void sort(Object[] a, Comparator<? super T> c) {
+
+        Person p1 = new Person("zs",22);
+        Person p2 = new Person("lis",22);
+        Person p3 = new Person("za",23);
+        Person p4 = new Person("zb",26);
+
+        Person[] ps = {p1,p2,p3,p4};
+
+        Arrays.sort(ps, new MyCompartorName() );
+
+        for (Person p : ps) {
+            System.out.println(p);
+        }
+
+        System.out.println("-=---------------");
+
+        Arrays.sort(ps, new MyCompartorAge() );
+
+        for (Person p : ps) {
+            System.out.println(p);
+        }
+
+    }
+
+}

+ 56 - 0
JavaSE/day11/src/com/day11/ex2/ArrayTools.java

@@ -0,0 +1,56 @@
+package com.day11.ex2;
+
+import java.util.Comparator;
+
+/**
+ * ClassName: ArrayTools
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:39
+ * @Version 1.0
+ */
+public class ArrayTools {
+
+    /*
+    静态方法public static void sort(Object[] arr):
+    实现给对象数组从小到大排序,要求元素的运行时类型必须实现Comparable接口
+     */
+    public static void sort(Object[] arr){
+        //冒泡排序比较
+        for (int i = 0; i < arr.length - 1; i++) {
+            for (int j = 0; j < arr.length - 1 - i; j++) {
+                // 比较 不能 arr[j] > arr[j+1]
+                // 自动类型转换
+                Comparable c1 = (Comparable) arr[j];
+                Comparable c2 = (Comparable) arr[j+1];
+
+                if ( c1.compareTo(c2) > 0 ){
+                    // 交换
+                    Object temp = arr[j];
+                    arr[j] = arr[j+1];
+                    arr[j+1] = temp;
+                }
+            }
+        }
+    }
+
+    /*
+    public static void sort(Object[] arr, Comparator c):
+    实现给对象数组从小到大排序,需要提供一个Comparator接口的实现类对象,给数组的元素对象排序。
+     */
+    public static void sort(Object[] arr, Comparator c){
+        //冒泡排序比较
+        for (int i = 0; i < arr.length - 1; i++) {
+            for (int j = 0; j < arr.length - 1 - i; j++) {
+                // 比较 不能 arr[j] > arr[j+1]
+                if ( c.compare(arr[j],arr[j+1]) > 0 ){ //使用比较方法
+                    // 交换
+                    Object temp = arr[j];
+                    arr[j] = arr[j+1];
+                    arr[j+1] = temp;
+                }
+            }
+        }
+    }
+
+}

+ 21 - 0
JavaSE/day11/src/com/day11/ex2/ComparatorSalary.java

@@ -0,0 +1,21 @@
+package com.day11.ex2;
+
+import java.util.Comparator;
+
+/**
+ * ClassName: Comparator
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:48
+ * @Version 1.0
+ */
+public class ComparatorSalary implements Comparator {
+    @Override
+    public int compare(Object o1, Object o2) {
+        Employee e1 = (Employee) o1;
+        Employee e2 = (Employee) o2;
+
+        //薪资
+        return (int) (e1.getSalary()  - e2.getSalary());
+    }
+}

+ 73 - 0
JavaSE/day11/src/com/day11/ex2/Employee.java

@@ -0,0 +1,73 @@
+package com.day11.ex2;
+
+/**
+ * ClassName: Employee
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:37
+ * @Version 1.0
+ */
+public class Employee implements Comparable {
+    //编号、姓名、薪资、年龄,属性私有化
+    private int id;
+    private String name;
+    private double salary;
+    private int age;
+
+    public Employee(int id, String name, double salary, int age) {
+        this.id = id;
+        this.name = name;
+        this.salary = salary;
+        this.age = age;
+    }
+
+    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;
+    }
+
+    public double getSalary() {
+        return salary;
+    }
+
+    public void setSalary(double salary) {
+        this.salary = salary;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Employee{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", salary=" + salary +
+                ", age=" + age +
+                '}';
+    }
+
+    @Override
+    public int compareTo(Object o) {
+        //按照编号比较大小。
+        Employee e1 = (Employee) o;
+
+        return this.id - e1.id;
+    }
+}

+ 65 - 0
JavaSE/day11/src/com/day11/ex2/Test.java

@@ -0,0 +1,65 @@
+package com.day11.ex2;
+
+import java.util.Comparator;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 11:45
+ * @Version 1.0
+ */
+public class Test {
+    public static void main(String[] args) {
+
+        Employee e1 = new Employee(1, "zs", 5000, 20);
+        Employee e2 = new Employee(2, "lis", 7600, 22);
+        Employee e3 = new Employee(3, "a", 5600, 23);
+        Employee e4 = new Employee(4, "a", 1000, 18);
+        Employee e5 = new Employee(5, "b", 12000, 25);
+
+        Employee[] es = new Employee[]{e1, e2, e3, e4, e5};
+        //ArrayTools //自然排序 id
+        ArrayTools.sort(es);
+
+        for (Employee e : es) {
+            System.out.println(e);
+        }
+
+        System.out.println("-----------------");
+        //比较器
+        ArrayTools.sort(es, new ComparatorSalary() );
+
+        for (Employee e : es) {
+            System.out.println(e);
+        }
+
+        System.out.println("-------------");
+        //比较器 编号逆序
+        ArrayTools.sort(es, new Comparator() {
+            @Override
+            public int compare(Object o1, Object o2) {
+                //逆序
+                Employee e1 = (Employee) o1;
+                Employee e2 = (Employee) o2;
+
+                return e2.getId() - e1.getId();
+            }
+        });
+
+        for (Employee e : es) {
+            System.out.println(e);
+        }
+
+        //了解
+        ArrayTools.sort(es, (Object o1, Object o2) -> {
+            return ((Employee) o2).getId() - ((Employee) o1).getId();
+        });
+
+        for (Employee e : es) {
+            System.out.println(e);
+        }
+
+
+    }
+}

+ 31 - 0
JavaSE/day11/src/com/day11/ex3/Test01.java

@@ -0,0 +1,31 @@
+package com.day11.ex3;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:10
+ * @Version 1.0
+ */
+public class Test01 {
+    public static void main(String[] args) {
+        Body.Heart heart = new Body().new Heart();
+        heart.jump();
+    }
+}
+
+class Body {	// 身体
+    private int weight = 30;
+
+    // 在成员位置定义一个类
+    class Heart {
+        private int weight = 20;
+
+        public void jump() {
+            int weight = 10;
+            System.out.println("心脏在跳动 " + weight);	// 10
+            System.out.println("心脏在跳动 " + this.weight);	// 20
+            System.out.println("心脏在跳动 " + Body.this.weight);	// 30
+        }
+    }
+}

+ 20 - 0
JavaSE/day11/src/com/day11/inner05/Test.java

@@ -0,0 +1,20 @@
+package com.day11.inner05;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 13:56
+ * @Version 1.0
+ */
+public class Test {
+}
+
+class Outer {
+    //局部内部类  了解
+    public void m1(){
+        class Inner {
+
+        }
+    }
+}

+ 29 - 0
JavaSE/day11/src/com/day11/inner06/Outer.java

@@ -0,0 +1,29 @@
+package com.day11.inner06;
+
+/**
+ * ClassName: Outer
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 13:59
+ * @Version 1.0
+ */
+public class Outer {
+
+    int x;
+    static int y; //静态优先
+
+    //内部类
+    class Inner{
+       void m1(){
+           System.out.println(x);
+           System.out.println(y);
+       }
+
+        static void m2(){
+            //System.out.println(x); 非静态
+            System.out.println(y); // 静态调用静态
+        }
+
+    }
+
+}

+ 21 - 0
JavaSE/day11/src/com/day11/inner06/Test.java

@@ -0,0 +1,21 @@
+package com.day11.inner06;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 13:59
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        //创建内部类
+        //先创建 外部类  创建内部类
+        Outer.Inner inner = new Outer().new Inner();
+
+        inner.m1();
+    }
+
+}

+ 29 - 0
JavaSE/day11/src/com/day11/inner07/Outer.java

@@ -0,0 +1,29 @@
+package com.day11.inner07;
+
+/**
+ * ClassName: Outer
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 13:59
+ * @Version 1.0
+ */
+public class Outer {
+
+    int x;
+    static int y; //静态优先
+
+    //静态内部类
+    static class Inner{
+       void m1(){
+           //System.out.println(x); //静态的成员变量
+           System.out.println(y);
+       }
+
+        static void m2(){
+            //System.out.println(x); 非静态
+            System.out.println(y); // 静态调用静态
+        }
+
+    }
+
+}

+ 19 - 0
JavaSE/day11/src/com/day11/inner07/Test.java

@@ -0,0 +1,19 @@
+package com.day11.inner07;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:06
+ * @Version 1.0
+ */
+public class Test {
+    public static void main(String[] args) {
+
+        // 创建内部类对象
+        Outer.Inner inner = new Outer.Inner();
+
+        inner.m1();
+
+    }
+}

+ 40 - 0
JavaSE/day11/src/com/day11/inner08/Test.java

@@ -0,0 +1,40 @@
+package com.day11.inner08;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:14
+ * @Version 1.0
+ */
+public class Test {
+    public static void main(String[] args) {
+        //抽象类不能创建 实例
+        // new 抽象类 出现的对象 就是 抽象类的子类。子类 没有名字的。
+        A a = new A() {
+
+        };
+
+
+        //正常
+        C c = new C(); // 子类
+
+        //接口 : 接口子类对象 实现类 没有名称的。
+        B b = new B(){
+
+        };
+    }
+
+}
+
+abstract class A {
+
+}
+
+interface B {
+
+}
+
+class C extends A {
+
+}

+ 15 - 0
JavaSE/day11/src/com/day11/inner09/Person.java

@@ -0,0 +1,15 @@
+package com.day11.inner09;
+
+/**
+ * ClassName: Person
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:21
+ * @Version 1.0
+ */
+public class Person implements Swming{
+    @Override
+    public void swming() {
+        System.out.println("人学习游泳");
+    }
+}

+ 14 - 0
JavaSE/day11/src/com/day11/inner09/Swming.java

@@ -0,0 +1,14 @@
+package com.day11.inner09;
+
+/**
+ * ClassName: Swming
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:20
+ * @Version 1.0
+ */
+public interface Swming {
+
+    void swming();
+
+}

+ 54 - 0
JavaSE/day11/src/com/day11/inner09/Test.java

@@ -0,0 +1,54 @@
+package com.day11.inner09;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 14:20
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+//        // 创建对象
+//        Person person = new Person();
+//
+//        //调用接口中的方法
+//        person.swming();
+
+
+        // 匿名内部类
+//        Swming s = new Swming() {
+//
+//            @Override
+//            public void swming() {
+//                System.out.println("游泳方法");
+//            }
+//        };
+//        s.swming();
+
+        // 使用一次
+        String[] arr = {"a", "c", "b"};
+
+        //排序
+        Arrays.sort(arr);
+
+        System.out.println(Arrays.toString(arr));
+
+        //倒叙 匿名内部类
+        Arrays.sort(arr, new Comparator(){
+                @Override
+                public int compare(Object o1, Object o2) {
+                    return -((String)o1).compareTo((String)o2);
+                }
+            }
+        );
+
+        System.out.println(Arrays.toString(arr));
+    }
+
+}

+ 58 - 0
JavaSE/day11/src/com/day11/inter01/Test01.java

@@ -0,0 +1,58 @@
+package com.day11.inter01;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 9:28
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+        //多态  接口与实现类对象构成多态引用
+        A a1 = new AClass();
+
+        //使用接口的静态成员
+        System.out.println(A.H);
+
+        //使用接口的非静态方法**
+        a1.a();
+
+        B a2 = new AClass();
+
+        //子类
+        AClass a3 = new AClass();
+    }
+
+}
+
+interface A {
+    void a();
+
+    public static final int H = 100;
+}
+
+interface B {
+    void b();
+}
+
+interface C extends A , B{ //接口可以多继承
+
+}
+
+class AClass implements A , B { //类实现多个接口
+
+    @Override
+    public void a() {
+
+    }
+
+    @Override
+    public void b() {
+
+    }
+}
+
+
+

+ 41 - 0
JavaSE/day11/src/com/day11/inter02/a/Test01.java

@@ -0,0 +1,41 @@
+package com.day11.inter02.a;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 9:38
+ * @Version 1.0
+ */
+public class Test01 {
+
+    //类优先原则 继承的父类大于 实现的接口 优先调用父类中的
+    public static void main(String[] args) {
+
+        A a = new A();
+        a.m();
+
+    }
+
+}
+
+interface B {
+    //void m();
+
+    default void m(){
+        System.out.println("B");
+    }
+
+}
+
+class C {
+    public void m(){
+        System.out.println("C");
+    }
+}
+
+class A extends C implements  B  {
+
+}
+
+

+ 38 - 0
JavaSE/day11/src/com/day11/inter02/b/Test01.java

@@ -0,0 +1,38 @@
+package com.day11.inter02.b;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 9:42
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+        A a = new A();
+        a.show();
+    }
+}
+
+interface B {
+    default  void show() {
+        System.out.println("B show");
+    }
+}
+
+interface C {
+    default  void show() {
+        System.out.println("C show");
+    }
+}
+
+class A implements B, C{
+
+    //有一个方法实现
+    @Override
+    public void show() {
+        //接口名称.spuer.方法名称
+        C.super.show();
+    }
+}

+ 31 - 0
JavaSE/day11/src/com/day11/inter02/c/Test01.java

@@ -0,0 +1,31 @@
+package com.day11.inter02.c;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 9:48
+ * @Version 1.0
+ */
+public class Test01 {
+
+
+}
+
+class B{
+    public static final int D = 10;
+}
+
+interface C{
+    public static final int D = 10;
+}
+
+class A extends  B implements C{
+
+    void aVoid(){
+        //System.out.println(D);
+        //手动指定
+        System.out.println(B.D);
+    }
+
+}

+ 29 - 0
JavaSE/day11/src/com/day11/inter03/Test01.java

@@ -0,0 +1,29 @@
+package com.day11.inter03;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 10:11
+ * @Version 1.0
+ */
+public class Test01 {
+
+}
+interface A {
+    int x = 0;
+}
+class B {
+    int x = 1;
+}
+class C extends B implements A {
+    public void pX() {
+        //System.out.println(x); //编译 问题
+        System.out.println(A.x); //接口中
+        System.out.println(super.x); //父类中
+    }
+    public static void main(String[] args) {
+        C c = new C();
+        c.pX(); //?
+    }
+}

+ 34 - 0
JavaSE/day11/src/com/day11/inter03/Test02.java

@@ -0,0 +1,34 @@
+package com.day11.inter03;
+
+/**
+ * ClassName: Test02
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 10:19
+ * @Version 1.0
+ */
+public class Test02 {
+}
+interface Play1Interface {
+    void play();
+}
+interface Play2Interface {
+    void play();
+}
+interface Ball extends Play1Interface, Play2Interface {
+    BasketBall ball = new BasketBall("NBA"); //常量 final
+}
+class BasketBall implements Ball {
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+    public BasketBall(String name) {
+        this.name = name;
+    }
+    public void play() {
+        //ball = new BasketBall("CBA"); //final 修饰的变量 不能被改变 编译问题
+        System.out.println(ball.getName()); // ? 编译
+    }
+}

+ 34 - 0
JavaSE/day11/src/com/day11/inter04/Student.java

@@ -0,0 +1,34 @@
+package com.day11.inter04;
+
+/**
+ * ClassName: Student
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 10:26
+ * @Version 1.0
+ */
+public class Student implements Comparable {
+
+    String name;
+    int age;
+    double h;
+
+    public Student(String name, int age, double h) {
+        this.name = name;
+        this.age = age;
+        this.h = h;
+    }
+
+    /*
+    compareTo
+        给了一个比较方法
+            比较规则  具体的实现又子类实现
+     */
+    @Override
+    public int compareTo(Object o) {
+        //强制转换
+        Student s = (Student) o;
+        //比较逻辑 比较年龄
+        return this.age -  s.age;
+    }
+}

+ 30 - 0
JavaSE/day11/src/com/day11/inter04/Test.java

@@ -0,0 +1,30 @@
+package com.day11.inter04;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/7 10:27
+ * @Version 1.0
+ */
+public class Test {
+    public static void main(String[] args) {
+
+        Student student1 = new Student("zs",21,185);
+        Student student2 = new Student("zs",23,185);
+
+        //boolean equals = student1.equals(student2);
+        //System.out.println(equals);
+
+        //Comparable
+
+        int i = student1.compareTo(student2);
+        if (i >0){
+            System.out.println("s1.age > s2.age");
+        }else if (i == 0 ){
+            System.out.println("s1.age 相等 s2.age");
+        }else {
+            System.out.println("s1.age < s2.age");
+        }
+    }
+}

+ 11 - 0
JavaSE/day12/day12.iml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 53 - 0
JavaSE/day12/src/com/lc/day12/obj05/Person.java

@@ -0,0 +1,53 @@
+package com.lc.day12.obj05;
+
+import java.util.Objects;
+
+/**
+ * ClassName: S
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 13:44
+ * @Version 1.0
+ */
+public class Person {
+
+    private int id;
+    private String name;
+    private int age;
+
+    public Person() {
+    }
+
+    public Person(int id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    @Override
+    public boolean equals(Object object) {
+        if (this == object) return true;
+        if (object == null || getClass() != object.getClass()) return false;
+        Person person = (Person) object;
+        return id == person.id && age == person.age && Objects.equals(name, person.name);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, name, age);
+    }
+
+    //    @Override
+//    public boolean equals(Object obj) {
+//        //Object obj = new Person 多态。
+//        Person p1 =  (Person) obj;
+//        //比较id
+//        boolean equals = this.id == p1.id;
+//        //id相同 比较年龄
+//        equals = equals ? this.age == p1.age : false;
+//        //年龄相同 比较name
+//        equals = equals ? this.name.equals(p1.name) : false;
+//
+//        return  equals;
+//    }
+}

+ 51 - 0
JavaSE/day12/src/com/lc/day12/obj05/Test.java

@@ -0,0 +1,51 @@
+package com.lc.day12.obj05;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 13:44
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+        //equals  比较
+
+        String s1 = "123";
+        String s2 = "123";
+
+        //比较
+        boolean equals = s1.equals(s2);
+        System.out.println(equals);
+
+
+        //Person
+//        Person p1 = new Person();
+//        Person p2 = new Person();
+//        boolean equals1 = p1.equals(p2);
+//        System.out.println(equals1);
+
+        //比较 String  true   重写
+
+        //比较 Person  fasle  继承
+
+        //重写
+        // System.out.println(p1);
+
+
+        //重写过后
+        Person p3 = new Person(1,"zs",22);
+        Person p4 = new Person(2,"zs",22);
+
+        boolean equals2 = p3.equals(p4);
+        System.out.println(equals2);
+
+        //区分 person对象
+
+
+
+    }
+
+
+}

+ 14 - 0
JavaSE/day12/src/com/lc/day12/obj06/Person.java

@@ -0,0 +1,14 @@
+package com.lc.day12.obj06;
+
+import java.util.Objects;
+
+/**
+ * ClassName: S
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 13:44
+ * @Version 1.0
+ */
+public class Person {
+
+}

+ 41 - 0
JavaSE/day12/src/com/lc/day12/obj06/Test01.java

@@ -0,0 +1,41 @@
+package com.lc.day12.obj06;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 14:16
+ * @Version 1.0
+ */
+public class Test01 {
+
+
+    public static void main(String[] args) {
+        //==比较基本类型
+        int a = 10;
+        int b = 20;
+        System.out.println(a == b);
+
+
+        // == 比较引用类型 String
+        String s1 = "1";
+        String s2 = "1";
+
+        System.out.println(s1 == s2);
+
+        // ==  比较引用类型 Person
+        Person p1 = new Person();
+        Person p2 = new Person();
+        System.out.println(p1 == p2);
+
+        // equals 比较
+
+        // 比较 基本 引用
+
+
+        // equals 比较的时候 String比较内容。 比较地址
+        // 看是否重写,没有重写 和 == 一样 比较地址  重写过 重写逻辑比较
+        // == 比较 基本类型 比较值 引用类型 比较地址
+
+    }
+}

+ 24 - 0
JavaSE/day12/src/com/lc/day12/obj07/Person.java

@@ -0,0 +1,24 @@
+package com.lc.day12.obj07;
+
+/**
+ * ClassName: Person
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 14:36
+ * @Version 1.0
+ */
+public class Person {
+
+    String name;
+
+    public Person(String name) {
+        this.name = name;
+    }
+
+//    @Override
+//    public String toString() {
+//        return "Person{" +
+//                "name='" + name + '\'' +
+//                '}';
+//    }
+}

+ 27 - 0
JavaSE/day12/src/com/lc/day12/obj07/Test.java

@@ -0,0 +1,27 @@
+package com.lc.day12.obj07;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 14:36
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        Person hmm = new Person("韩梅梅");
+        //println 输出的 hmm 对象
+        System.out.println(hmm);
+
+
+        String name = hmm.getClass().getName();
+        int i = hmm.hashCode();
+        System.out.println("i:"+i);
+        String hexString = Integer.toHexString(i);
+
+        System.out.println(name+"@"+hexString);
+
+    }
+}

+ 19 - 0
JavaSE/day12/src/com/lc/day12/obj08/Person.java

@@ -0,0 +1,19 @@
+package com.lc.day12.obj08;
+
+/**
+ * ClassName: Person
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 14:36
+ * @Version 1.0
+ */
+public class Person {
+
+    String name;
+
+    @Override
+    protected void finalize() throws Throwable {
+        System.out.println("对象被回收了");
+        super.finalize();
+    }
+}

+ 23 - 0
JavaSE/day12/src/com/lc/day12/obj08/Test.java

@@ -0,0 +1,23 @@
+package com.lc.day12.obj08;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 15:16
+ * @Version 1.0
+ */
+public class Test {
+    public static void main(String[] args) {
+
+//        while (true){
+//            new Person();
+//        }
+        Person person = new Person();
+
+        person = null;
+        //gc
+        System.gc();
+
+    }
+}

+ 33 - 0
JavaSE/day12/src/com/lc/day12/string09/Test.java

@@ -0,0 +1,33 @@
+package com.lc.day12.string09;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 15:47
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        String s = "123";
+
+        s.equals("123");
+
+        char[] schars = {'1','2','3'};
+
+        String s1 = new String(schars);
+
+        s1.equals("123");
+
+        int a1 = '1';
+        System.out.println(a1);
+        int a2 = '2';
+        System.out.println(a2);
+        int a3 = '3';
+        System.out.println(a3);
+
+    }
+}
+

+ 23 - 0
JavaSE/day12/src/com/lc/day12/string09/Test01.java

@@ -0,0 +1,23 @@
+package com.lc.day12.string09;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 16:08
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+
+        //面试体
+        String s1 = "abc"; //常量 常量池
+
+        String s2 = new String("abc"); // new String() 堆中
+
+        System.out.println(s1 == s2); // false // 比较地址值
+
+    }
+
+}

+ 15 - 0
JavaSE/day12/src/com/lc/day12/string10/Person.java

@@ -0,0 +1,15 @@
+package com.lc.day12.string10;
+
+/**
+ * ClassName: Person
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 16:18
+ * @Version 1.0
+ */
+public class Person {
+
+    String name;
+
+
+}

+ 59 - 0
JavaSE/day12/src/com/lc/day12/string10/Test.java

@@ -0,0 +1,59 @@
+package com.lc.day12.string10;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 16:19
+ * @Version 1.0
+ */
+public class Test {
+
+    public static void main(String[] args) {
+
+        Person p1 = new Person();
+        p1.name = "Tom";
+
+        Person p2 = new Person();
+        p2.name = "Tom";
+
+        //equals String重写了equals 比较的是内容
+        System.out.println(p1.name.equals(p2.name)); //  T
+        System.out.println(p1.name == p2.name);      //  T 地址 //Tom常量 存储在常量池
+        System.out.println(p1.name == "Tom");        //  T
+
+
+//        String s1 = "javaEE"; //常量池
+//        String s2 = "javaEE";
+//        String s3 = new String("javaEE"); //堆
+//        String s4 = new String("javaEE");
+//
+//        System.out.println(s1 == s2);//  T   T
+//        System.out.println(s1 == s3);//  F   F
+//        System.out.println(s1 == s4);//  F   F
+//        System.out.println(s3 == s4);//  F   F 比较地址
+
+
+        String s1 = "hello";
+        String s2 = "world";
+        String s3 = "hello" + "world"; //常量优化机制
+
+//常量池  hello   world    helloworld
+
+        String s4 = s1 + "world";  //堆
+        String s5 = "hello".concat("world");  // concat 连接+ 结果在堆中
+        String s6 = s1 + s2; //变量  堆
+        String s7 = (s1 + s2).intern();  // intern返回常量池中的结果 常量池
+
+        System.out.println(s3 == s4);  //F
+        System.out.println(s3 == s5);  //F
+        System.out.println(s4 == s6);  //F
+        System.out.println(s3 == s7);  //T
+
+
+
+
+
+
+    }
+}

+ 28 - 0
JavaSE/day12/src/com/lc/day12/string10/Test01.java

@@ -0,0 +1,28 @@
+package com.lc.day12.string10;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 16:51
+ * @Version 1.0
+ */
+public class Test01 {
+
+    String str = new String("hello");
+    char[] ch = { 'w', 'o', 'r', 'l','d' };
+
+    public void change(String str, char ch[]) { //str 地址
+        str = "hello lc"; //str = new ("hello lc")
+        //ch 地址
+        ch[0] = 'e';
+    }
+    public static void main(String[] args) {
+        Test01 test = new Test01();
+
+        test.change(test.str, test.ch);
+
+        System.out.println(test.str );	// hello
+        System.out.println(test.ch);	// eolld   //
+    }
+}

+ 170 - 0
JavaSE/day12/src/com/lc/day12/test/TestUser.java

@@ -0,0 +1,170 @@
+package com.lc.day12.test;
+
+/**
+ * ClassName: User
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 11:49
+ * @Version 1.0
+ */
+import java.util.Scanner;
+
+class UsernameAlreadyExistsException extends Exception {
+    public UsernameAlreadyExistsException(String message) {
+        super(message);
+    }
+}
+
+class LoginFailException extends Exception {
+    public LoginFailException(String message) {
+        super(message);
+    }
+}
+
+class LoginUsername extends Exception{
+    public LoginUsername(String message){
+        super(message);
+    }
+}
+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;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "username='" + username + '\'' +
+                ", password='" + password + '\'' +
+                '}';
+    }
+}
+
+class UserManager {
+    private static User[] arr;
+    private static int total;
+
+    public UserManager() {
+        arr = new User[10];
+        total = 0;
+    }
+
+    public void checkUsernameExists(String username) throws UsernameAlreadyExistsException {
+        for (int i = 0; i < total; i++) {
+            if (arr[i].getUsername().equals(username)) {
+                throw new UsernameAlreadyExistsException("用户名已存在!");
+            }
+        }
+    }
+
+    public void add(User user) {
+        arr[total++] = user;
+    }
+
+    public void login(User user) throws LoginFailException {
+        boolean flag = false;
+        for (int i = 0; i < total; i++) {
+            if (arr[i].getUsername().equals(user.getUsername()) && arr[i].getPassword().equals(user.getPassword())) {
+                flag = true;
+                break;
+            }
+        }
+        if (!flag) {
+            throw new LoginFailException("登录失败!");
+        } else {
+            System.out.println("登录成功!");
+        }
+    }
+
+    public void checkLoginUsername(String username) throws LoginUsername{
+        if(total == 0 ){
+            throw  new LoginUsername("用户名不存在!");
+        }
+        for(int i = 0 ; i < total ; i++){
+            if(!(arr[i].getUsername().equals(username))){
+                throw  new LoginUsername("用户名不存在!");
+            }
+        }
+    }
+}
+
+public class TestUser {
+    public static void main(String[] args) {
+        Scanner scanner = new Scanner(System.in);
+        UserManager userManager = new UserManager();
+
+        while (true) {
+            System.out.println("--------爱扣钉--------");
+            System.out.println("1、注册");
+            System.out.println("2、登录");
+            System.out.println("3、退出");
+            System.out.print("请选择:");
+
+            int n = scanner.nextInt();
+            scanner.nextLine();
+
+            switch (n) {
+                case 1:
+                    System.out.print("用户名: ");
+                    String username = scanner.nextLine();
+
+                    try {
+                        userManager.checkUsernameExists(username);
+                        System.out.print("密码: ");
+                        String password = scanner.nextLine();
+                        userManager.add(new User(username, password));
+                        System.out.println("注册成功!");
+                    } catch (UsernameAlreadyExistsException e) {
+                        System.out.println(e.getMessage());
+                    }
+                    break;
+                case 2:
+                    System.out.print("用户名: ");
+                    String loginUsername = scanner.nextLine();
+                    try{
+                        userManager.checkLoginUsername(loginUsername);
+                    } catch (LoginUsername e) {
+                        System.out.println(e.getMessage());
+                        break;
+                    }
+
+                    System.out.print("密码: ");
+                    String loginPassword = scanner.nextLine();
+                    try {
+                        userManager.login(new User(loginUsername, loginPassword));
+                    } catch (LoginFailException e) {
+                        System.out.println(e.getMessage());
+                    }
+                    break;
+                case 3:
+                    System.out.println("程序已退出!");
+                    System.exit(0);
+                default:
+                    System.out.println("输入错误,请重新输入!");
+            }
+        }
+    }
+}

+ 54 - 0
JavaSE/day12/src/com/lc/day12/throwable01/Test01.java

@@ -0,0 +1,54 @@
+package com.lc.day12.throwable01;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 9:22
+ * @Version 1.0
+ */
+public class Test01 {
+
+
+    public static void main(String[] args) {
+        //new Test01().m1();
+
+        //new Test01().m2();
+
+        new Test01().m3();
+    }
+
+
+    //error
+    //栈溢出 递归  StackOverflowError
+    public void m1(){
+        m1();
+    }
+
+    //堆 溢出  OutOfMemoryError
+    public void m2(){
+        while (true){
+            Object[] objects = new Object[1024 * 1024 * 1024];
+        }
+    }
+
+
+
+    //异常
+    // 运行 异常   1/0   ArithmeticException: / by zero
+    // ArithmeticException extends RuntimeException
+    public void m3(){
+        int i = 1 / 0;
+    }
+
+    //检查异常  FileNotFoundException
+    // extends Exception
+    public void m4() throws FileNotFoundException {
+        FileInputStream inputStream = new FileInputStream("D:\\a.txt");
+    }
+
+}

+ 25 - 0
JavaSE/day12/src/com/lc/day12/throwable02/Test.java

@@ -0,0 +1,25 @@
+package com.lc.day12.throwable02;
+
+/**
+ * ClassName: Test
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 9:32
+ * @Version 1.0
+ */
+public class Test {
+
+
+    public static void main(String[] args) {
+        m1(); // java 多线程
+    }
+
+    public static void m1(){
+
+        int[] arr = new int[1];
+        //ArrayIndexOutOfBoundsException
+        System.out.println(arr[2]);  // jvm  构建异常对象  交给main 显示 错误信息
+
+    }
+
+}

+ 79 - 0
JavaSE/day12/src/com/lc/day12/throwable03/Test01.java

@@ -0,0 +1,79 @@
+package com.lc.day12.throwable03;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 9:48
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+        m3();
+    }
+
+    public static void m3(){
+        //try catch
+        try {
+            int i = 1/0;
+//            int[] arr = new int[1];
+//            System.out.println(arr[2]);
+
+        }catch (Exception e){
+            //打印信息  兜底
+            e.printStackTrace();
+
+        } finally { //finally 必须执行的代码块
+            System.out.println("发送邮件");
+        }
+    }
+
+
+
+    public static void m2(){
+        //try catch
+        try {
+            //int i = 1/0;
+
+            int[] arr = new int[1];
+            System.out.println(arr[2]);
+
+        }catch (ArithmeticException e){
+            //打印信息
+            e.printStackTrace();
+            System.out.println("除数不能为0");
+
+            //记录日志
+            //发送给管理员
+        }catch ( ArrayIndexOutOfBoundsException e ){
+            //打印信息
+            e.printStackTrace();
+            System.out.println("数组越界");
+        }catch (Exception e){
+
+             //打印信息  兜底
+            e.printStackTrace();
+            System.out.println("未知异常");
+        }
+    }
+
+
+    public static void m1(){
+        //try catch
+        try {
+            int i = 1/0;
+
+            //int[] arr = new int[1];
+            //System.out.println(arr[2]);
+
+        }catch (Exception e){
+            //打印信息
+            e.printStackTrace();
+
+            //记录日志
+            //发送给管理员
+        }
+    }
+
+}

+ 42 - 0
JavaSE/day12/src/com/lc/day12/throwable03/Test02.java

@@ -0,0 +1,42 @@
+package com.lc.day12.throwable03;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 9:48
+ * @Version 1.0
+ */
+public class Test02 {
+
+    public static void main(String[] args)  {
+        //throws FileNotFoundException 异常 检查异常
+        try {
+            m2();
+        } catch (FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    //检查异常  两种处理方法 throws
+    public static void m2() throws FileNotFoundException {
+
+        FileInputStream fis = new FileInputStream("a.txt");
+
+    }
+
+
+    //检查异常  两种处理方法
+    public static void m1(){
+        try {
+            FileInputStream fis = new FileInputStream("a.txt");
+        } catch (FileNotFoundException e) {
+            //throw 抛出异常
+            //throw new RuntimeException(e);
+        }
+    }
+
+}

+ 24 - 0
JavaSE/day12/src/com/lc/day12/throwable04/Test01.java

@@ -0,0 +1,24 @@
+package com.lc.day12.throwable04;
+
+/**
+ * ClassName: Test01
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 10:49
+ * @Version 1.0
+ */
+public class Test01 {
+
+    public static void main(String[] args) {
+
+        Triangle triangle = null;
+        try {
+            triangle = new Triangle(1, 1, 10);
+        } catch (TriangleException e) {
+            e.printStackTrace();
+        }
+
+        System.out.println(triangle);
+
+    }
+}

+ 44 - 0
JavaSE/day12/src/com/lc/day12/throwable04/Triangle.java

@@ -0,0 +1,44 @@
+package com.lc.day12.throwable04;
+
+/**
+ * ClassName: Triangle
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 10:43
+ * @Version 1.0
+ */
+public class Triangle {
+
+    private int a , b , c;
+
+    public Triangle() {
+    }
+
+    public Triangle(int a, int b, int c) throws TriangleException {
+        //验证
+        if (check()) {
+            this.a = a;
+            this.b = b;
+            this.c = c;
+        }else{
+            //System.out.println("三角形不合法");
+            //抛出异常
+            throw new TriangleException("三角形不合法");
+        }
+    }
+
+
+
+    private boolean check(){
+        return a + b > c && a + c > b && b + c > a;
+    }
+
+    @Override
+    public String toString() {
+        return "Triangle{" +
+                "a=" + a +
+                ", b=" + b +
+                ", c=" + c +
+                '}';
+    }
+}

+ 17 - 0
JavaSE/day12/src/com/lc/day12/throwable04/TriangleException.java

@@ -0,0 +1,17 @@
+package com.lc.day12.throwable04;
+
+/**
+ * ClassName: TriangleException
+ *
+ * @Author 爱扣钉-陈晨
+ * @Create 2024/1/8 10:53
+ * @Version 1.0
+ */
+//继承 RuntimeException
+public class TriangleException extends Exception{
+
+    //添加构造方法
+    public TriangleException(String message) {
+        super(message);
+    }
+}