Ver código fonte

day12 代码

fanjialong 6 dias atrás
pai
commit
222f555f96
37 arquivos alterados com 872 adições e 0 exclusões
  1. 95 0
      java-base-project10/day12/src/_01_static/demo1/Student.java
  2. 26 0
      java-base-project10/day12/src/_01_static/demo1/StudentTest.java
  3. 42 0
      java-base-project10/day12/src/_01_static/demo2/Student.java
  4. 20 0
      java-base-project10/day12/src/_01_static/demo3/MyMathUtil.java
  5. 7 0
      java-base-project10/day12/src/_01_static/demo3/Test.java
  6. 57 0
      java-base-project10/day12/src/_01_static/demo4/Student.java
  7. 10 0
      java-base-project10/day12/src/_01_static/demo4/StudentTest.java
  8. 24 0
      java-base-project10/day12/src/_01_static/demo5/Employee.java
  9. 13 0
      java-base-project10/day12/src/_01_static/demo5/Test.java
  10. 37 0
      java-base-project10/day12/src/_01_static/demo6/Product.java
  11. 12 0
      java-base-project10/day12/src/_01_static/demo6/Test.java
  12. 68 0
      java-base-project10/day12/src/_01_static/demo7/Account.java
  13. 13 0
      java-base-project10/day12/src/_01_static/demo7/StringUtils.java
  14. 56 0
      java-base-project10/day12/src/_01_static/demo7/Test.java
  15. 25 0
      java-base-project10/day12/src/_02_继承/_01_继承入门案例/Person.java
  16. 9 0
      java-base-project10/day12/src/_02_继承/_01_继承入门案例/Student.java
  17. 10 0
      java-base-project10/day12/src/_02_继承/_01_继承入门案例/Teacher.java
  18. 12 0
      java-base-project10/day12/src/_02_继承/_01_继承入门案例/Test.java
  19. 13 0
      java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Father.java
  20. 5 0
      java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Son.java
  21. 9 0
      java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Test.java
  22. 5 0
      java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Father.java
  23. 14 0
      java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Son.java
  24. 14 0
      java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Test.java
  25. 8 0
      java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Father.java
  26. 24 0
      java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Son.java
  27. 20 0
      java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Test.java
  28. 27 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/Employee.java
  29. 20 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/EmployeeTest.java
  30. 35 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/Person.java
  31. 31 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/Student.java
  32. 14 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/Teacher.java
  33. 22 0
      java-base-project10/day12/src/_02_继承/_05_继承构造方法/Test.java
  34. 16 0
      java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Animal.java
  35. 34 0
      java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Dog.java
  36. 17 0
      java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Mammal.java
  37. 8 0
      java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Test.java

+ 95 - 0
java-base-project10/day12/src/_01_static/demo1/Student.java

@@ -0,0 +1,95 @@
+package _01_static.demo1;
+
+/**
+ * 标准javaBean 类
+ * 字段要私有化
+ * 要给字段提供get 和set 方法
+ * 要提供全参数构造器 和无参数构造器
+ *
+ * javaBean: 描述一种具体的事务类
+ * 测试类; 就是包含主方法的类 主要做功能测试
+ */
+public class Student {
+    private String name;
+    private int age;
+    // private 和public
+    // private 私有化 : 只能够在类当中访问
+    // publicc 公共的: 在任何位置都可以访问
+    /**
+     * 为什么说现在static 要把设置成public
+     * 因为如果你设置成private , 只能够通过set 方法去设置
+     * set 方法调用要用对象去调用
+     *
+     * 静态变量属于类级别, 他不属于某一个对象
+     *
+     * 调用静态变量或者静态方法
+     * 一般通过类名.属性名/方法名
+     */
+    public static String teacherName;
+
+
+    public static void test(){
+        System.out.println(teacherName);
+    }
+
+    public Student() {
+    }
+
+    public Student(String name, int age, String teacherName) {
+        this.name = name;
+        this.age = age;
+        this.teacherName = teacherName;
+    }
+
+    /**
+     * 获取
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 设置
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 获取
+     * @return age
+     */
+    public int getAge() {
+        return age;
+    }
+
+    /**
+     * 设置
+     * @param age
+     */
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    /**
+     * 获取
+     * @return teacherName
+     */
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    /**
+     * 设置
+     * @param teacherName
+     */
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String toString() {
+        return "Student{name = " + name + ", age = " + age + ", teacherName = " + teacherName + "}";
+    }
+}

