guyanqing 11 tháng trước cách đây
mục cha
commit
b1815f1943
39 tập tin đã thay đổi với 645 bổ sung0 xóa
  1. 49 0
      src/main/java/com/sf/day09/Animal.java
  2. 14 0
      src/main/java/com/sf/day09/Cat.java
  3. 9 0
      src/main/java/com/sf/day09/Dog.java
  4. 48 0
      src/main/java/com/sf/day09/NewCar.java
  5. 16 0
      src/main/java/com/sf/day09/OldCar.java
  6. 17 0
      src/main/java/com/sf/day09/TestCatAndDog.java
  7. 23 0
      src/main/java/com/sf/day09/lx/Cat.java
  8. 23 0
      src/main/java/com/sf/day09/lx/Dog.java
  9. 52 0
      src/main/java/com/sf/day09/lx/Pet.java
  10. 42 0
      src/main/java/com/sf/day09/lx/TestOPet.java
  11. 59 0
      src/main/java/com/sf/day09/lx2/CreditCard.java
  12. 46 0
      src/main/java/com/sf/day09/lx2/DepositCard.java
  13. 25 0
      src/main/java/com/sf/day09/lx2/Test.java
  14. 95 0
      src/main/java/com/sf/day09/lx3/CreditCard.java
  15. 76 0
      src/main/java/com/sf/day09/lx3/DepositCard.java
  16. 10 0
      src/main/java/com/sf/day09/lx3/T.java
  17. 28 0
      src/main/java/com/sf/day09/lx3/Test.java
  18. 13 0
      src/main/java/com/sf/day09/lx3/Tp.java
  19. BIN
      target/classes/com/sf/Animal.class
  20. BIN
      target/classes/com/sf/Cat.class
  21. BIN
      target/classes/com/sf/Dog.class
  22. BIN
      target/classes/com/sf/Product.class
  23. BIN
      target/classes/com/sf/Stock.class
  24. BIN
      target/classes/com/sf/day09/Animal.class
  25. BIN
      target/classes/com/sf/day09/Cat.class
  26. BIN
      target/classes/com/sf/day09/Dog.class
  27. BIN
      target/classes/com/sf/day09/NewCar.class
  28. BIN
      target/classes/com/sf/day09/OldCar.class
  29. BIN
      target/classes/com/sf/day09/TestCatAndDog.class
  30. BIN
      target/classes/com/sf/day09/lx/Cat.class
  31. BIN
      target/classes/com/sf/day09/lx/Dog.class
  32. BIN
      target/classes/com/sf/day09/lx/Pet.class
  33. BIN
      target/classes/com/sf/day09/lx/TestOPet.class
  34. BIN
      target/classes/com/sf/day09/lx2/CreditCard.class
  35. BIN
      target/classes/com/sf/day09/lx2/DepositCard.class
  36. BIN
      target/classes/com/sf/day09/lx2/Test.class
  37. BIN
      target/classes/com/sf/day09/lx3/CreditCard.class
  38. BIN
      target/classes/com/sf/day09/lx3/DepositCard.class
  39. BIN
      target/classes/com/sf/day09/lx3/Test.class

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

