guyanqing před 1 rokem
rodič
revize
c28fc9df34
63 změnil soubory, kde provedl 637 přidání a 0 odebrání
  1. 13 0
      src/main/java/com/sf/day09/Test01.java
  2. 15 0
      src/main/java/com/sf/day09/Test02.java
  3. 34 0
      src/main/java/com/sf/day09/Test03.java
  4. 6 0
      src/main/java/com/sf/day09/abstractpackage/A.java
  5. 6 0
      src/main/java/com/sf/day09/abstractpackage/B.java
  6. 18 0
      src/main/java/com/sf/day09/abstractpackage/C.java
  7. 75 0
      src/main/java/com/sf/day09/abstractpackage/Father.java
  8. 45 0
      src/main/java/com/sf/day09/abstractpackage/Son.java
  9. 14 0
      src/main/java/com/sf/day09/abstractpackage/Son2.java
  10. 23 0
      src/main/java/com/sf/day09/abstractpackage/Test.java
  11. 10 0
      src/main/java/com/sf/day09/abstractpackage/Test1.java
  12. 29 0
      src/main/java/com/sf/day09/finalpackage/Test02.java
  13. 18 0
      src/main/java/com/sf/day09/finalpackage/test01.java
  14. 9 0
      src/main/java/com/sf/day09/homework/FightAble.java
  15. 10 0
      src/main/java/com/sf/day09/homework/impl/Mage.java
  16. 35 0
      src/main/java/com/sf/day09/homework/impl/Player.java
  17. 10 0
      src/main/java/com/sf/day09/homework/impl/Soldier.java
  18. 31 0
      src/main/java/com/sf/day09/interfacepackage/BuildCarsInterface.java
  19. 15 0
      src/main/java/com/sf/day09/interfacepackage/Car.java
  20. 6 0
      src/main/java/com/sf/day09/interfacepackage/Car2.java
  21. 11 0
      src/main/java/com/sf/day09/interfacepackage/Test01.java
  22. 4 0
      src/main/java/com/sf/day09/interfacepackage/Test02.java
  23. 21 0
      src/main/java/com/sf/day09/interfacepackage/TestCar.java
  24. 15 0
      src/main/java/com/sf/day09/interfacepackage/impl/BigCar.java
  25. 37 0
      src/main/java/com/sf/day09/interfacepackage/impl/Car2Impl.java
  26. 19 0
      src/main/java/com/sf/day09/interfacepackage/impl/CarImpl.java
  27. 7 0
      src/main/java/com/sf/day09/many/Animal.java
  28. 14 0
      src/main/java/com/sf/day09/many/Cat.java
  29. 34 0
      src/main/java/com/sf/day09/many/Dog.java
  30. 25 0
      src/main/java/com/sf/day09/sort/Father.java
  31. 28 0
      src/main/java/com/sf/day09/sort/Son.java
  32. binární
      target/classes/com/sf/day08/staticmethod/TestStaticMethod.class
  33. binární
      target/classes/com/sf/day09/Test01.class
  34. binární
      target/classes/com/sf/day09/Test02.class
  35. binární
      target/classes/com/sf/day09/Test03.class
  36. binární
      target/classes/com/sf/day09/abstractpackage/A.class
  37. binární
      target/classes/com/sf/day09/abstractpackage/B.class
  38. binární
      target/classes/com/sf/day09/abstractpackage/C.class
  39. binární
      target/classes/com/sf/day09/abstractpackage/Father.class
  40. binární
      target/classes/com/sf/day09/abstractpackage/Son.class
  41. binární
      target/classes/com/sf/day09/abstractpackage/Son2.class
  42. binární
      target/classes/com/sf/day09/abstractpackage/Test.class
  43. binární
      target/classes/com/sf/day09/abstractpackage/Test1.class
  44. binární
      target/classes/com/sf/day09/finalpackage/Test02.class
  45. binární
      target/classes/com/sf/day09/finalpackage/test01.class
  46. binární
      target/classes/com/sf/day09/homework/FightAble.class
  47. binární
      target/classes/com/sf/day09/homework/impl/Mage.class
  48. binární
      target/classes/com/sf/day09/homework/impl/Player.class
  49. binární
      target/classes/com/sf/day09/homework/impl/Soldier.class
  50. binární
      target/classes/com/sf/day09/interfacepackage/BuildCarsInterface.class
  51. binární
      target/classes/com/sf/day09/interfacepackage/Car.class
  52. binární
      target/classes/com/sf/day09/interfacepackage/Car2.class
  53. binární
      target/classes/com/sf/day09/interfacepackage/Test01.class
  54. binární
      target/classes/com/sf/day09/interfacepackage/Test02.class
  55. binární
      target/classes/com/sf/day09/interfacepackage/TestCar.class
  56. binární
      target/classes/com/sf/day09/interfacepackage/impl/BigCar.class
  57. binární
      target/classes/com/sf/day09/interfacepackage/impl/Car2Impl.class
  58. binární
      target/classes/com/sf/day09/interfacepackage/impl/CarImpl.class
  59. binární
      target/classes/com/sf/day09/many/Animal.class
  60. binární
      target/classes/com/sf/day09/many/Cat.class
  61. binární
      target/classes/com/sf/day09/many/Dog.class
  62. binární
      target/classes/com/sf/day09/sort/Father.class
  63. binární
      target/classes/com/sf/day09/sort/Son.class