+ 26 - 0
java-base-project10/day12/src/_01_static/demo1/StudentTest.java

@@ -0,0 +1,26 @@
+package _01_static.demo1;
+
+public class StudentTest {
+
+    public static void main(String[] args) {
+        // 通过类名.静态变量名字
+        Student.teacherName = "fanjialong";
+        Student.test();
+//        // 创建3 个对象 分别给三个对象设置属性
+//        Student s=  new Student();
+//        s.setName("zhangsan");
+//        s.setAge(10);
+//
+//        Student s1=  new Student();
+//        s1.setName("lisi");
+//        s1.setAge(11);
+//
+//        Student s2=  new Student();
+//        s2.setName("wangwu");
+//        s2.setAge(12);
+//
+//        System.out.println(s);
+//        System.out.println(s1);
+//        System.out.println(s2);
+    }
+}

+ 42 - 0
java-base-project10/day12/src/_01_static/demo2/Student.java

@@ -0,0 +1,42 @@
+package _01_static.demo2;
+
+public class Student {
+    private String name;
+    private int age;
+
+    public static String teacherName;
+
+    // 提供一个静态方法和一个非静态方法
+    public static void staticTest(){
+        // 访问静态变量
+        System.out.println(teacherName);
+        // 访问静态方法
+        staticMethod();
+//        // 访问非静态变量
+//        System.out.println(name);
+//        // 访问非静态方法
+//        eat();
+    }
+
+
+    public void noStaticTest(){
+        // 访问静态变量
+        System.out.println(teacherName);
+        // 访问静态方法
+        staticMethod();
+//        // 访问非静态变量
+        System.out.println(name);
+//        // 访问非静态方法
+        eat();
+    }
+
+    public static void staticMethod(){
+        System.out.println("我是静态方法");
+    }
+
+    // 提供一个非静态方法
+    public void eat(){
+        System.out.println("吃东西");
+    }
+}
+

+ 20 - 0
java-base-project10/day12/src/_01_static/demo3/MyMathUtil.java

@@ -0,0 +1,20 @@
+package _01_static.demo3;
+
+public class MyMathUtil {
+    private MyMathUtil() {
+    }
+
+    // 加减乘除
+    public static int calc(int a, int b, String operator) {
+        if ("+".equals(operator)) {
+            return a + b;
+        } else if ("-".equals(operator)) {
+            return a - b;
+        } else if ("*".equals(operator)) {
+            return a * b;
+        } else if ("/".equals(operator)) {
+            return a / b;
+        }
+        return 0;
+    }
+}

+ 7 - 0
java-base-project10/day12/src/_01_static/demo3/Test.java

@@ -0,0 +1,7 @@
+package _01_static.demo3;
+
+public class Test {
+    public static void main(String[] args) {
+        System.out.println(MyMathUtil.calc(1, 2, "+"));
+    }
+}

+ 57 - 0
java-base-project10/day12/src/_01_static/demo4/Student.java

@@ -0,0 +1,57 @@
+package _01_static.demo4;
+
+public class Student {
+    private String name;
+    private int age;
+    public static int totalCount;
+
+    public Student() {
+    }
+
+    public static int getTotalCount(){
+        return totalCount;
+    }
+
+    public Student(String name, int age) {
+        this.name = name;
+        this.age = age;
+        totalCount ++;
+    }
+
+
+    /**
+     * 获取
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 设置
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 获取
+     * @return age
+     */
+    public int getAge() {
+        return age;
+    }
+
+    /**
+     * 设置
+     * @param age
+     */
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public String toString() {
+        return "Student{name = " + name + ", age = " + age + ", totalCount = " + totalCount + "}";
+    }
+}

+ 10 - 0
java-base-project10/day12/src/_01_static/demo4/StudentTest.java

@@ -0,0 +1,10 @@
+package _01_static.demo4;
+
+public class StudentTest {
+    public static void main(String[] args) {
+        Student student = new Student("zhangsan",10);
+        Student student1 = new Student("zhangsan1",10);
+        Student student2 = new Student("zhangsan2",10);
+        System.out.println(Student.getTotalCount());
+    }
+}

+ 24 - 0
java-base-project10/day12/src/_01_static/demo5/Employee.java

