fanjialong před 5 dny
rodič
revize
a7aa4ef050
51 změnil soubory, kde provedl 867 přidání a 0 odebrání
  1. 31 0
      java-base-project10/day14/src/com/sf/_01_抽象类/Employee.java
  2. 9 0
      java-base-project10/day14/src/com/sf/_01_抽象类/Finance.java
  3. 8 0
      java-base-project10/day14/src/com/sf/_01_抽象类/HR.java
  4. 8 0
      java-base-project10/day14/src/com/sf/_01_抽象类/Manger.java
  5. 14 0
      java-base-project10/day14/src/com/sf/_01_抽象类/Test.java
  6. 14 0
      java-base-project10/day14/src/com/sf/_02_抽象类练习/Circle.java
  7. 17 0
      java-base-project10/day14/src/com/sf/_02_抽象类练习/Rectangle.java
  8. 11 0
      java-base-project10/day14/src/com/sf/_02_抽象类练习/Shape.java
  9. 11 0
      java-base-project10/day14/src/com/sf/_02_抽象类练习/Test.java
  10. 10 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Anmail.java
  11. 13 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Dog.java
  12. 13 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Fish.java
  13. 15 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Frog.java
  14. 10 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/ISwim.java
  15. 9 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Rabbit.java
  16. 20 0
      java-base-project10/day14/src/com/sf/_03_接口入门案例/Test.java
  17. 25 0
      java-base-project10/day14/src/com/sf/_04_实现多个接口/FunImp.java
  18. 5 0
      java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun1.java
  19. 5 0
      java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun2.java
  20. 5 0
      java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun3.java
  21. 5 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo1/IUSB.java
  22. 8 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Keyboard.java
  23. 8 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Mouse.java
  24. 20 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Test.java
  25. 15 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Applicance.java
  26. 19 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/IFun.java
  27. 5 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/RemoteControl.java
  28. 32 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/SmartTV.java
  29. 40 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Test.java
  30. 7 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Timerable.java
  31. 32 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo2/WashingMachine.java
  32. 8 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Magicable.java
  33. 19 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Mege.java
  34. 5 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Phyiscalable.java
  35. 33 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Role.java
  36. 23 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Test.java
  37. 17 0
      java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Warrior.java
  38. 16 0
      java-base-project10/day14/src/com/sf/_06_内部类/_01_成员内部类/Outer.java
  39. 10 0
      java-base-project10/day14/src/com/sf/_06_内部类/_01_成员内部类/Test.java
  40. 25 0
      java-base-project10/day14/src/com/sf/_06_内部类/_02_静态内部类/Outer.java
  41. 12 0
      java-base-project10/day14/src/com/sf/_06_内部类/_02_静态内部类/Test.java
  42. 10 0
      java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Dog.java
  43. 8 0
      java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/ISwimable.java
  44. 10 0
      java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Student.java
  45. 54 0
      java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Test.java
  46. 21 0
      java-base-project10/day14/src/com/sf/_07_综合练习/Test.java
  47. 76 0
      java-base-project10/day14/src/com/sf/_07_综合练习/domain/Amount.java
  48. 10 0
      java-base-project10/day14/src/com/sf/_07_综合练习/service/ILoginService.java
  49. 40 0
      java-base-project10/day14/src/com/sf/_07_综合练习/service/LoginServiceImpl.java
  50. 13 0
      java-base-project10/day14/src/com/sf/_07_综合练习/util/MyArrayUtils.java
  51. 13 0
      java-base-project10/day14/src/com/sf/_07_综合练习/util/StringUtils.java

+ 31 - 0
java-base-project10/day14/src/com/sf/_01_抽象类/Employee.java