+ 13 - 0
src/main/java/com/sf/day09/Test01.java

@@ -0,0 +1,13 @@
+package com.sf.day09;
+
+/**
+ * 局部代码块
+ */
+public class Test01 {
+    public static void main(String[] args) {
+        {
+            int n = 1;
+        }
+//        System.out.println(n);
+    }
+}

+ 15 - 0
src/main/java/com/sf/day09/Test02.java

@@ -0,0 +1,15 @@
+package com.sf.day09;
+
+public class Test02 {
+    public static String name;
+    //静态代码块
+    static {
+        name= "zhangSan";
+        System.out.println("静态代码块执行...");
+    }
+
+    public static void main(String[] args) {
+        System.out.println("开始执行");
+        System.out.println(name);
+    }
+}

+ 34 - 0
src/main/java/com/sf/day09/Test03.java

@@ -0,0 +1,34 @@
+package com.sf.day09;
+
+public class Test03 {
+
+    private String name;
+
+    {
+        name = "lisi";
+        System.out.println("实例代码块执行了。。。");
+    }
+
+    public Test03() {
+        System.out.println("无参构造器开始执行。。。");
+    }
+
+    public Test03(String name) {
+        this.name = name;
+        System.out.println("有参构造器开始执行。。。");
+    }
+
+    @Override
+    public String toString() {
+        return "Test03{" +
+                "name='" + name + '\'' +
+                '}';
+    }
+
+    public static void main(String[] args) {
+        Test03 test03 = new Test03();
+        System.out.println(test03);
+        Test03 wangwu = new Test03("wangwu");
+        System.out.println(wangwu);
+    }
+}

+ 6 - 0
src/main/java/com/sf/day09/abstractpackage/A.java

@@ -0,0 +1,6 @@
+package com.sf.day09.abstractpackage;
+
+public abstract class A {
+    public int numa = 10;
+    public abstract void showA();
+}

+ 6 - 0
src/main/java/com/sf/day09/abstractpackage/B.java

@@ -0,0 +1,6 @@
+package com.sf.day09.abstractpackage;
+
+public abstract class B extends A{
+    public int numb = 20;
+    public abstract void showB();
+}

+ 18 - 0
src/main/java/com/sf/day09/abstractpackage/C.java

@@ -0,0 +1,18 @@
+package com.sf.day09.abstractpackage;
+
+public class C extends B{
+    public int numc = 30;
+    @Override
+    public void showA() {
+        System.out.println("numA=="+numa);
+    }
+
+    @Override
+    public void showB() {
+        System.out.println("numb=="+numb);
+    }
+
+    public void showC(){
+        System.out.println("numc=="+numc);
+    }
+}

+ 75 - 0
src/main/java/com/sf/day09/abstractpackage/Father.java