@@ -0,0 +1,24 @@
+package _01_static.demo5;
+
+public class Employee {
+    private String name;
+    private double salary;
+
+    public Employee(String name, double salary) {
+        this.name = name;
+        this.salary = salary;
+    }
+
+    public static String companyName = "字节跳动";
+
+
+    public String getEmployeeDetail(){
+        return "员工name ="+ name +"=员工薪资salary="+ salary +"=员工公司companyName="+companyName;
+    }
+
+    public static void setCompanyName(String newName){
+        companyName = newName;
+    }
+
+
+}

+ 13 - 0
java-base-project10/day12/src/_01_static/demo5/Test.java

@@ -0,0 +1,13 @@
+package _01_static.demo5;
+
+public class Test {
+    public static void main(String[] args) {
+        Employee employee = new Employee("zhangsan",10000);
+        Employee employee1 = new Employee("lisi",20000);
+        System.out.println(employee.getEmployeeDetail());
+        System.out.println(employee.getEmployeeDetail());
+        Employee.setCompanyName("阿里巴巴");
+        System.out.println(employee.getEmployeeDetail());
+        System.out.println(employee.getEmployeeDetail());
+    }
+}

+ 37 - 0
java-base-project10/day12/src/_01_static/demo6/Product.java

@@ -0,0 +1,37 @@
+package _01_static.demo6;
+
+public class Product {
+    private String productName;
+    private double price;
+
+    public static int totalStock; // 总库存
+    public static double totalSalesAmount; // 总营销额
+
+    public Product(String productName, double price) {
+        this.productName = productName;
+        this.price = price;
+        totalStock +=10;
+    }
+
+    public void sell(int count){
+        if(count > totalStock){
+            System.out.println("库存不足 , 无法卖出");
+        }else{
+            // 减少对应库存
+            totalStock -= count;
+            // 累加销售额
+            totalSalesAmount += count * price;
+        }
+    }
+
+    public static void showTotalInfo(){
+        System.out.println("总库存:"+ totalStock +"---总营销额:"+ totalSalesAmount);
+    }
+
+    public void showProductInfo(){
+        System.out.println("商品名称:"+ productName +"商品单价:"+ price);
+
+    }
+
+
+}

+ 12 - 0
java-base-project10/day12/src/_01_static/demo6/Test.java

@@ -0,0 +1,12 @@
+package _01_static.demo6;
+
+public class Test {
+    public static void main(String[] args) {
+        Product product = new Product("手机",3000);
+        Product product1 = new Product("耳机",500);
+        product.sell(3);
+        product1.sell(5);
+
+        Product.showTotalInfo();
+    }
+}

+ 68 - 0
java-base-project10/day12/src/_01_static/demo7/Account.java

@@ -0,0 +1,68 @@
+package _01_static.demo7;
+
+public class Account {
+    private String username;
+    private String password;
+    private int loginErrorCount;  // 登录失败次数
+
+    public Account() {
+    }
+
+    public Account(String username, String password) {
+        this.username = username;
+        this.password = password;
+        this.loginErrorCount = 0;
+    }
+
+    /**
+     * 获取
+     * @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;
+    }
+
+    /**
+     * 获取
+     * @return loginErrorCount
+     */
+    public int getLoginErrorCount() {
+        return loginErrorCount;
+    }
+
+    /**
+     * 设置
+     * @param loginErrorCount
+     */
+    public void setLoginErrorCount(int loginErrorCount) {
+        this.loginErrorCount = loginErrorCount;
+    }
+
+    public String toString() {
+        return "Account{username = " + username + ", password = " + password + ", loginErrorCount = " + loginErrorCount + "}";
+    }
+}

+ 13 - 0
java-base-project10/day12/src/_01_static/demo7/StringUtils.java

@@ -0,0 +1,13 @@
+package _01_static.demo7;
+
+public class StringUtils {
+    private StringUtils(){}
+
+    public static boolean isEmpty(String str){
+        if(str == null || str.equals("")){
+            return true;
+        }else{
+            return false;
+        }
+    }
+}

+ 56 - 0
java-base-project10/day12/src/_01_static/demo7/Test.java

