guyanqing 10 meses atrás
pai
commit
54b5a93209
35 arquivos alterados com 433 adições e 4 exclusões
  1. 28 0
      src/main/java/com/sf/Test07.java
  2. 4 4
      src/main/java/com/sf/day08/duotai/Test09.java
  3. 5 0
      src/main/java/com/sf/day09/A1.java
  4. 5 0
      src/main/java/com/sf/day09/A2.java
  5. 13 0
      src/main/java/com/sf/day09/A3.java
  6. 13 0
      src/main/java/com/sf/day09/Cook.java
  7. 60 0
      src/main/java/com/sf/day09/Employee.java
  8. 23 0
      src/main/java/com/sf/day09/Manager.java
  9. 68 0
      src/main/java/com/sf/day09/homework/Exercise28.java
  10. 28 0
      src/main/java/com/sf/day09/homework/Test07.java
  11. 14 0
      src/main/java/com/sf/day09/homework/lianxi/ShapeInterface.java
  12. 31 0
      src/main/java/com/sf/day09/homework/lianxi/impl/Circle.java
  13. 88 0
      src/main/java/com/sf/day09/homework/lianxi/impl/Rectangle.java
  14. 22 0
      src/main/java/com/sf/day09/interface1/BuildCarsInterface.java
  15. 31 0
      src/main/java/com/sf/day09/interface1/impl/BuildCarsInterfaceImpl.java
  16. BIN
      target/classes/com/sf/day09/A1.class
  17. BIN
      target/classes/com/sf/day09/A2.class
  18. BIN
      target/classes/com/sf/day09/A3.class
  19. BIN
      target/classes/com/sf/day09/Cook.class
  20. BIN
      target/classes/com/sf/day09/Employee.class
  21. BIN
      target/classes/com/sf/day09/Manager.class
  22. BIN
      target/classes/com/sf/day09/homework/Apple.class
  23. BIN
      target/classes/com/sf/day09/homework/CompareAble.class
  24. BIN
      target/classes/com/sf/day09/homework/CompareBig.class
  25. BIN
      target/classes/com/sf/day09/homework/CompareColor.class
  26. BIN
      target/classes/com/sf/day09/homework/Exercise28.class
  27. BIN
      target/classes/com/sf/day09/homework/Father.class
  28. BIN
      target/classes/com/sf/day09/homework/Son.class
  29. BIN
      target/classes/com/sf/day09/homework/Test07.class
  30. BIN
      target/classes/com/sf/day09/homework/Worker.class
  31. BIN
      target/classes/com/sf/day09/homework/lianxi/ShapeInterface.class
  32. BIN
      target/classes/com/sf/day09/homework/lianxi/impl/Circle.class
  33. BIN
      target/classes/com/sf/day09/homework/lianxi/impl/Rectangle.class
  34. BIN
      target/classes/com/sf/day09/interface1/BuildCarsInterface.class
  35. BIN
      target/classes/com/sf/day09/interface1/impl/BuildCarsInterfaceImpl.class

+ 28 - 0
src/main/java/com/sf/Test07.java

@@ -0,0 +1,28 @@
+package com.sf;
+
+public class Test07 {
+    public static void main(String[] args) {
+        Father f = new Son();
+        System.out.println(f.x);
+    }
+}
+class Father{
+    int x = 10;
+    public Father(){
+        this.print();
+        x = 20;
+    }
+    public void print(){
+        System.out.println("Father.x = " + x);
+    }
+}
+class Son extends Father{
+    int x = 30;
+    public Son(){
+        this.print();
+        x = 40;
+    }
+    public void print(){
+        System.out.println("Son.x = " + x);
+    }
+}

+ 4 - 4
src/main/java/com/sf/day08/duotai/Test09.java