@@ -0,0 +1,75 @@
+package com.sf.day09.abstractpackage;
+
+/**
+ * 抽象类  Father
+ */
+public abstract class Father {
+
+    private String name;
+    private Integer age;
+    private Double  weight;
+
+    public Father() {
+    }
+
+    public Father(String name, Integer age, Double weight) {
+        this.name = name;
+        this.age = age;
+        this.weight = weight;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public Double getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Double weight) {
+        this.weight = weight;
+    }
+
+    @Override
+    public String toString() {
+        return "Father{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                ", weight=" + weight +
+                '}';
+    }
+
+    /**
+     * 普通方法
+     */
+    public void run(){
+
+    }
+
+    /**
+     * 抽象方法
+     * 语法结构: 权限修饰符   abstract  数据的返回值类型   方法名(入参(可选));
+     *
+     * 抽象类    : 包含抽象方法的类   可以包含普通方法
+     * 抽象类的语法结构:  权限修饰符   abstract   class   抽象类的类名   {}
+     * 但是      正常类中不能抽象方法
+     */
+
+    public abstract void eat();
+
+    public abstract void sleep();
+
+
+}

+ 45 - 0
src/main/java/com/sf/day09/abstractpackage/Son.java

@@ -0,0 +1,45 @@
+package com.sf.day09.abstractpackage;
+
+public class Son extends Father{
+    private Integer StuNo;
+
+    public Son() {
+    }
+
+    public Son(Integer stuNo) {
+        StuNo = stuNo;
+    }
+
+    public Son(String name, Integer age, Double weight, Integer stuNo) {
+        super(name, age, weight);
+        StuNo = stuNo;
+    }
+
+    public Integer getStuNo() {
+        return StuNo;
+    }
+
+    public void setStuNo(Integer stuNo) {
+        StuNo = stuNo;
+    }
+
+    @Override
+    public String toString() {
+        return "Son{" +
+                "StuNo=" + StuNo +
+                '}';
+    }
+
+    @Override
+    public void eat() {
+        System.out.println("我是子类  正在吃饭");
+    }
+
+    @Override
+    public void sleep() {
+        System.out.println("我是子类  正在睡觉");
+    }
+
+
+
+}

+ 14 - 0
src/main/java/com/sf/day09/abstractpackage/Son2.java

@@ -0,0 +1,14 @@
+package com.sf.day09.abstractpackage;
+
+public class Son2 extends Father{
+
+    @Override
+    public void eat() {
+        System.out.println("我是son2  正在吃饭");
+    }
+
+    @Override
+    public void sleep() {
+        System.out.println("我是son2  正在睡觉");
+    }
+}

+ 23 - 0
src/main/java/com/sf/day09/abstractpackage/Test.java

@@ -0,0 +1,23 @@
+package com.sf.day09.abstractpackage;
+
+import java.util.List;
+
+public class Test {
+    public static void main(String[] args) {
+        Son son = new Son();
+        son.eat();
+        son.sleep();
+
+        System.out.println("========================");
+
+        Son2 son2 = new Son2();
+        son2.eat();
+        son2.sleep();
+
+        System.out.println("=====================");
+        Father father = new Son();
+        father.eat();
+
+
+    }
+}

+ 10 - 0
src/main/java/com/sf/day09/abstractpackage/Test1.java

@@ -0,0 +1,10 @@
+package com.sf.day09.abstractpackage;
+
+public class Test1 {
+    public static void main(String[] args) {
+        C c = new C();
+        c.showA();
+        c.showB();
+        c.showC();
+    }
+}

+ 29 - 0
src/main/java/com/sf/day09/finalpackage/Test02.java

@@ -0,0 +1,29 @@
+package com.sf.day09.finalpackage;
+
+/**
+ *用final修饰的类不能够被继承
+ * final修饰的方法,不能被重写。--子父类
+ */
+public class Test02 extends test01{
+
+    private final int num;   //成员变量
+
+    public Test02(int num) {
+        this.num = num;
+    }
+
+
+    @Override
+    public void m2() {
+    }
+
+    public static void main(String[] args) {
+        final int a;
+        a=1;
+
+
+    }
+
+
+
+}

+ 18 - 0
src/main/java/com/sf/day09/finalpackage/test01.java