@@ -0,0 +1,56 @@
+package _01_static.demo7;
+
+import java.util.Scanner;
+
+public class Test {
+
+    /**
+     * 做登录功能
+     * 1 要求设计出来Account 账户类
+     * 2 非静态成员 username String 和 password String 和 loginErrorCount int
+     * 3 设计出来一个工具类 StringUtils 里面需要包含一个静态方法 判断字符串是否为空或者是""
+     *   如果是null或者是"" 返回true , 否则返回false
+     * 4 测试在控制台当中录入账号和密码
+     *   4.1 如果账号和密码为空 在控制太打印账号密码不能为空 (调用工具类的方法)
+     *   4.2 如果账号和密码输入的错误的, 需要让loginErrorCount ++
+     *   4.3 如果loginErroCount 次数达到了3次 打印账号已经被锁定
+     *   4.4 如果账号密码输入是正确的打印登录成功
+     */
+
+    public static void main(String[] args) {
+        // 如果账号密码不为空
+        Account account = new Account();
+        while (true){
+            Scanner scanner = new Scanner(System.in);
+            System.out.println("请录入账号");
+            String username = scanner.next();
+            System.out.println("请录入密码");
+            String password = scanner.next();
+            // 1 判断账号和密码是否为空
+            if(StringUtils.isEmpty(username)|| StringUtils.isEmpty(password)){
+                System.out.println("账号或者密码不能为空");
+                return;
+            }
+            account.setUsername(username);
+            account.setPassword(password);
+            if("admin".equals(account.getUsername()) &&
+                    "123".equals(account.getPassword())){
+                System.out.println("登录成功");
+                break;
+            }else{
+                // 让count 当中loginErroCount+1
+                // 如果登录错误次数等于3 打印账号已经被锁定
+                int loginErrorCount = account.getLoginErrorCount();
+                if(loginErrorCount == 2){
+                    System.out.println("账户已经被锁定了");
+                    break;
+                }else{
+                    // 让登录错误数量+1
+                    account.setLoginErrorCount(loginErrorCount+1);
+                    System.out.println("账号密码错误,还剩" + (2-loginErrorCount)+"次");
+                }
+            }
+        }
+
+    }
+}

+ 25 - 0
java-base-project10/day12/src/_02_继承/_01_继承入门案例/Person.java