@@ -0,0 +1,31 @@
+package com.sf._01_抽象类;
+
+public abstract class Employee {
+    private String name;
+    private int age;
+    private double salary;
+
+    public Employee() {
+    }
+
+    public Employee(String name, int age, double salary) {
+        this.name = name;
+        this.age = age;
+        this.salary = salary;
+    }
+
+    /**
+     * 抽象类当中可以包含之前的普通方法 成员变量  构造器
+     * 抽象类和普通类的区别就是里面多了抽象方法
+     * 记住抽象方法一定是在抽象类当中
+     *
+     * 如果你这个类是一个抽象类,
+     *    1 子类必须重写父类的抽象方法
+     *    2 要不然你让你的子类也声明成抽象类
+     */
+    public abstract void work();
+
+    public void showInfo(){
+
+    }
+}

+ 9 - 0
java-base-project10/day14/src/com/sf/_01_抽象类/Finance.java

@@ -0,0 +1,9 @@
+package com.sf._01_抽象类;
+
+public class Finance extends Employee{
+
+    @Override
+    public void work() {
+        System.out.println("财务管钱的");
+    }
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_01_抽象类/HR.java

@@ -0,0 +1,8 @@
+package com.sf._01_抽象类;
+
+public class HR extends Employee {
+    @Override
+    public void work() {
+        System.out.println("HR 招聘员工");
+    }
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_01_抽象类/Manger.java

@@ -0,0 +1,8 @@
+package com.sf._01_抽象类;
+
+public class Manger extends Employee {
+    @Override
+    public void work() {
+        System.out.println("项目经理管理项目");
+    }
+}

+ 14 - 0
java-base-project10/day14/src/com/sf/_01_抽象类/Test.java

@@ -0,0 +1,14 @@
+package com.sf._01_抽象类;
+
+public class Test {
+    public static void main(String[] args) {
+//        Employee employee = new Employee();
+        employeeWork(new HR());
+        employeeWork(new Manger());
+        employeeWork(new Finance());
+    }
+
+    public static void employeeWork(Employee employee){
+        employee.work();
+    }
+}

+ 14 - 0
java-base-project10/day14/src/com/sf/_02_抽象类练习/Circle.java

@@ -0,0 +1,14 @@
+package com.sf._02_抽象类练习;
+
+public class Circle extends Shape {
+    private double radius;
+
+    public Circle(double radius) {
+        this.radius = radius;
+    }
+
+    @Override
+    public double calculateArea() {
+        return 3.14 * radius * radius;
+    }
+}

+ 17 - 0
java-base-project10/day14/src/com/sf/_02_抽象类练习/Rectangle.java

@@ -0,0 +1,17 @@
+package com.sf._02_抽象类练习;
+
+public class Rectangle extends Shape {
+    private double width;
+    private double height;
+
+    public Rectangle(double width, double height) {
+        this.width = width;
+        this.height = height;
+    }
+
+
+    @Override
+    public double calculateArea() {
+        return width * height;
+    }
+}

+ 11 - 0
java-base-project10/day14/src/com/sf/_02_抽象类练习/Shape.java

@@ -0,0 +1,11 @@
+package com.sf._02_抽象类练习;
+
+public abstract class Shape {
+    // 计算面积
+    public abstract double calculateArea();
+
+    // 普通方法
+    public void showInfo(){
+        System.out.println("这是一个图形");
+    }
+}

+ 11 - 0
java-base-project10/day14/src/com/sf/_02_抽象类练习/Test.java

@@ -0,0 +1,11 @@
+package com.sf._02_抽象类练习;
+
+public class Test {
+    public static void main(String[] args) {
+        Circle circle = new Circle(3);
+        System.out.println(circle.calculateArea());
+
+        Rectangle rectangle = new Rectangle(5,3);
+        System.out.println(rectangle.calculateArea());
+    }
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Anmail.java

@@ -0,0 +1,10 @@
+package com.sf._03_接口入门案例;
+
+public abstract class Anmail {
+    private String name;
+    private int age;
+    private String color;
+
+    public abstract void eat();
+
+}

+ 13 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Dog.java

@@ -0,0 +1,13 @@
+package com.sf._03_接口入门案例;
+
+public class Dog extends Anmail implements ISwim{
+
+    @Override
+    public void eat() {
+        System.out.println("吃狗粮");
+    }
+
+    public void swimming(){
+        System.out.println("狗刨");
+    }
+}

+ 13 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Fish.java

@@ -0,0 +1,13 @@
+package com.sf._03_接口入门案例;
+
+public class Fish extends Anmail implements ISwim  {
+    @Override
+    public void eat() {
+        System.out.println("吃鱼食");
+    }
+
+    @Override
+    public void swimming() {
+        System.out.println("鱼游");
+    }
+}

+ 15 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Frog.java

@@ -0,0 +1,15 @@
+package com.sf._03_接口入门案例;
+
+public class Frog extends Anmail implements ISwim{
+
+    @Override
+    public void eat() {
+        System.out.println("吃昆虫");
+    }
+
+    public void swimming(){
+        System.out.println("蛙泳");
+    }
+
+
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/ISwim.java

@@ -0,0 +1,10 @@
+package com.sf._03_接口入门案例;
+
+public interface ISwim {
+    /**
+     * 有用方法
+     *
+     * 接口当中所有的方法默认就是抽象方法
+     */
+    void swimming();
+}

+ 9 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Rabbit.java

@@ -0,0 +1,9 @@
+package com.sf._03_接口入门案例;
+
+public class Rabbit extends Anmail{
+
+    @Override
+    public void eat() {
+        System.out.println("吃胡萝卜");
+    }
+}

+ 20 - 0
java-base-project10/day14/src/com/sf/_03_接口入门案例/Test.java

@@ -0,0 +1,20 @@
+package com.sf._03_接口入门案例;
+
+public class Test {
+    public static void main(String[] args) {
+        /**
+         * 多态可以出现在继承的关系中也可以出现在实现关系中
+         * 继承  类于类之间关系
+         * 实现  接口于类关系
+         *
+         */
+        swim(new Dog());
+        swim(new Frog());
+        swim(new Fish());
+//        swim(new Rabbit());
+    }
+
+    public static void swim(ISwim swim){
+        swim.swimming();
+    }
+}

+ 25 - 0
java-base-project10/day14/src/com/sf/_04_实现多个接口/FunImp.java

@@ -0,0 +1,25 @@
+package com.sf._04_实现多个接口;
+
+public class FunImp implements IIFun1{
+    @Override
+    public void method1() {
+
+    }
+
+    @Override
+    public void method2() {
+
+    }
+
+    @Override
+    public void method3() {
+
+    }
+    /**
+     * 类于类之间关系      继承
+     * 类于接口之间关系    实现
+     * 接口于接口之间关系  继承
+     */
+
+
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun1.java

@@ -0,0 +1,5 @@
+package com.sf._04_实现多个接口;
+
+public interface IIFun1 extends IIFun2,IIFun3 {
+    void method1();
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun2.java

@@ -0,0 +1,5 @@
+package com.sf._04_实现多个接口;
+
+public interface IIFun2 {
+    void method2();
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_04_实现多个接口/IIFun3.java

@@ -0,0 +1,5 @@
+package com.sf._04_实现多个接口;
+
+public interface IIFun3 {
+    void method3();
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo1/IUSB.java

@@ -0,0 +1,5 @@
+package com.sf._05_接口练习.demo1;
+
+public interface IUSB {
+    void usb();
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Keyboard.java

@@ -0,0 +1,8 @@
+package com.sf._05_接口练习.demo1;
+
+public class Keyboard implements IUSB {
+    @Override
+    public void usb() {
+        System.out.println("键盘接入");
+    }
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Mouse.java

@@ -0,0 +1,8 @@
+package com.sf._05_接口练习.demo1;
+
+public class Mouse implements IUSB {
+    @Override
+    public void usb() {
+        System.out.println("鼠标接入");
+    }
+}

+ 20 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo1/Test.java

@@ -0,0 +1,20 @@
+package com.sf._05_接口练习.demo1;
+
+public class Test {
+
+    /**
+     * 1 创建IUSB 接口 , 在接口当中提供方法usb方法
+     * 2 创建Mouse 鼠标类, 鼠标实现IUSB 接口, 并且实现usb 方法   鼠标usb 对接
+     * 3 创建建盘Keyboard  , 实现IUSB 接口, 并且实现usb 方法    键盘usb 对接
+     *
+     * 4 创建test 类, 在test 类当中提供方法  usb(IUSB usb)  分别传入鼠标和键盘
+     */
+    public static void main(String[] args) {
+        usb(new Mouse());
+        usb(new Keyboard());
+    }
+
+    public static void usb(IUSB iusb){
+        iusb.usb();
+    }
+}

+ 15 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Applicance.java

@@ -0,0 +1,15 @@
+package com.sf._05_接口练习.demo2;
+
+public abstract class Applicance implements IFun{
+    private String brand;
+    private double price;
+
+    public Applicance(String brand, double price) {
+        this.brand = brand;
+        this.price = price;
+    }
+
+    public void getInfo(){
+        System.out.println("品牌:"+ brand +"价格:"+ price);
+    }
+}

+ 19 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/IFun.java

@@ -0,0 +1,19 @@
+package com.sf._05_接口练习.demo2;
+
+public interface IFun {
+    void start();
+
+    void stop();
+
+    void setTimer(int minutes);
+
+    /**
+     * 远程开启
+     */
+    void remoteStart();
+
+    /**
+     * 远程停止
+     */
+    void remoteStop();
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/RemoteControl.java

@@ -0,0 +1,5 @@
+package com.sf._05_接口练习.demo2;
+
+public interface RemoteControl extends IFun{
+
+}

+ 32 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/SmartTV.java

@@ -0,0 +1,32 @@
+package com.sf._05_接口练习.demo2;
+
+public class SmartTV extends Applicance implements RemoteControl,Timerable {
+    public SmartTV(String brand, double price) {
+        super(brand, price);
+    }
+
+    @Override
+    public void start() {
+        System.out.println("智能电视开机,显示画面");
+    }
+
+    @Override
+    public void stop() {
+        System.out.println("智能电视关机,节省电量");
+    }
+
+    @Override
+    public void remoteStart() {
+        System.out.println("远程控制电视开机");
+    }
+
+    @Override
+    public void remoteStop() {
+        System.out.println("远程控制电视关机");
+    }
+
+    @Override
+    public void setTimer(int minutes) {
+        System.out.println("电视在:"+ minutes +"分钟后关机");
+    }
+}

+ 40 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Test.java

@@ -0,0 +1,40 @@
+package com.sf._05_接口练习.demo2;
+
+public class Test {
+
+    public static void main(String[] args) {
+        SmartTV smartTV = new SmartTV("小米",3999);
+        WashingMachine washingMachine = new WashingMachine("海尔",1999);
+
+        work(smartTV);
+        System.out.println("=====");
+        work(washingMachine);
+//        smartTV.setTimer(10);
+//        smartTV.remoteStart();
+//        smartTV.remoteStop();
+//        smartTV.start();
+//        smartTV.stop();
+//
+//        System.out.println("=======================");
+//
+//        washingMachine.setTimer(10);
+//        washingMachine.start();
+//        washingMachine.stop();
+    }
+
+    public static void work(IFun  fun){
+        if(fun instanceof SmartTV){
+            fun.setTimer(10);
+            fun.remoteStart();
+            fun.remoteStop();
+            fun.start();
+            fun.stop();
+        }else if(fun instanceof WashingMachine){
+            fun.setTimer(10);
+            fun.start();
+            fun.stop();
+        }
+    }
+
+
+}

+ 7 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/Timerable.java

@@ -0,0 +1,7 @@
+package com.sf._05_接口练习.demo2;
+
+public interface Timerable extends IFun{
+    /**
+     * 设置定时,单位分钟
+     */
+}

+ 32 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo2/WashingMachine.java

@@ -0,0 +1,32 @@
+package com.sf._05_接口练习.demo2;
+
+public class WashingMachine  extends Applicance implements Timerable {
+    public WashingMachine(String brand, double price) {
+        super(brand, price);
+    }
+
+    @Override
+    public void start() {
+        System.out.println("洗衣机开始洗衣服");
+    }
+
+    @Override
+    public void stop() {
+        System.out.println("洗衣机完成洗衣服");
+    }
+
+    @Override
+    public void setTimer(int minutes) {
+        System.out.println("洗衣机定时:"+ minutes +"分钟后结束");
+    }
+
+    @Override
+    public void remoteStart() {
+
+    }
+
+    @Override
+    public void remoteStop() {
+
+    }
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Magicable.java

@@ -0,0 +1,8 @@
+package com.sf._05_接口练习.demo3;
+
+public interface Magicable {
+    /**
+     * 魔法攻击
+     */
+    void caseMagic();
+}

+ 19 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Mege.java

@@ -0,0 +1,19 @@
+package com.sf._05_接口练习.demo3;
+
+public class Mege extends Role implements Magicable {
+
+
+    public Mege(String name) {
+        super(name);
+    }
+
+    @Override
+    public void caseMagic() {
+        System.out.println(getName() + "法师释放火球术造成100点伤害");
+    }
+
+    @Override
+    public void attack() {
+        System.out.println(getName()+"法师使用发张敲击");
+    }
+}

+ 5 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Phyiscalable.java

@@ -0,0 +1,5 @@
+package com.sf._05_接口练习.demo3;
+
+public interface Phyiscalable {
+    void strongAttack();
+}

+ 33 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Role.java

@@ -0,0 +1,33 @@
+package com.sf._05_接口练习.demo3;
+
+public abstract class Role {
+    private String name;
+    private int level = 1;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getLevel() {
+        return level;
+    }
+
+    public void setLevel(int level) {
+        this.level = level;
+    }
+
+    public Role(String name) {
+        this.name = name;
+    }
+
+    public abstract void attack();
+
+    public void levelUp(){
+        level ++;
+        System.out.println("恭喜你升到了"+ level+"等级");
+    }
+}

+ 23 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Test.java

@@ -0,0 +1,23 @@
+package com.sf._05_接口练习.demo3;
+
+public class Test {
+    public static void main(String[] args) {
+        userSkill(new Mege("艾莎"));
+        userSkill(new Warrior("狂战士"));
+    }
+    public static void userSkill(Role role){
+        // role 可以能mege  可以是wari
+        if(role instanceof Mege){
+            // 是一个方法
+            // 转成一个法师
+            Mege mege = (Mege) role;
+            mege.levelUp();
+            mege.attack();
+            mege.caseMagic();
+        }else if(role instanceof Warrior){
+            Warrior warrior = (Warrior) role;
+            warrior.attack();
+            warrior.strongAttack();
+        }
+    }
+}

+ 17 - 0
java-base-project10/day14/src/com/sf/_05_接口练习/demo3/Warrior.java

@@ -0,0 +1,17 @@
+package com.sf._05_接口练习.demo3;
+
+public class Warrior extends Role implements Phyiscalable{
+    public Warrior(String name) {
+        super(name);
+    }
+
+    @Override
+    public void strongAttack() {
+        System.out.println(getName() +"战士发动旋风斩 ,造成200点伤害");
+    }
+
+    @Override
+    public void attack() {
+        System.out.println(getName() + "战士用剑劈砍");
+    }
+}

+ 16 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_01_成员内部类/Outer.java

@@ -0,0 +1,16 @@
+package com.sf._06_内部类._01_成员内部类;
+
+public class Outer {
+    private int a =10;
+    // 成员内部类
+    class Inner{
+        private int a = 20;
+
+        public void method(){
+            int a = 30;
+            System.out.println(a);  //30
+            System.out.println(this.a);  //20
+            System.out.println(Outer.this.a);  //10
+        }
+    }
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_01_成员内部类/Test.java

@@ -0,0 +1,10 @@
+package com.sf._06_内部类._01_成员内部类;
+
+public class Test {
+    public static void main(String[] args) {
+        //创建一个内部类对象
+        //先创建外部类对象在创建内部类对象
+        Outer.Inner inner = new Outer().new Inner();
+        inner.method();
+    }
+}

+ 25 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_02_静态内部类/Outer.java

@@ -0,0 +1,25 @@
+package com.sf._06_内部类._02_静态内部类;
+
+public class Outer {
+    // 定义一个静态变量
+    public static String ouTname = "四福科技";
+
+    public void eat(){
+      
+    }
+    /**
+     * 定一个静态内部类
+     * 和成员内部类区别就是加了一个static
+     */
+    public static class  Inner{
+        private String name;
+        public Inner(String name){
+            this .name = name;
+        }
+        public void showName(){
+            System.out.println("内部类名字"+ this.name);
+            // 静态内部类可以直接访问外部类的静态成员
+            System.out.println("外部类的名字:"+ ouTname);
+        }
+    }
+}

+ 12 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_02_静态内部类/Test.java

@@ -0,0 +1,12 @@
+package com.sf._06_内部类._02_静态内部类;
+
+public class Test {
+    public static void main(String[] args) {
+        /**
+         * 静态内部类创建语法
+         * Outer.Inner iner = new Outer.Inner("zhangsan");
+         */
+        Outer.Inner inner = new Outer.Inner("zhangsan");
+        inner.showName();
+    }
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Dog.java

@@ -0,0 +1,10 @@
+package com.sf._06_内部类._03_匿名内部类;
+
+import com.sf._03_接口入门案例.ISwim;
+
+public class Dog implements ISwim {
+    @Override
+    public void swimming() {
+        System.out.println("狗游泳");
+    }
+}

+ 8 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/ISwimable.java

@@ -0,0 +1,8 @@
+package com.sf._06_内部类._03_匿名内部类;
+
+public interface ISwimable {
+    /**
+     * 游泳方法
+     */
+    void swimming();
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Student.java

@@ -0,0 +1,10 @@
+package com.sf._06_内部类._03_匿名内部类;
+
+import com.sf._03_接口入门案例.ISwim;
+
+public class Student implements ISwim {
+    @Override
+    public void swimming() {
+        System.out.println("学生游泳");
+    }
+}

+ 54 - 0
java-base-project10/day14/src/com/sf/_06_内部类/_03_匿名内部类/Test.java

@@ -0,0 +1,54 @@
+package com.sf._06_内部类._03_匿名内部类;
+
+import com.sf._03_接口入门案例.ISwim;
+
+public class Test {
+    public static void main(String[] args) {
+//        ISwim swim = new Student();
+//        swim.swimming();
+
+        /**
+         * 前提:
+         * 继承/实现关系当中
+         *
+         * new  接口(){
+         *     重写方法swimming(){
+         *
+         *     }
+         * }
+         */
+
+//        // 就相当于你创建了一个Dog 类实现了ISwim 接口
+//        ISwimable iable = new ISwimable() {
+//            @Override
+//            public void swimming() {
+//                System.out.println("鱼游泳");
+//            }
+//        };
+//        iable.swimming();
+//
+//        // 就相当于你创建了一个Dog 类实现了ISwim 接口
+//        new ISwimable() {
+//            @Override
+//            public void swimming() {
+//                System.out.println("狗游泳");
+//            }
+//        }.swimming();
+        ISwim swim = new Student();
+        swim(swim);
+
+        swim(new Dog());
+
+        swim(new ISwim() {
+            @Override
+            public void swimming() {
+                System.out.println("鱼游泳");
+            }
+        });
+    }
+
+
+    public static void swim(ISwim swim){
+        swim.swimming();
+    }
+}

+ 21 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/Test.java

@@ -0,0 +1,21 @@
+package com.sf._07_综合练习;
+
+import com.sf._07_综合练习.domain.Amount;
+import com.sf._07_综合练习.service.ILoginService;
+import com.sf._07_综合练习.service.LoginServiceImpl;
+
+import java.util.Scanner;
+
+public class Test {
+    public static void main(String[] args) {
+        ILoginService service = new LoginServiceImpl();
+        Scanner s = new Scanner(System.in);
+        System.out.println("请录入账号");
+        String username = s.next();
+        System.out.println("请录入密码");
+        String password = s.next();
+        Amount amount = new Amount(username,password);
+
+        service.login(amount);
+    }
+}

+ 76 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/domain/Amount.java

@@ -0,0 +1,76 @@
+package com.sf._07_综合练习.domain;
+
+public class Amount {
+    private String username;
+    private String password;
+
+    public static Amount[] amounts = new Amount[3];
+
+    static {
+        amounts[0] = new Amount("zhangsan","123");
+        amounts[1] = new Amount("lisi","123");
+        amounts[2] = new Amount("wangwu","123");
+    }
+
+    public Amount() {
+    }
+
+    public Amount(String username, String password) {
+        this.username = username;
+        this.password = password;
+    }
+
+    /**
+     * 获取
+     * @return amounts
+     */
+    public static Amount[] getAmounts() {
+        return amounts;
+    }
+
+    /**
+     * 设置
+     * @param amounts
+     */
+    public static void setAmounts(Amount[] amounts) {
+        Amount.amounts = amounts;
+    }
+
+    /**
+     * 获取
+     * @return username
+     */
+    public String getUsername() {
+        return username;
+    }
+
+    /**
+     * 设置
+     * @param username
+     */
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    /**
+     * 获取
+     * @return password
+     */
+    public String getPassword() {
+        return password;
+    }
+
+    /**
+     * 设置
+     * @param password
+     */
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String toString() {
+        return "Amount{username = " + username + ", password = " + password + ", amounts = " + amounts + "}";
+    }
+
+
+}

+ 10 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/service/ILoginService.java

@@ -0,0 +1,10 @@
+package com.sf._07_综合练习.service;
+
+import com.sf._07_综合练习.domain.Amount;
+
+public interface ILoginService {
+    /**
+     * 登录方法
+     */
+    void login(Amount amount);
+}

+ 40 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/service/LoginServiceImpl.java

@@ -0,0 +1,40 @@
+package com.sf._07_综合练习.service;
+
+import com.sf._07_综合练习.domain.Amount;
+import com.sf._07_综合练习.util.MyArrayUtils;
+import com.sf._07_综合练习.util.StringUtils;
+
+public class LoginServiceImpl implements ILoginService {
+
+    @Override
+    public void login(Amount amount) {
+        // 1 判断账号和密码是否为空
+        if(StringUtils.isEmpty(amount.getUsername()) ||
+                StringUtils.isEmpty(amount.getPassword())){
+            System.out.println("账号或者密码不能为空");
+            return;
+        }
+        // 获取Amount 中静态数组
+        Amount[] amounts = Amount.amounts;
+        // 打印数组当中内容
+        MyArrayUtils.printArray(amounts);
+        // 遍历数组内容和传入账号和密码去比较
+        String username = amount.getUsername();    // 控制台录入账号
+        String password = amount.getPassword();    // 控制台录入密码
+        // 模拟数据库当中账号和密码
+        // 遍历的提前创建3个账号   zhangsan  123   lisi 123   wangwu 123
+        boolean flag = false;
+        for (Amount amount1 : amounts) {
+            if(username.equals(amount1.getUsername())&&
+                    password.equals(amount1.getPassword())){
+                flag = true;
+                break;
+            }
+        }
+        if(flag){
+            System.out.println("登录成功");
+        }else{
+            System.out.println("登录失败");
+        }
+    }
+}

+ 13 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/util/MyArrayUtils.java

@@ -0,0 +1,13 @@
+package com.sf._07_综合练习.util;
+
+import com.sf._07_综合练习.domain.Amount;
+
+public class MyArrayUtils {
+    private MyArrayUtils(){}
+
+    public static void printArray(Amount[] amounts){
+        for (Amount amount : amounts) {
+            System.out.println("账户:"+ amount.getUsername()+"密码:"+ amount.getPassword());
+        }
+    }
+}

+ 13 - 0
java-base-project10/day14/src/com/sf/_07_综合练习/util/StringUtils.java

@@ -0,0 +1,13 @@
+package com.sf._07_综合练习.util;
+
+public class StringUtils {
+    private StringUtils(){}
+
+    public static boolean isEmpty(String str){
+        if(str==null || "".equals(str)){
+            return true;
+        }else{
+            return false;
+        }
+    }
+}