@@ -0,0 +1,18 @@
+package com.sf.day09.finalpackage;
+
+import com.sun.org.apache.xpath.internal.operations.String;
+
+/**
+ * final
+ */
+public  class test01 {
+    private Integer id;
+
+    public final void m1(){
+        System.out.println("我是父类的方法m1");
+    }
+
+    public  void m2(){
+        System.out.println("我是父类的方法m2");
+    }
+}

+ 9 - 0
src/main/java/com/sf/day09/homework/FightAble.java

@@ -0,0 +1,9 @@
+package com.sf.day09.homework;
+
+public interface FightAble {
+
+    void specialFight();
+    default void commonFight(){
+        System.out.println("普通打击");
+    }
+}

+ 10 - 0
src/main/java/com/sf/day09/homework/impl/Mage.java

@@ -0,0 +1,10 @@
+package com.sf.day09.homework.impl;
+
+import com.sf.day09.homework.FightAble;
+
+public class Mage implements FightAble {
+    @Override
+    public void specialFight() {
+        System.out.println("法术攻击");
+    }
+}

+ 35 - 0
src/main/java/com/sf/day09/homework/impl/Player.java

@@ -0,0 +1,35 @@
+package com.sf.day09.homework.impl;
+
+import com.sf.day09.homework.FightAble;
+
+import java.util.Scanner;
+
+public class Player {
+    static FightAble select(String str){
+        if(str.equals("法力角色")){
+            FightAble fightAble = new Mage();
+            fightAble.specialFight();
+            fightAble.commonFight();
+            return fightAble;
+        }else if (str.equals("武力角色")){
+            FightAble fightAble = new Soldier();
+            fightAble.specialFight();
+            fightAble.commonFight();
+        }
+        return null;
+    };
+
+    public static void main(String[] args) {
+        Scanner scanner = new Scanner(System.in);
+        while (true){
+            System.out.println("选择:");
+            String next = scanner.next();
+            if(next.equals("exit")){
+                return;
+            }
+            FightAble select = select(next);
+        }
+
+
+    }
+}

+ 10 - 0
src/main/java/com/sf/day09/homework/impl/Soldier.java

@@ -0,0 +1,10 @@
+package com.sf.day09.homework.impl;
+
+import com.sf.day09.homework.FightAble;
+
+public class Soldier implements FightAble {
+    @Override
+    public void specialFight() {
+        System.out.println("武器攻击");
+    }
+}

+ 31 - 0
src/main/java/com/sf/day09/interfacepackage/BuildCarsInterface.java

@@ -0,0 +1,31 @@
+package com.sf.day09.interfacepackage;
+
+public interface BuildCarsInterface {
+     //静态常量  默认是public  static  final
+     int MAX_SPEED = 220;
+
+     int MIN_DISTANCE = 50;
+
+     /**
+      * 抽象方法  public abstract
+      */
+      void runCar();
+      void breakCar();
+
+     /**
+      * 默认方法   default权限修饰符不能省略
+      *
+      * void start();
+      */
+     //默认方法
+     default void start(){
+          System.out.println("开始");
+     }
+
+     //静态方法
+     static void show(){
+          System.out.println("中国汽车必将走向世界");
+     }
+
+
+}

+ 15 - 0
src/main/java/com/sf/day09/interfacepackage/Car.java

@@ -0,0 +1,15 @@
+package com.sf.day09.interfacepackage;
+
+public interface Car {
+    void run();
+
+    /**
+     * 汽车加油   加多少钱 的油
+     * @param money
+     */
+    void eat(Double money);
+
+    default void start(){
+        System.out.println("开始");
+    }
+}

+ 6 - 0
src/main/java/com/sf/day09/interfacepackage/Car2.java

@@ -0,0 +1,6 @@
+package com.sf.day09.interfacepackage;
+
+public interface Car2 extends Car{
+
+    void back();
+}

+ 11 - 0
src/main/java/com/sf/day09/interfacepackage/Test01.java

@@ -0,0 +1,11 @@
+package com.sf.day09.interfacepackage;
+
+public interface Test01 {
+    //接口的成员列表:
+    // 公共的静态常量
+    // 公共的抽象方法
+
+    // 公共的默认方法(JDK1.8以上)
+    // 公共的静态方法(JDK1.8以上)
+    // 私有方法(JDK1.9以上)
+}