@@ -0,0 +1,25 @@
+package _02_继承._01_继承入门案例;
+
+/**
+ * Person 是student 和 teacher 类父类
+ */
+public class Person {
+    String name;
+    int age;
+
+    public Person() {
+    }
+
+    public Person(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public void eat(){
+        System.out.println("吃饭");
+    }
+
+    public void sleep(){
+        System.out.println("睡觉");
+    }
+}

+ 9 - 0
java-base-project10/day12/src/_02_继承/_01_继承入门案例/Student.java

@@ -0,0 +1,9 @@
+package _02_继承._01_继承入门案例;
+
+public class Student extends Person {
+
+
+    public void study(){
+        System.out.println("学习");
+    }
+}

+ 10 - 0
java-base-project10/day12/src/_02_继承/_01_继承入门案例/Teacher.java

@@ -0,0 +1,10 @@
+package _02_继承._01_继承入门案例;
+
+public class Teacher extends Person{
+
+    private double salary;
+
+    public void teach(){
+        System.out.println("教书");
+    }
+}

+ 12 - 0
java-base-project10/day12/src/_02_继承/_01_继承入门案例/Test.java

@@ -0,0 +1,12 @@
+package _02_继承._01_继承入门案例;
+
+public class Test {
+    public static void main(String[] args) {
+        /**
+         * 1 子类无法继承父类构造器
+         */
+        Student student = new Student();
+        student.eat();
+        student.sleep();
+    }
+}

+ 13 - 0
java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Father.java

@@ -0,0 +1,13 @@
+package _02_继承._02_可以继承哪些内容;
+
+public class Father {
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 5 - 0
java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Son.java

@@ -0,0 +1,5 @@
+package _02_继承._02_可以继承哪些内容;
+
+public class Son extends Father {
+
+}

+ 9 - 0
java-base-project10/day12/src/_02_继承/_02_可以继承哪些内容/Test.java

@@ -0,0 +1,9 @@
+package _02_继承._02_可以继承哪些内容;
+
+public class Test {
+    public static void main(String[] args) {
+        Son s  = new Son();
+        s.setName("zhangsan");
+        System.out.println(s.getName());
+    }
+}

+ 5 - 0
java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Father.java

@@ -0,0 +1,5 @@
+package _02_继承._03_继承当中成员变量;
+
+public class Father {
+    int num = 10;
+}

+ 14 - 0
java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Son.java

@@ -0,0 +1,14 @@
+package _02_继承._03_继承当中成员变量;
+
+public class Son extends Father {
+    int num = 20;
+
+    public void show(){
+        // 在继承体系中如果打印变量名字重复
+        // 他遵循就近原则, 谁离他近 他就用谁
+        int num = 30;
+        System.out.println(super.num);       // 父类当中成员变量
+        System.out.println(this.num);  // 子类当中成员变量
+        System.out.println(num);       // 子类当中局部变量
+    }
+}

+ 14 - 0
java-base-project10/day12/src/_02_继承/_03_继承当中成员变量/Test.java

@@ -0,0 +1,14 @@
+package _02_继承._03_继承当中成员变量;
+
+public class Test {
+    public static void main(String[] args) {
+        Son son = new Son();
+        // 当变量不重名的时候是没有任何问题, 但是如果变量重名了就会存在问题
+        // 当成员变量名字相同的时候
+        /**
+         * 如果想要访问父类当中变量要使用super.变量名字
+         * 如果想要访问当前类当中变量this.变量名字
+         */
+        son.show();
+    }
+}

+ 8 - 0
java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Father.java

@@ -0,0 +1,8 @@
+package _02_继承._04_继承当中成员方法;
+
+public class Father {
+    public Father(){}
+    public void show(){
+        System.out.println("这是父类当中方法");
+    }
+}

+ 24 - 0
java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Son.java

@@ -0,0 +1,24 @@
+package _02_继承._04_继承当中成员方法;
+
+public class Son extends Father{
+    public Son(){}
+    /**
+     * 重写场景:
+     * 父类当中方法无法满足子类当中需求
+     *
+     * 子类就可以重写父类方法
+     *
+     * 重写和重载区别
+     * 重写继承体系中出现, 父类无法满足子类需求, 子类就可以重写父类方法
+     * 重载在一个类当中 多个方法 存在相同发明, 不同的形参
+     *
+     * 不同形参:  参数个数不同, 参数类型不同, 参数顺序不同
+     *
+     * Override 注解: 表示这个show 方法是一个重写方法 , 必须要和父类保持一致
+     * @Override  这是一个注解
+     */
+    @Override
+    public void show() {
+//        super.show();
+    }
+}

+ 20 - 0
java-base-project10/day12/src/_02_继承/_04_继承当中成员方法/Test.java

@@ -0,0 +1,20 @@
+package _02_继承._04_继承当中成员方法;
+
+public class Test {
+    /**
+     * 不重名
+     * 定义父类当中提供show 方法 打印这是父类方法
+     * 定义一个子类继承父类, show1 方法, 打印这是子类的方法
+     *
+     * 在测试方法当中分别调用子类的方法和父类方法
+     *
+     * 重名:
+     * 把父类和子类方法改成相同名字
+     * 然后调用看是子类还是父类的
+     *
+     */
+    public static void main(String[] args) {
+        Son s = new Son();
+        s.show();
+    }
+}

+ 27 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/Employee.java

@@ -0,0 +1,27 @@
+package _02_继承._05_继承构造方法;
+
+public class Employee {
+    private String name;
+    private int age;
+    private String sex;
+
+    public Employee(String name, int age, String sex) {
+        this.name = name;
+        this.age = age;
+        this.sex = sex;
+    }
+
+    @Override
+    public String toString() {
+        return "Employee{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                ", sex='" + sex + '\'' +
+                '}';
+    }
+
+    public Employee() {
+        // 调用的是本类有参数构造器
+        this("默认名字",18,"男");
+    }
+}

+ 20 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/EmployeeTest.java

@@ -0,0 +1,20 @@
+package _02_继承._05_继承构造方法;
+
+public class EmployeeTest {
+
+    /**
+     * 先在有一个Employee 类 name, age ,sex
+     * 要求给Employee 提供一个无参数构造器 和有参数构造器
+     *
+     * 在创建对象Employee
+     *  如果调用无参数构造器 给employee 提供一个默认名字, 模型年龄, 默认的性别(男)
+     *  要求在无参数构造器中调用有参数构造器
+     *
+     * 如果调用有参数构造器 传递的值是什么 创建对象值就是什么
+     * @param args
+     */
+    public static void main(String[] args) {
+        Employee employee = new Employee();
+        System.out.println(employee);
+    }
+}

+ 35 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/Person.java

@@ -0,0 +1,35 @@
+package _02_继承._05_继承构造方法;
+
+public class Person {
+    String name;
+    int 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;
+    }
+
+    public Person(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public Person() {
+        System.out.println("这是父类的无参数构造器");
+    }
+
+    public void eat(){
+        System.out.println("吃东西");
+    }
+}

+ 31 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/Student.java

@@ -0,0 +1,31 @@
+package _02_继承._05_继承构造方法;
+
+public class Student extends Person {
+    private double score;
+
+    public double getScore() {
+        return score;
+    }
+
+    public void setScore(double score) {
+        this.score = score;
+    }
+
+    public Student() {
+        //super()
+        // 默认在子类的构造方法的第一行会有super() 调用父类的无参数构造器
+        System.out.println("这是子类的无参数构造器");
+
+    }
+
+    public Student(double score) {
+        System.out.println("这是子类的有参数构造器");
+        this.score = score;
+    }
+
+
+    public Student(String name,int age,double score) {
+        super(name,age);   // 调用是父类有参构造防范帮我们去完成name 和age 属性初始化
+        this.score = score;
+    }
+}

+ 14 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/Teacher.java

@@ -0,0 +1,14 @@
+package _02_继承._05_继承构造方法;
+
+public class Teacher extends Person{
+    private double salary;
+
+    public Teacher(double salary) {
+        this.salary = salary;
+    }
+
+    public Teacher(String name,int age,double salary){
+        super(name,age);
+        this.salary = salary;
+    }
+}

+ 22 - 0
java-base-project10/day12/src/_02_继承/_05_继承构造方法/Test.java

@@ -0,0 +1,22 @@
+package _02_继承._05_继承构造方法;
+
+public class Test {
+    /**
+     * Person 父类: name age , eat()
+     * Student 子类: name age ,score  eat()
+     * 1 自己设计继承结构
+     * 2 父类需要提供无参数构造器, 在无参数构造器当中打印这是父类无参数构造器
+     * 3 子类需要提供无参数构造器, 和一个有参数构造器(double  score)
+     * 打印这是子类无参数构造器, 和这是子类有参数构造器
+     *
+     * 4 创建一个测试类, 在测试类中创建子类的对象
+     *  Student s = new Student()   Student s1 = new Student(100);
+     *  在控制台观察结果
+     *  看调用过程
+     */
+    public static void main(String[] args) {
+        Student student1 = new Student("fjl",18,100);
+        System.out.println(student1.getName());
+        System.out.println(student1.getAge());
+    }
+}

+ 16 - 0
java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Animal.java

@@ -0,0 +1,16 @@
+package _02_继承._06_继承练习.demo1;
+
+public class Animal {
+    String name = "动物";
+
+    public Animal() {
+    }
+
+    public Animal(String name) {
+        this.name = name;
+    }
+
+    public void eat(){
+        System.out.println("动物吃东西");
+    }
+}

+ 34 - 0
java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Dog.java

@@ -0,0 +1,34 @@
+package _02_继承._06_继承练习.demo1;
+
+public class Dog extends Mammal{
+    private String color;
+//    String name;
+
+    public Dog(String name, int age, String color) {
+        super(name, age);
+//        this.name =name;
+        this.color = color;
+    }
+
+    public void bark(){
+        System.out.println("狗叫");
+    }
+
+    @Override
+    public void eat() {
+        // 访问本类成员
+        // 当前dog 类中没有name 属性
+        // this.name 从当前类当中去找是否有name 属性如果有name 属性直接当前name
+        // 如果没有上父类当中去找name 属性
+        System.out.println("狗的名字:"+ this.name);
+        System.out.println("狗的颜色:"+ this.color);
+        // 访问父类的成员和方法
+        System.out.println("访问父类名字:"+ super.name);
+        // 访问父类run 方法
+        super.run();
+        // 访问间接父类当中eat()
+        super.eat();
+
+        System.out.println("狗吃狗粮");
+    }
+}

+ 17 - 0
java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Mammal.java

@@ -0,0 +1,17 @@
+package _02_继承._06_继承练习.demo1;
+
+public class Mammal extends  Animal {
+    int age;
+    String name = "哺乳动物";
+
+    public Mammal(String name, int age) {
+        super(name);
+        this.age = age;
+    }
+
+    public void run(){
+        System.out.println("哺乳东部奔跑");
+    }
+
+
+}

+ 8 - 0
java-base-project10/day12/src/_02_继承/_06_继承练习/demo1/Test.java

@@ -0,0 +1,8 @@
+package _02_继承._06_继承练习.demo1;
+
+public class Test {
+    public static void main(String[] args) {
+        Dog dog = new Dog("旺财",5,"黑色");
+        dog.eat();
+    }
+}