@@ -7,10 +7,10 @@ public class Test09 {
         B b = new B();
         C c = new C();
         D d = new D();
-        System.out.println("(1)" + a1.show(b));
-        System.out.println("(2)" + a2.show(d));
-        System.out.println("(3)" + b.show(c));
-        System.out.println("(4)" + b.show(d));
+        System.out.println("(1)" + a1.show(b));   // A and A
+        System.out.println("(2)" + a2.show(d));   // B and A
+        System.out.println("(3)" + b.show(c));    // A and C
+        System.out.println("(4)" + b.show(d));    // B and B
     }
 }
 class A {

+ 5 - 0
src/main/java/com/sf/day09/A1.java

@@ -0,0 +1,5 @@
+package com.sf.day09;
+
+public abstract class A1 {
+    public abstract void A1M1();
+}

+ 5 - 0
src/main/java/com/sf/day09/A2.java

@@ -0,0 +1,5 @@
+package com.sf.day09;
+
+public abstract class A2 extends A1{
+    public abstract void A2M2();
+}

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

@@ -0,0 +1,13 @@
+package com.sf.day09;
+
+public class A3 extends A2{
+    @Override
+    public void A1M1() {
+
+    }
+
+    @Override
+    public void A2M2() {
+
+    }
+}

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

@@ -0,0 +1,13 @@
+package com.sf.day09;
+
+public class Cook extends Employee{
+    @Override
+    public void work() {
+        System.out.println("Cook  -- work");
+    }
+
+    @Override
+    public void run() {
+
+    }
+}

+ 60 - 0
src/main/java/com/sf/day09/Employee.java

@@ -0,0 +1,60 @@
+package com.sf.day09;
+
+/**
+ * 抽象类
+ */
+public abstract class Employee {
+    private String id;
+    private String name;
+    private  double salary;
+
+    public Employee() {
+    }
+
+    public Employee(String id, String name, double salary) {
+        this.id = id;
+        this.name = name;
+        this.salary = salary;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public double getSalary() {
+        return salary;
+    }
+
+    public void setSalary(double salary) {
+        this.salary = salary;
+    }
+
+    @Override
+    public String toString() {
+        return "Employee{" +
+                "id='" + id + '\'' +
+                ", name='" + name + '\'' +
+                ", salary=" + salary +
+                '}';
+    }
+
+
+    //定义一个抽象方法
+    public abstract void work();
+    public abstract void run();
+
+//    public  abstract void run1();
+
+}

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

@@ -0,0 +1,23 @@
+package com.sf.day09;
+
+public class Manager extends Employee{
+
+    @Override
+    public void work() {
+        System.out.println("管理其他人");
+        System.out.println("Manager   -- work");
+    }
+
+    @Override
+    public void run() {
+
+    }
+
+    public static void main(String[] args) {
+        Employee employee = new Manager();
+        employee.work();
+        Employee employee1 = new Cook();
+        employee1.work();
+
+    }
+}

+ 68 - 0
src/main/java/com/sf/day09/homework/Exercise28.java

@@ -0,0 +1,68 @@
+package com.sf.day09.homework;
+
+public class Exercise28 {
+    public static void main(String[] args) {
+        Worker w = new Worker();
+        Apple a1 = new Apple(5, "青色");
+        Apple a2 = new Apple(3, "红色");
+        w.pickApple(new CompareBig(), a1, a2);
+        w.pickApple(new CompareColor(), a1, a2);
+    }
+}
+class Apple{
+    private double size;
+    private String color;
+    public Apple(double size, String color) {
+        super();
+        this.size = size;
+        this.color = color;
+    }
+    public Apple() {
+        super();
+    }
+    public double getSize() {
+        return size;
+    }
+    public void setSize(double size) {
+        this.size = size;
+    }
+    public String getColor() {
+        return color;
+    }
+    public void setColor(String color) {
+        this.color = color;
+    }
+    @Override
+    public String toString() {
+        return size + "-" + color;
+    }
+}
+interface CompareAble{
+    default void compare(Apple a1,Apple a2){
+        System.out.println("默认挑大的:");
+        if(a1.getSize() > a2.getSize()){
+            System.out.println(a1);
+        }else{
+            System.out.println(a2);
+        }
+    }
+}
+class CompareBig implements CompareAble{
+}
+class CompareColor implements CompareAble{
+    @Override
+    public void compare(Apple a1, Apple a2) {
+        System.out.println("挑红的:");
+        if("红色".equals(a1.getColor())){
+            System.out.println(a1);
+        }
+        if("红色".equals(a2.getColor())){
+            System.out.println(a2);
+        }
+    }
+}
+class Worker{
+    public void pickApple(CompareAble c,Apple a1,Apple a2){
+        c.compare(a1, a2);
+    }
+}

+ 28 - 0
src/main/java/com/sf/day09/homework/Test07.java

@@ -0,0 +1,28 @@
+package com.sf.day09.homework;
+
+public class Test07 {
+    public static void main(String[] args) {
+        Father f = new Son();
+        System.out.println(f.x);
+    }
+}
+class Father{
+    int x = 10;
+    public Father(){
+        this.print();
+        x = 20;
+    }
+    public void print(){
+        System.out.println("Father.x = " + x);
+    }
+}
+class Son extends Father{
+    int x = 30;
+    public Son(){
+        this.print();
+        x = 40;
+    }
+    public void print(){
+        System.out.println("Son.x = " + x);
+    }
+}

+ 14 - 0
src/main/java/com/sf/day09/homework/lianxi/ShapeInterface.java

@@ -0,0 +1,14 @@
+package com.sf.day09.homework.lianxi;
+
+public interface ShapeInterface {
+
+    // 面积
+    Double getArea();
+    //周长
+    Double getPerimeter();
+
+    String display();
+
+     int compareToArea(ShapeInterface s1 ,ShapeInterface  s2);
+     int compareToPerimeter(ShapeInterface s1 ,ShapeInterface s2);
+}

+ 31 - 0
src/main/java/com/sf/day09/homework/lianxi/impl/Circle.java

@@ -0,0 +1,31 @@
+package com.sf.day09.homework.lianxi.impl;
+
+import com.sf.day09.homework.lianxi.ShapeInterface;
+
+public class Circle implements ShapeInterface {
+    private Double radius;
+    @Override
+    public Double getArea() {
+        return Math.PI*radius*radius;
+    }
+
+    @Override
+    public Double getPerimeter() {
+        return Math.PI*2*radius;
+    }
+
+    @Override
+    public String display() {
+        return null;
+    }
+
+    @Override
+    public int compareToArea(ShapeInterface s1, ShapeInterface s2) {
+        return 0;
+    }
+
+    @Override
+    public int compareToPerimeter(ShapeInterface s1, ShapeInterface s2) {
+        return 0;
+    }
+}

+ 88 - 0
src/main/java/com/sf/day09/homework/lianxi/impl/Rectangle.java

@@ -0,0 +1,88 @@
+package com.sf.day09.homework.lianxi.impl;
+
+import com.sf.day07.homework.Triangle;
+import com.sf.day09.homework.lianxi.ShapeInterface;
+
+/**
+ * 矩形类
+ */
+public class Rectangle implements ShapeInterface {
+    private Double length;  //长
+    private Double wide;  //宽
+
+    public Rectangle() {
+    }
+
+    public Rectangle(Double length, Double wide) {
+        this.length = length;
+        this.wide = wide;
+    }
+
+    public Double getLength() {
+        return length;
+    }
+
+    public void setLength(Double length) {
+        this.length = length;
+    }
+
+    public Double getWide() {
+        return wide;
+    }
+
+    public void setWide(Double wide) {
+        this.wide = wide;
+    }
+
+    @Override
+    public Double getArea() {
+        return length*wide;
+    }
+
+    @Override
+    public Double getPerimeter() {
+        return (wide+length)*2;
+    }
+
+    @Override
+    public String display() {
+        return "周长是 = "+getPerimeter()+", 面积是 = "+getArea();
+    }
+
+    @Override
+    public int compareToArea(ShapeInterface s1, ShapeInterface s2) {
+        if(s1.getArea() > s2.getArea()){
+            System.out.println("第一个面积大于第二个面积");
+            return 1;
+        }else if (s1.getArea() == s2.getArea()){
+            System.out.println("第一个面积等于第二个面积");
+            return 0;
+        }else {
+            System.out.println("第一个面积小于第二个面积");
+            return -1;
+        }
+    }
+
+    @Override
+    public int compareToPerimeter(ShapeInterface s1, ShapeInterface s2) {
+        if(s1.getPerimeter() > s2.getPerimeter()){
+            System.out.println("第一个周长大于第二个周长");
+            return 1;
+        }else if (s1.getPerimeter() == s2.getPerimeter()){
+            System.out.println("第一个周长等于第二个周长");
+            return 0;
+        }else {
+            System.out.println("第一个周长小于第二个周长");
+            return -1;
+        }
+    }
+
+
+    public static void main(String[] args) {
+        ShapeInterface shapeInterface1 = new Rectangle(3.0,4.0);
+        System.out.println(shapeInterface1.display());
+        ShapeInterface shapeInterface2 = new Rectangle(4.0,4.0);
+        shapeInterface1.compareToArea(shapeInterface1,shapeInterface2);
+        shapeInterface1.compareToPerimeter(shapeInterface1,shapeInterface2);
+    }
+}

+ 22 - 0
src/main/java/com/sf/day09/interface1/BuildCarsInterface.java

@@ -0,0 +1,22 @@
+package com.sf.day09.interface1;
+
+public interface BuildCarsInterface {
+
+    //静态常量
+  public static final int MAX_SPEED = 220;//km/h
+
+    int MIN_DISTANCE = 50; //m
+
+    //抽象方法
+   public abstract  void runCar();
+    void breakCar();
+
+    // 默认方法
+    default void start(){
+        System.out.println("default  - 开始");
+    }
+
+    static void show(){
+        System.out.println("static  - show()");
+    }
+}

+ 31 - 0
src/main/java/com/sf/day09/interface1/impl/BuildCarsInterfaceImpl.java

@@ -0,0 +1,31 @@
+package com.sf.day09.interface1.impl;
+
+import com.sf.day09.interface1.BuildCarsInterface;
+
+public class BuildCarsInterfaceImpl implements BuildCarsInterface {
+    @Override
+    public void runCar() {
+        System.out.println("1");
+    }
+
+    @Override
+    public void breakCar() {
+        System.out.println("2");
+    }
+
+
+
+    //default
+//    @Override
+//    public void start() {
+//        BuildCarsInterface.super.start();
+//    }
+
+
+    public static void main(String[] args) {
+        //多态
+      BuildCarsInterface buildCarsInterface =  new BuildCarsInterfaceImpl();
+      buildCarsInterface.start();
+      buildCarsInterface.runCar();
+    }
+}

BIN
target/classes/com/sf/day09/A1.class


BIN
target/classes/com/sf/day09/A2.class


BIN
target/classes/com/sf/day09/A3.class


BIN
target/classes/com/sf/day09/Cook.class


BIN
target/classes/com/sf/day09/Employee.class


BIN
target/classes/com/sf/day09/Manager.class


BIN
target/classes/com/sf/day09/homework/Apple.class


BIN
target/classes/com/sf/day09/homework/CompareAble.class


BIN
target/classes/com/sf/day09/homework/CompareBig.class


BIN
target/classes/com/sf/day09/homework/CompareColor.class


BIN
target/classes/com/sf/day09/homework/Exercise28.class


BIN
target/classes/com/sf/day09/homework/Father.class


BIN
target/classes/com/sf/day09/homework/Son.class


BIN
target/classes/com/sf/day09/homework/Test07.class


BIN
target/classes/com/sf/day09/homework/Worker.class


BIN
target/classes/com/sf/day09/homework/lianxi/ShapeInterface.class


BIN
target/classes/com/sf/day09/homework/lianxi/impl/Circle.class


BIN
target/classes/com/sf/day09/homework/lianxi/impl/Rectangle.class


BIN
target/classes/com/sf/day09/interface1/BuildCarsInterface.class


BIN
target/classes/com/sf/day09/interface1/impl/BuildCarsInterfaceImpl.class