+ 4 - 0
src/main/java/com/sf/day09/interfacepackage/Test02.java

@@ -0,0 +1,4 @@
+package com.sf.day09.interfacepackage;
+
+public interface Test02 {
+}

+ 21 - 0
src/main/java/com/sf/day09/interfacepackage/TestCar.java

@@ -0,0 +1,21 @@
+package com.sf.day09.interfacepackage;
+
+import com.sf.day09.interfacepackage.impl.BigCar;
+import com.sf.day09.interfacepackage.impl.CarImpl;
+
+public class TestCar {
+    public static void main(String[] args) {
+        CarImpl car = new CarImpl();
+        car.run();
+        car.eat(400.00);
+        //父类发引用指向子类的对象     多态
+        Car car1 = new CarImpl();
+        car1.eat(200.0);
+        car1.run();
+
+        Car car2 = new BigCar();
+        car2.run();
+        car2.eat(11.11);
+        car2.start();
+    }
+}

+ 15 - 0
src/main/java/com/sf/day09/interfacepackage/impl/BigCar.java

@@ -0,0 +1,15 @@
+package com.sf.day09.interfacepackage.impl;
+
+import com.sf.day09.interfacepackage.Car;
+
+public class BigCar implements Car {
+    @Override
+    public void run() {
+        System.out.println("我是大汽车,正在行驶");
+    }
+
+    @Override
+    public void eat(Double money) {
+        System.out.println("我是大汽车,正在加油"+money);
+    }
+}

+ 37 - 0
src/main/java/com/sf/day09/interfacepackage/impl/Car2Impl.java

@@ -0,0 +1,37 @@
+package com.sf.day09.interfacepackage.impl;
+
+import com.sf.day09.interfacepackage.Car;
+import com.sf.day09.interfacepackage.Car2;
+
+public class Car2Impl implements Car2 {
+    @Override
+    public void run() {
+        System.out.println("car2  run");
+    }
+
+    @Override
+    public void eat(Double money) {
+        System.out.println("car2  eat");
+    }
+
+    @Override
+    public void back() {
+        System.out.println(" car2   BACK");
+    }
+
+
+    public static void main(String[] args) {
+        Car2 car2 = new Car2Impl();
+        car2.back();
+        car2.eat(100.11);
+        car2.run();
+
+        Car car = new Car2Impl();
+        car.start();
+        car.eat(1001.1);
+        car.run();
+
+        Car2 car22 = (Car2) car;
+        car22.back();
+    }
+}

+ 19 - 0
src/main/java/com/sf/day09/interfacepackage/impl/CarImpl.java

@@ -0,0 +1,19 @@
+package com.sf.day09.interfacepackage.impl;
+
+import com.sf.day09.interfacepackage.Car;
+
+/**
+ * 这是Car接口的实现类
+ */
+public class CarImpl implements Car {
+    @Override
+    public void run() {
+        System.out.println("汽车正在行驶");
+    }
+
+    @Override
+    public void eat(Double money) {
+        System.out.println("95加满=====花费"+money+"元");
+    }
+
+}

+ 7 - 0
src/main/java/com/sf/day09/many/Animal.java

@@ -0,0 +1,7 @@
+package com.sf.day09.many;
+
+public class Animal {
+    public void eat(){
+        System.out.println("小动物在吃饭");
+    }
+}

+ 14 - 0
src/main/java/com/sf/day09/many/Cat.java

@@ -0,0 +1,14 @@
+package com.sf.day09.many;
+
+public class Cat extends Animal{
+    @Override
+    public void eat() {
+        System.out.println("小猫在吃饭");
+    }
+
+
+    public void run() {
+        System.out.println("小猫在运动");
+    }
+
+}

+ 34 - 0
src/main/java/com/sf/day09/many/Dog.java