@@ -0,0 +1,49 @@
+package com.sf.day09;
+
+public class Animal {
+    private String name;
+    private int age;
+    public void eat(String name){
+        System.out.println(name+"eating...");
+    }
+
+    public Animal() {
+    }
+
+    public Animal(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Animal{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+
+    public static void main(String[] args) {
+        Dog dog = new Dog();
+        dog.protectHome();
+        dog.setName("小狗");
+        dog.setAge(1);
+        dog.eat(dog.getName());
+    }
+}

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

@@ -0,0 +1,14 @@
+package com.sf.day09;
+
+public class Cat extends Animal{
+
+    //捉老鼠
+    public void catchMonth(){
+        System.out.println("catchMonth...");
+    }
+
+
+
+
+
+}

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

@@ -0,0 +1,9 @@
+package com.sf.day09;
+
+public class Dog extends Animal{
+
+    public void protectHome(){
+        System.out.println("小狗看家");
+    }
+
+}

+ 48 - 0
src/main/java/com/sf/day09/NewCar.java

@@ -0,0 +1,48 @@
+package com.sf.day09;
+
+public class NewCar extends OldCar{
+
+    //启动
+
+
+    @Override
+    public void start() {
+        super.start();
+    }
+
+    //行驶方法
+    @Override
+    public void run(){
+        System.out.println("newcar--run()");
+    }
+
+    public void stop(){
+        System.out.println("newcar--stop()");
+    }
+
+
+
+
+    public static void main(String[] args) {
+        OldCar oldCar = new OldCar();
+        oldCar.run();
+        NewCar newCar = new NewCar();
+        newCar.run();
+
+        // 编译看左边  运行看右边
+        //  父类的引用  指向 子类的对象
+        OldCar oldCar1 = new NewCar();
+        oldCar1.start();
+        //  转换   -- 转换成子类  向上转型
+        if(oldCar1 instanceof NewCar){
+            NewCar newcar1 = (NewCar) oldCar1;
+            newcar1.stop();
+        }
+
+
+
+
+
+
+    }
+}

+ 16 - 0
src/main/java/com/sf/day09/OldCar.java

@@ -0,0 +1,16 @@
+package com.sf.day09;
+
+public class OldCar {
+    //行为方法
+    //启动
+    public void start(){
+        System.out.println("old汽车启动");
+    }
+
+
+    //行驶方法
+    public void run(){
+        System.out.println("old汽车行驶");
+    }
+
+}

+ 17 - 0
src/main/java/com/sf/day09/TestCatAndDog.java

@@ -0,0 +1,17 @@
+package com.sf.day09;
+
+public class TestCatAndDog {
+    public static void main(String[] args) {
+        Dog dog = new Dog();
+        dog.setAge(12);
+        dog.setName("小狗");
+        dog.protectHome();
+        dog.eat(dog.getName());
+
+        Cat cat = new Cat();
+        cat.setAge(1);
+        cat.setName("小猫");
+        cat.eat(cat.getName());
+        cat.catchMonth();
+    }
+}

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

@@ -0,0 +1,23 @@
+package com.sf.day09.lx;
+
+public class Cat extends Pet{
+    @Override
+    public void eat(String name) {
+        System.out.println(name+"小猫eat");
+    }
+
+    @Override
+    public void drink(String name) {
+        System.out.println(name+"小猫喝");
+    }
+
+    @Override
+    public void shout(String name) {
+        System.out.println(name+"小猫叫");
+    }
+
+    public void  climbTree(){
+        System.out.println("爬树");
+    }
+
+}

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

@@ -0,0 +1,23 @@
+package com.sf.day09.lx;
+
+public class Dog extends Pet{
+
+    public void police(){
+        System.out.println("警戒");
+    }
+
+    @Override
+    public void eat(String name) {
+        System.out.println(name+"小狗eat");
+    }
+
+    @Override
+    public void drink(String name) {
+        System.out.println(name+"小狗喝");
+    }
+
+    @Override
+    public void shout(String name) {
+        System.out.println(name+"小狗叫");
+    }
+}

+ 52 - 0
src/main/java/com/sf/day09/lx/Pet.java

@@ -0,0 +1,52 @@
+package com.sf.day09.lx;
+
+public class Pet {
+    private String name;
+    private int age;
+
+    public void eat(String name){
+        System.out.println(name+"Pet  --eat..");
+    }
+
+
+    public void drink(String name){
+        System.out.println(name+"Pet  --drink..");
+    }
+
+
+    public void shout(String name){
+        System.out.println(name+"Pet  --shout..");
+    }
+
+    public Pet() {
+    }
+
+    public Pet(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Pet{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+}

+ 42 - 0
src/main/java/com/sf/day09/lx/TestOPet.java

@@ -0,0 +1,42 @@
+package com.sf.day09.lx;
+
+import org.junit.Test;
+
+import java.awt.*;
+
+public class TestOPet {
+    public static void main(String[] args) {
+        Pet pet = new Dog();
+       pet.setName("小狗");
+       if(pet instanceof Dog){
+           Dog dog = (Dog) pet;
+           dog.drink(dog.getName());
+           dog.eat(dog.getName());
+           dog.shout(dog.getName());
+           dog.police();
+       }
+
+        Pet petCat = new Cat();
+        petCat.setName("小猫");
+        if(petCat instanceof Cat){
+            Cat cat = (Cat) petCat;
+            cat.drink(cat.getName());
+            cat.eat(cat.getName());
+            cat.shout(cat.getName());
+            cat.climbTree();
+        }
+
+    }
+    @Test
+    public void TestCat(){
+        Pet petCat = new Cat();
+        petCat.setName("小猫");
+        if(petCat instanceof Cat){
+            Cat cat = (Cat) petCat;
+            cat.drink(cat.getName());
+            cat.eat(cat.getName());
+            cat.shout(cat.getName());
+            cat.climbTree();
+        }
+    }
+}

+ 59 - 0
src/main/java/com/sf/day09/lx2/CreditCard.java

@@ -0,0 +1,59 @@
+package com.sf.day09.lx2;
+
+/**
+ * 银行信用卡
+ */
+public class CreditCard extends DepositCard{
+    private double maxOverdraft;//当月最多可以透支额度
+    private double overdraft;//本月已透支额度
+
+    public double getMaxOverdraft() {
+        return maxOverdraft;
+    }
+
+    public void setMaxOverdraft(double maxOverdraft) {
+        this.maxOverdraft = maxOverdraft;
+    }
+
+    public double getOverdraft() {
+        return overdraft;
+    }
+
+    public void setOverdraft(double overdraft) {
+        this.overdraft = overdraft;
+    }
+
+    @Override
+    public void withdraw(double money) {
+        //超过可透支额度
+        if(money > getBalance() + maxOverdraft - overdraft){
+            System.out.println("超过可透支额度");
+            return;
+        }
+        if(money <= getBalance()){ //不用透支
+            super.withdraw(money);
+            return;
+        }
+        overdraft += money - getBalance();  //需要透支
+        setBalance(0);
+    }
+    @Override
+    public void save(double money) {
+        if(money < 0){
+            System.out.println("存款金额不能为负数");
+            return;
+        }
+        if(money <= overdraft){//偿还部分透支金额
+            overdraft -= money;
+            return;
+        }
+        //偿还所有透支金额,还有剩余
+        setBalance(getBalance() + (money - overdraft));
+        overdraft = 0;
+    }
+
+    @Override
+    public String getInfo() {
+        return super.getInfo() +",本月可透支总额度:" + maxOverdraft + ",本月已透支:" + overdraft +",本月还可透支:" + (maxOverdraft - overdraft);
+    }
+}

+ 46 - 0
src/main/java/com/sf/day09/lx2/DepositCard.java

@@ -0,0 +1,46 @@
+package com.sf.day09.lx2;
+
+public class DepositCard {
+    private String id;
+    private double balance;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(double balance) {
+        this.balance = balance;
+    }
+
+    public void withdraw(double money){
+        if(money<0){
+            System.out.println("取款金额不能为负数");
+            return;
+        }
+        if(money>balance){
+            System.out.println("余额不足");
+            return;
+        }
+        balance -= money;
+    }
+
+    public void save(double money){
+        if(money<0){
+            System.out.println("存款金额不能为负数");
+            return;
+        }
+        balance += money;
+    }
+
+    public String getInfo(){
+        return "账号:" + id + ",余额:" + balance;
+    }
+}

+ 25 - 0
src/main/java/com/sf/day09/lx2/Test.java

@@ -0,0 +1,25 @@
+package com.sf.day09.lx2;
+
+public class Test {
+    public static void main(String[] args) {
+        DepositCard d = new DepositCard();
+        d.setId("11111");
+        d.setBalance(500);
+        System.out.println("初始情况:" + d.getInfo());
+
+        d.withdraw(200);
+        System.out.println("取款200后:" + d.getInfo());
+
+        d.save(100);
+        System.out.println("存款100后:" + d.getInfo());
+
+        d.save(-100);
+        System.out.println("存款-100后:" + d.getInfo());
+
+        d.withdraw(-100);
+        System.out.println("取款-100后:" + d.getInfo());
+
+        d.withdraw(500);
+        System.out.println("取款500后:" + d.getInfo());
+    }
+}

+ 95 - 0
src/main/java/com/sf/day09/lx3/CreditCard.java

@@ -0,0 +1,95 @@
+package com.sf.day09.lx3;
+
+
+public class CreditCard extends DepositCard{
+    private double maxTotalOfDraftOfMonth;  //本月最大透支总额度
+    private  double  overOfOfDraft;  //已经透支的额度
+
+
+    /**
+     *
+     * @param money  取款金额
+     */
+    @Override
+    public void withdraw(double money) {
+        if(money > getBalance() + (maxTotalOfDraftOfMonth - overOfOfDraft)){
+            System.out.println("超过可透支额度");
+            return;
+        }
+        if(money < getBalance()){
+            super.withdraw(money);
+            return;
+        }
+        if(money > getBalance() && money < (getBalance() + maxTotalOfDraftOfMonth - overOfOfDraft)){
+            overOfOfDraft += money - getBalance();
+            setBalance(0);  //余额为空
+        }
+    }
+
+    /**
+     * 存款
+     * @param money  存款金额
+     */
+    @Override
+    public void save(double money) {
+      if(money < 0){
+          System.out.println("存款金额不能为负数");
+          return;
+      }
+      if(money >0 && money < overOfOfDraft){
+          overOfOfDraft -= money;
+          return;
+      }
+
+      if(money > overOfOfDraft){
+         // super.save(money-overOfOfDraft);
+          setBalance(money-overOfOfDraft);
+          overOfOfDraft = 0;
+      }
+    }
+
+    public CreditCard() {
+
+    }
+
+    public void getDate(DepositCard depositCard,int x ,int y){
+        setBalance(depositCard.getBalance());
+        this.setOverOfOfDraft(x);
+        this.setMaxTotalOfDraftOfMonth(y);
+    }
+
+    public CreditCard(double maxTotalOfDraftOfMonth, double overOfOfDraft) {
+        this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
+        this.overOfOfDraft = overOfOfDraft;
+    }
+
+    public CreditCard(String id, double balance, double maxTotalOfDraftOfMonth, double overOfOfDraft) {
+        super(id, balance);
+        this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
+        this.overOfOfDraft = overOfOfDraft;
+    }
+
+    public double getMaxTotalOfDraftOfMonth() {
+        return maxTotalOfDraftOfMonth;
+    }
+
+    public void setMaxTotalOfDraftOfMonth(double maxTotalOfDraftOfMonth) {
+        this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
+    }
+
+    public double getOverOfOfDraft() {
+        return overOfOfDraft;
+    }
+
+    public void setOverOfOfDraft(double overOfOfDraft) {
+        this.overOfOfDraft = overOfOfDraft;
+    }
+
+    @Override
+    public String toString() {
+        return "CreditCard{" +
+                "maxTotalOfDraftOfMonth=" + maxTotalOfDraftOfMonth +
+                ", overOfOfDraft=" + overOfOfDraft +
+                '}';
+    }
+}

+ 76 - 0
src/main/java/com/sf/day09/lx3/DepositCard.java

@@ -0,0 +1,76 @@
+package com.sf.day09.lx3;
+
+public class DepositCard {
+    private String id;  //账户的id
+    private double balance;   //账户的余额
+
+
+    /**
+     * 取款
+     * @param money  取款金额
+     */
+    public void withdraw(double money){
+        if(money < 0){
+            System.out.println("取款金额不能为负数");
+            return;
+        }
+        if(money > balance){
+            System.out.println("提示余额不足!!");
+            return;
+        }
+        balance -= money;
+    }
+
+    /**
+     * 存款
+     * @param money  存款金额
+     */
+    public void save(double money){
+        if(money < 0){
+            System.out.println("存款金额不能为负数");
+            return;
+        }
+        balance += money;
+    }
+
+    /**
+     * 返回账户信息
+     * @return
+     */
+    public String getInfo(){
+        return "账户ID = "+id+"    账户余额" + balance;
+    }
+
+
+    public DepositCard() {
+    }
+
+    public DepositCard(String id, double balance) {
+        this.id = id;
+        this.balance = balance;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(double balance) {
+        this.balance = balance;
+    }
+
+    @Override
+    public String toString() {
+        return "DepositCard{" +
+                "id='" + id + '\'' +
+                ", balance=" + balance +
+                '}';
+    }
+}

+ 10 - 0
src/main/java/com/sf/day09/lx3/T.java

@@ -0,0 +1,10 @@
+package com.sf.day09.lx3;
+
+public class T extends Tp{
+
+    private String name;
+
+    public T(int age) {
+        super(age);
+    }
+}

+ 28 - 0
src/main/java/com/sf/day09/lx3/Test.java

@@ -0,0 +1,28 @@
+package com.sf.day09.lx3;
+
+public class Test {
+    public static void main(String[] args) {
+//        DepositCard depositCard = new DepositCard();
+//        depositCard.setId("1001");
+//        depositCard.setBalance(1000);
+//        System.out.println(depositCard.getInfo());
+
+//        depositCard.withdraw(200);
+//        System.out.println(depositCard.getInfo());
+//
+//        depositCard.withdraw(1000);
+//        System.out.println(depositCard.getInfo());
+
+        CreditCard creditCard = new CreditCard();
+        creditCard.setId("1001");
+        creditCard.setBalance(1000);
+        creditCard.setMaxTotalOfDraftOfMonth(1000);
+//        creditCard.setOverOfOfDraft(100);
+
+        creditCard.withdraw(900);
+        System.out.println(creditCard.getInfo());
+        System.out.println(creditCard);
+//        System.out.println(depositCard.getInfo());
+
+    }
+}

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

@@ -0,0 +1,13 @@
+package com.sf.day09.lx3;
+
+public class Tp {
+    private int age;
+
+    public Tp() {
+    }
+
+    public Tp(int age) {
+        this.age = age;
+    }
+
+}

BIN
target/classes/com/sf/Animal.class


BIN
target/classes/com/sf/Cat.class


BIN
target/classes/com/sf/Dog.class


BIN
target/classes/com/sf/Product.class


BIN
target/classes/com/sf/Stock.class


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


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


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


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


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


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


BIN
target/classes/com/sf/day09/lx/Cat.class


BIN
target/classes/com/sf/day09/lx/Dog.class


BIN
target/classes/com/sf/day09/lx/Pet.class


BIN
target/classes/com/sf/day09/lx/TestOPet.class


BIN
target/classes/com/sf/day09/lx2/CreditCard.class


BIN
target/classes/com/sf/day09/lx2/DepositCard.class


BIN
target/classes/com/sf/day09/lx2/Test.class


BIN
target/classes/com/sf/day09/lx3/CreditCard.class


BIN
target/classes/com/sf/day09/lx3/DepositCard.class


BIN
target/classes/com/sf/day09/lx3/Test.class