@@ -0,0 +1,34 @@
+package com.sf.day09.many;
+
+public class Dog extends Animal{
+    @Override
+    public void eat() {
+        System.out.println("小狗在吃饭");
+    }
+
+
+    public static void main(String[] args) {
+        Dog dog = new Dog();
+        dog.eat();
+        Cat cat = new Cat();
+        cat.eat();
+
+        Animal animal = new Cat();
+        Cat cat1 = (Cat) animal;
+        if(animal instanceof Cat){
+            cat1.run();
+        }else {
+            Dog dog1 = (Dog) animal;
+        }
+        dog.eat();
+
+
+
+//        Cat cat1 = new Cat();
+        animal.eat();
+//        animal.run();   多态的弊端
+
+
+
+    }
+}

+ 25 - 0
src/main/java/com/sf/day09/sort/Father.java

@@ -0,0 +1,25 @@
+package com.sf.day09.sort;
+
+/**
+ * 验证静态代码块和实例代码块   构造器的  执行顺序    子父类
+ */
+public class Father {
+    private String FName;
+    static {
+        System.out.println("我是  父类  中的  静态  代码块");
+    }
+
+    {
+        System.out.println("我是  父类  中的  实例   代码块");
+    }
+
+    public Father() {
+        System.out.println("我是   父类   中的  无参  构造器");
+    }
+
+    public Father(String FName) {
+        this.FName = FName;
+        System.out.println("我是   父类   中的  有参  构造器");
+    }
+
+}

+ 28 - 0
src/main/java/com/sf/day09/sort/Son.java

@@ -0,0 +1,28 @@
+package com.sf.day09.sort;
+
+public class Son extends Father{
+    private Integer id;
+
+    static {
+        System.out.println("我是  子类  中的  静态  代码块");
+    }
+
+    {
+        System.out.println("我是 子类  中的  实例   代码块");
+    }
+
+    public Son() {
+        System.out.println("我是子类无参构造器");
+    }
+
+    public Son(String FName, Integer id) {
+        super(FName);
+        this.id = id;
+        System.out.println("我是子类有参构造器");
+    }
+
+
+    public static void main(String[] args) {
+        Son son = new Son();
+    }
+}

binární
target/classes/com/sf/day08/staticmethod/TestStaticMethod.class


binární
target/classes/com/sf/day09/Test01.class


binární
target/classes/com/sf/day09/Test02.class


binární
target/classes/com/sf/day09/Test03.class


binární
target/classes/com/sf/day09/abstractpackage/A.class


binární
target/classes/com/sf/day09/abstractpackage/B.class


binární
target/classes/com/sf/day09/abstractpackage/C.class


binární
target/classes/com/sf/day09/abstractpackage/Father.class


binární
target/classes/com/sf/day09/abstractpackage/Son.class


binární
target/classes/com/sf/day09/abstractpackage/Son2.class


binární
target/classes/com/sf/day09/abstractpackage/Test.class


binární
target/classes/com/sf/day09/abstractpackage/Test1.class


binární
target/classes/com/sf/day09/finalpackage/Test02.class


binární
target/classes/com/sf/day09/finalpackage/test01.class


binární
target/classes/com/sf/day09/homework/FightAble.class


binární
target/classes/com/sf/day09/homework/impl/Mage.class


binární
target/classes/com/sf/day09/homework/impl/Player.class


binární
target/classes/com/sf/day09/homework/impl/Soldier.class


binární
target/classes/com/sf/day09/interfacepackage/BuildCarsInterface.class


binární
target/classes/com/sf/day09/interfacepackage/Car.class


binární
target/classes/com/sf/day09/interfacepackage/Car2.class


binární
target/classes/com/sf/day09/interfacepackage/Test01.class


binární
target/classes/com/sf/day09/interfacepackage/Test02.class


binární
target/classes/com/sf/day09/interfacepackage/TestCar.class


binární
target/classes/com/sf/day09/interfacepackage/impl/BigCar.class


binární
target/classes/com/sf/day09/interfacepackage/impl/Car2Impl.class


binární
target/classes/com/sf/day09/interfacepackage/impl/CarImpl.class


binární
target/classes/com/sf/day09/many/Animal.class


binární
target/classes/com/sf/day09/many/Cat.class


binární
target/classes/com/sf/day09/many/Dog.class


binární
target/classes/com/sf/day09/sort/Father.class


binární
target/classes/com/sf/day09/sort/Son.class