diff --git a/javase/src/main/java/com/hongyi/day10/OrderTest.java b/javase/src/main/java/com/hongyi/day10/OrderTest.java new file mode 100644 index 0000000000000000000000000000000000000000..82b057dfd96359d83a3fa8c23262b4281338001d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day10/OrderTest.java @@ -0,0 +1,23 @@ +package com.hongyi.day10; + +import com.hongyi.day11.Order; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 16:23 + * @Version 1.0 + */ +// 与Order位于不同的包 +public class OrderTest { + public static void main(String[] args) { + Order o = new Order(); + // 'orderDefault' is not public in 'com.hongyi.day11.Order'. Cannot be accessed from outside package + // o.orderDefault = 1; + o.orderPublic = 2; + // o.orderPrivate = 3; + + // o.methodDefault(); + o.methodPublic(); + // o.orderPrivate(); + } +} diff --git a/javase/src/main/java/com/hongyi/day10/PersonTest.java b/javase/src/main/java/com/hongyi/day10/PersonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6c5f977ff064cbc4a17f4d2ebbc1ff7017a63ec8 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day10/PersonTest.java @@ -0,0 +1,39 @@ +package com.hongyi.day10; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/16 16:30 + * @Version 1.0 + */ +public class PersonTest { + public static void main(String[] args) { + Person person = new Person(); + // 调用属性和方法 + person.name = "Mark"; + System.out.println(person.name); + System.out.println(person.age); + person.eat(); + person.sleep(); + person.talk("English"); + } +} + +class Person { + // 属性 + String name; + int age = 1; + boolean isMale; + + // 方法 + public void eat() { + System.out.println("eat..."); + } + + public void sleep() { + System.out.println("sleep..."); + } + + public void talk(String language) { + System.out.println("talk: " + language); + } +} diff --git a/javase/src/main/java/com/hongyi/day10/UserTest.java b/javase/src/main/java/com/hongyi/day10/UserTest.java new file mode 100644 index 0000000000000000000000000000000000000000..bd93e802a6ddc3b9824c49eda310a5ece9115268 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day10/UserTest.java @@ -0,0 +1,33 @@ +package com.hongyi.day10; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/16 17:04 + * @Version 1.0 + */ +public class UserTest { + public static void main(String[] args) { + User user = new User(); + System.out.println(user.name); // null + System.out.println(user.age); // 0 + System.out.println(user.isMale); // false + } +} + +class User { + // 属性或成员变量 + String name; + protected int age; + boolean isMale; + + // 方法 + public void talk(String language) { // 形参language,也是局部变量 + System.out.println("talking: " + language); + } + + public void eat() { + // 局部变量food + final String food = "川菜"; + System.out.println("eat: " + food); + } +} diff --git a/javase/src/main/java/com/hongyi/day11/AnimalTest.java b/javase/src/main/java/com/hongyi/day11/AnimalTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f99365009caae7a970cfaf2c9903c65295cd220f --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/AnimalTest.java @@ -0,0 +1,53 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 15:58 + * @Version 1.0 + */ +public class AnimalTest { + public static void main(String[] args) { + Animal animal = new Animal(); +// animal.name = "frog"; +// animal.age = 24; +// animal.legs = 4; +// System.out.println(animal); + + // animal.setLegs(-1); // 抛出异常 + animal.setLegs(6); + System.out.println(animal.getLegs()); // 6 + } +} + +class Animal { + private String name; + private int age; + private int legs; // 将属性legs定义为private,只能被Animal类内部访问 + + // 属性设置 + public void setLegs(int l) { + if (l >= 0 && l % 2 ==0) { + legs = l; + } else { + throw new RuntimeException("输入值错误!"); + } + } + + // 属性获取 + public int getLegs() { + return legs; + } + + public void eat() { + System.out.println("eat..."); + } + + @Override + public String toString() { + return "Animal{" + + "name='" + name + '\'' + + ", age=" + age + + ", legs=" + legs + + '}'; + } +} \ No newline at end of file diff --git a/javase/src/main/java/com/hongyi/day11/InstanceTest.java b/javase/src/main/java/com/hongyi/day11/InstanceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e24981f92a53d5ce527eec7c91b7934935a47e94 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/InstanceTest.java @@ -0,0 +1,47 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 14:50 + * @Version 1.0 + */ +public class InstanceTest { + public static void main(String[] args) { + Phone p = new Phone(); + System.out.println(p); + p.playGame(); + p.sendMail(); + + // 匿名 + new Phone().sendMail(); + new Phone().price = 1999; + new Phone().showPrice(); // 0.0 + + // 匿名对象的使用 + PhoneFactory mall = new PhoneFactory(); + mall.show(new Phone()); + } +} + +class PhoneFactory { + public void show(Phone phone) { + phone.sendMail(); + phone.playGame(); + } +} + +class Phone { + double price; + + public void sendMail() { + System.out.println("send mail..."); + } + + public void playGame() { + System.out.println("play game..."); + } + + public void showPrice() { + System.out.println("price is: " + this.price); + } +} diff --git a/javase/src/main/java/com/hongyi/day11/Order.java b/javase/src/main/java/com/hongyi/day11/Order.java new file mode 100644 index 0000000000000000000000000000000000000000..0a5a43ded6de61ff45f163c8f20446bb27e9f0ac --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/Order.java @@ -0,0 +1,27 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 16:19 + * @Version 1.0 + */ +public class Order { + private int orderPrivate; + int orderDefault; + public int orderPublic; + + // 在类内部都可以使用 + private void methodPrivate() { + orderPrivate = 1; + orderDefault = 2; + orderPublic = 3; + } + + void methodDefault() { + + } + + public void methodPublic() { + + } +} diff --git a/javase/src/main/java/com/hongyi/day11/OrderTest.java b/javase/src/main/java/com/hongyi/day11/OrderTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3a7a0ddc79386d9cfc3ec8965c96f081ba6f6f8e --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/OrderTest.java @@ -0,0 +1,21 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 16:20 + * @Version 1.0 + */ +// 与Order位于同一个包 +public class OrderTest { + public static void main(String[] args) { + Order o = new Order(); + o.orderDefault = 1; + o.orderPublic = 2; + // 'orderPrivate' has private access in 'com.hongyi.day11.Order' + // o.orderPrivate = 3; + + o.methodDefault(); + o.methodPublic(); + // o.orderPrivate(); + } +} diff --git a/javase/src/main/java/com/hongyi/day11/OverloadTest.java b/javase/src/main/java/com/hongyi/day11/OverloadTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a24f13557fece226da5d7d1ac75b6d26b05c6d35 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/OverloadTest.java @@ -0,0 +1,31 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 15:00 + * @Version 1.0 + */ +public class OverloadTest { + public static void main(String[] args) { + OverloadTest test = new OverloadTest(); + test.getSum(1, 1); // 1 2 + } + // 以下都是重载的实例 + public void getSum(int i, int j) { + System.out.println("1"); + System.out.println(i + j); + } + + public void getSum(double i, double j) { + System.out.println("2"); + System.out.println(i + j); + } + + public void getSum(int i, String s) { + System.out.println("3"); + } + + public void getSum(String s, int i) { + System.out.println("4"); + } +} diff --git a/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java b/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java new file mode 100644 index 0000000000000000000000000000000000000000..21371bfe6d20eefbdd234db4dca85d9fd87aa330 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java @@ -0,0 +1,31 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 15:13 + * @Version 1.0 + */ +public class ValueTransferTest { + public static void main(String[] args) { + // 基本数据类型 + int m = 10; + int n = m; + System.out.println("m = " + m + ", n = " + n); // 10, 10 + n = 20; + System.out.println("m = " + m + ", n = " + n); // 10, 20 + + // 引用数据类型 + Order1 o1 = new Order1(); + o1.id = 1001; + + Order1 o2 = o1; // 赋值以后,栈中的o1和o2的地址都指向堆中同一个对象 + System.out.println("o1.id: " + o1.id + ", o2.id: " + o2.id); // 1001 1001 + + o2.id = 1002; + System.out.println("o1.id: " + o1.id + ", o2.id: " + o2.id); // 1002 10002 + } +} + +class Order1 { + int id; +} diff --git a/javase/src/main/java/com/hongyi/day11/ValueTransferTest1.java b/javase/src/main/java/com/hongyi/day11/ValueTransferTest1.java new file mode 100644 index 0000000000000000000000000000000000000000..4e73cf8f058812fd9b661d8f06c5d46f07f12593 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/ValueTransferTest1.java @@ -0,0 +1,23 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 15:23 + * @Version 1.0 + */ +public class ValueTransferTest1 { + public static void main(String[] args) { + int m = 10; + int n = 20; + ValueTransferTest1 test = new ValueTransferTest1(); + test.swap(m, n); + System.out.println("m = " + m + ", n = " + n); // 10 20 + } + + public void swap(int m, int n) { + int temp = m; + m = n; + n = temp; + System.out.println("m = " + m + ", n = " + n); // 20 10 + } +} diff --git a/javase/src/main/java/com/hongyi/day11/ValueTransferTest2.java b/javase/src/main/java/com/hongyi/day11/ValueTransferTest2.java new file mode 100644 index 0000000000000000000000000000000000000000..2fc393a817c7b2adce7f56c619e04369ad9c4e9d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day11/ValueTransferTest2.java @@ -0,0 +1,29 @@ +package com.hongyi.day11; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/22 15:38 + * @Version 1.0 + */ +public class ValueTransferTest2 { + public static void main(String[] args) { + Data data = new Data(); + data.m = 10; + data.n = 20; + System.out.println("m = " + data.m + ", n = " + data.n); // 10 20 + ValueTransferTest2 test = new ValueTransferTest2(); + test.swap(data); + System.out.println("m = " + data.m + ", n = " + data.n); // 20 10 + } + + public void swap(Data data) { + int temp = data.m; + data.m = data.n; + data.n = temp; + } +} + +class Data { + int m; + int n; +} diff --git a/javase/src/main/java/com/hongyi/day12/ExtendsTest.java b/javase/src/main/java/com/hongyi/day12/ExtendsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6289d86932171e6438d5e3ba0df0d8577bcf72f4 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day12/ExtendsTest.java @@ -0,0 +1,22 @@ +package com.hongyi.day12; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 15:53 + * @Version 1.0 + */ +public class ExtendsTest { + public static void main(String[] args) { + People p1 = new People(); + p1.setAge(24); + p1.setName("Mark"); + p1.eat(); + p1.sleep(); + + Student s1 = new Student(); + s1.setAge(24); // 使用父类中的属性和方法 + s1.setName("Hongyi"); + s1.setMajor("Computer Science"); + s1.learn(); + } +} diff --git a/javase/src/main/java/com/hongyi/day12/People.java b/javase/src/main/java/com/hongyi/day12/People.java new file mode 100644 index 0000000000000000000000000000000000000000..cab1e1c0ec50464b6e35e8c77231ccec93ab91b7 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day12/People.java @@ -0,0 +1,26 @@ +package com.hongyi.day12; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 15:49 + * @Version 1.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class People { + private String name; + private int age; + + public void eat() { + System.out.println("eat..."); + } + + public void sleep() { + System.out.println("sleep..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day12/PersonTest.java b/javase/src/main/java/com/hongyi/day12/PersonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..264b1f292eb8095821f3b298b6c569b4d79cdb21 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day12/PersonTest.java @@ -0,0 +1,49 @@ +package com.hongyi.day12; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 15:08 + * @Version 1.0 + */ +public class PersonTest { + public static void main(String[] args) { + // 创建类的实例 + Person p1 = new Person(); // No Params Constructor... + Person p2 = new Person("Hongyi"); + Person p3 = new Person(24); + Person p4 = new Person("Mark", 24); + } +} + +class Person { + private String name; + private int age; + + // 空参构造器 + public Person() { + System.out.println("No Params Constructor..."); + } + + // 多个有参构造器 + public Person(String name) { + this.name = name; + } + + public Person(int age) { + this.age = age; + } + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + + public void eat() { + System.out.println("eat..."); + } + + public void learn() { + System.out.println("learn"); + } +} diff --git a/javase/src/main/java/com/hongyi/day12/PersonTest1.java b/javase/src/main/java/com/hongyi/day12/PersonTest1.java new file mode 100644 index 0000000000000000000000000000000000000000..6e7adbbbbb86d9f321f525d7eb312a195c6d87e7 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day12/PersonTest1.java @@ -0,0 +1,67 @@ +package com.hongyi.day12; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 15:22 + * @Version 1.0 + */ +public class PersonTest1 { + public static void main(String[] args) { + Person1 p1 = new Person1(); + p1.setName("Mark"); + System.out.println(p1.getName()); // Mark + p1.eat(); + } +} + +class Person1 { + private String name; + private int age; + + public Person1() { + this.eat(); + } + + public Person1(String name) { + this(); // 调用空参构造器 + this.name = name; + } + + public Person1(String name, int age) { + this(name); // 调用上一个构造器 + this.age = age; + } + + public void setName(String name) { + // this理解为当前对象 + // 形参名和属性名相同时,必须使用this + this.name = name; + } + + public String getName() { + return name; + } + + public void setAge(int a) { + // 形参名和属性名不同,可以不使用this + age = a; + } + + public int getAge() { + return age; + } + + public void eat() { + System.out.println("eat..."); + // 这里的this可以省略 + this.speak(); + } + + public void speak() { + System.out.println("speak..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day12/Student.java b/javase/src/main/java/com/hongyi/day12/Student.java new file mode 100644 index 0000000000000000000000000000000000000000..5cd4896c289e4705118ff1696b6e73b7ea3d0441 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day12/Student.java @@ -0,0 +1,21 @@ +package com.hongyi.day12; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 15:50 + * @Version 1.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Student extends People{ + private String major; // 定义自己的属性 + + public void learn() { // 定义自己的方法 + System.out.println("learn..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day13/Person.java b/javase/src/main/java/com/hongyi/day13/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..535439d168e5ea25efc876d172b41be00e5773c7 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day13/Person.java @@ -0,0 +1,44 @@ +package com.hongyi.day13; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 16:19 + * @Version 1.0 + */ +public class Person { + private String name; + private int age; + + public Person() { + + } + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public void eat() { + System.out.println("eat..."); + } + + public void walk(int distance) { + System.out.println("walk: " + distance); + } + + 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; + } +} diff --git a/javase/src/main/java/com/hongyi/day13/PersonTest.java b/javase/src/main/java/com/hongyi/day13/PersonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..57005add41be6295464e00d15429bf8fd2231205 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day13/PersonTest.java @@ -0,0 +1,15 @@ +package com.hongyi.day13; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 16:24 + * @Version 1.0 + */ +public class PersonTest { + public static void main(String[] args) { + Student s = new Student("Mark", 24, "Computer Science"); + s.eat(); // Student eat... + s.walk(10); + s.learn(); + } +} diff --git a/javase/src/main/java/com/hongyi/day13/Student.java b/javase/src/main/java/com/hongyi/day13/Student.java new file mode 100644 index 0000000000000000000000000000000000000000..f8ff46014deccb2900325bc7e006cacd6040449d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day13/Student.java @@ -0,0 +1,28 @@ +package com.hongyi.day13; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/24 16:20 + * @Version 1.0 + */ +public class Student extends Person{ + private String major; + + public Student() { + + } + + public Student(String name, int age, String major) { + super(name, age); + this.major = major; + } + + public void learn() { + System.out.println("learn: " + this.major); + } + + // 对父类方法eat的重写 + public void eat() { + System.out.println("Student eat..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day14/Person.java b/javase/src/main/java/com/hongyi/day14/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..00356a3e315ff5b0e246f6c56c747090d8fcfba1 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day14/Person.java @@ -0,0 +1,39 @@ +package com.hongyi.day14; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 19:38 + * @Version 1.0 + */ +public class Person { + String name; + int age; + int id = 1001; // 身份证号 + + // 空参构造器 + public Person() { + System.out.println("I'm everywhere..."); + } + + public Person(String name) { + this.name = name; + } + + public Person(int age) { + this.age = age; + } + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public void eat() { + System.out.println("eat..."); + } + + public void walk(int distance) { + System.out.println("walk: " + distance); + } + +} diff --git a/javase/src/main/java/com/hongyi/day14/Student.java b/javase/src/main/java/com/hongyi/day14/Student.java new file mode 100644 index 0000000000000000000000000000000000000000..940d662a83bc2c4bcd525b31ebbf3a907bcafe5d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day14/Student.java @@ -0,0 +1,44 @@ +package com.hongyi.day14; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 19:38 + * @Version 1.0 + */ +public class Student extends Person{ + String major; + int id = 1002; // 学号 + + public Student() { + // super(); + } + + public Student(String major) { + // 默认super()会出现在子类的所有构造器的首行 + // super(); + this.major = major; + } + + public Student(String name, int age, String major) { + // 调用父类构造器 + super(name, age); + this.major = major; + } + + @Override + public void eat() { + System.out.println("Student eat..."); + } + + public void study() { + System.out.println("Student study..."); + eat(); // 调用自身重写的方法 + super.eat(); // 调用父类的方法 + } + + public void show() { + System.out.println("name = " + this.name + ", " + "age = " + super.age); // 子类没有这些属性,二者没有区别 + System.out.println(id); // 子类id + System.out.println(super.id); // 父类id + } +} diff --git a/javase/src/main/java/com/hongyi/day14/SuperTest.java b/javase/src/main/java/com/hongyi/day14/SuperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8c78f3f68c99b7e20437c367edce798b2158af7c --- /dev/null +++ b/javase/src/main/java/com/hongyi/day14/SuperTest.java @@ -0,0 +1,16 @@ +package com.hongyi.day14; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 19:38 + * @Version 1.0 + */ +public class SuperTest { + public static void main(String[] args) { + Student s1 = new Student("Mark", 24, "Computer Science"); + s1.show(); // name = Mark, age = 24 1002 1001 + + Student s2 = new Student("Computer Science"); // I'm everywhere... + Student s3 = new Student(); // I'm everywhere... + } +} diff --git a/javase/src/main/java/com/hongyi/day15/AnimalTest.java b/javase/src/main/java/com/hongyi/day15/AnimalTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a1002a5b5930be8ba8bd186f6fa832e7a4ed729f --- /dev/null +++ b/javase/src/main/java/com/hongyi/day15/AnimalTest.java @@ -0,0 +1,53 @@ +package com.hongyi.day15; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:55 + * @Version 1.0 + */ +public class AnimalTest { + public static void main(String[] args) { + AnimalTest test = new AnimalTest(); + test.func(new Dog()); + test.func(new Cat()); + } + + public void func(Animal animal) { // Animal animal = new Dog(); + animal.eat(); + animal.shout(); + } +} + +class Animal { + public void eat() { + System.out.println("Animal eat"); + } + + public void shout() { + System.out.println("animal shout"); + } +} + +class Dog extends Animal { + @Override + public void eat() { + System.out.println("Dog eat"); + } + + @Override + public void shout() { + System.out.println("Dog shout"); + } +} + +class Cat extends Animal { + @Override + public void eat() { + System.out.println("Cat eat"); + } + + @Override + public void shout() { + System.out.println("Cat shout"); + } +} diff --git a/javase/src/main/java/com/hongyi/day15/Man.java b/javase/src/main/java/com/hongyi/day15/Man.java new file mode 100644 index 0000000000000000000000000000000000000000..b877ba1eebe4c5a142872443c0ad36b138417f2d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day15/Man.java @@ -0,0 +1,24 @@ +package com.hongyi.day15; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:35 + * @Version 1.0 + */ +public class Man extends Person{ + boolean isSmoking; + + public void earnMoney() { + System.out.println("Man earn money"); + } + + @Override + public void eat() { + System.out.println("Man eat..."); + } + + @Override + public void walk() { + System.out.println("Man walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day15/Person.java b/javase/src/main/java/com/hongyi/day15/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..7c95b501f7d35c1d0a252872f81b519a31fcd218 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day15/Person.java @@ -0,0 +1,19 @@ +package com.hongyi.day15; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:34 + * @Version 1.0 + */ +public class Person { + String name; + int age; + + public void eat() { + System.out.println("eat..."); + } + + public void walk() { + System.out.println("walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day15/PersonTest.java b/javase/src/main/java/com/hongyi/day15/PersonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c101c310573cd92e5a0b8f07e0635e723649c338 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day15/PersonTest.java @@ -0,0 +1,27 @@ +package com.hongyi.day15; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:38 + * @Version 1.0 + */ +public class PersonTest { + public static void main(String[] args) { + Person p1 = new Person(); + p1.eat(); // eat... + + Man man = new Man(); + man.eat(); // Man eat... + man.earnMoney(); // Man earn money + + //------------------------------ + + // 对象的多态:父类的引用指向子类的对象 + Person p2 = new Man(); + Person p3 = new Woman(); + // 多态的使用:当调用父子类同名同参数的方法时,实际执行的是子类重写父类的方法--虚拟方法调用 + p2.eat(); // Man eat... + p2.walk(); // Man walk... + // p2.earnMoney(); 不能调用Man中特有的方法 + } +} diff --git a/javase/src/main/java/com/hongyi/day15/Woman.java b/javase/src/main/java/com/hongyi/day15/Woman.java new file mode 100644 index 0000000000000000000000000000000000000000..3f1a450f2ae68e4d179124ae585e562bc8010bca --- /dev/null +++ b/javase/src/main/java/com/hongyi/day15/Woman.java @@ -0,0 +1,24 @@ +package com.hongyi.day15; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:36 + * @Version 1.0 + */ +public class Woman extends Person{ + boolean isBeauty; + + public void goShopping() { + System.out.println("Woman go shopping"); + } + + @Override + public void eat() { + System.out.println("Woman eat..."); + } + + @Override + public void walk() { + System.out.println("Woman walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day16/Man.java b/javase/src/main/java/com/hongyi/day16/Man.java new file mode 100644 index 0000000000000000000000000000000000000000..d2f16f2e3b3ae57fe1b7de454ee6738e7a377dc1 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day16/Man.java @@ -0,0 +1,24 @@ +package com.hongyi.day16; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:35 + * @Version 1.0 + */ +public class Man extends Person { + boolean isSmoking; + + public void earnMoney() { + System.out.println("Man earn money"); + } + + @Override + public void eat() { + System.out.println("Man eat..."); + } + + @Override + public void walk() { + System.out.println("Man walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day16/Person.java b/javase/src/main/java/com/hongyi/day16/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..e1cf474dfd2304370c349c96533f8c416bb8001d --- /dev/null +++ b/javase/src/main/java/com/hongyi/day16/Person.java @@ -0,0 +1,19 @@ +package com.hongyi.day16; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:34 + * @Version 1.0 + */ +public class Person { + String name; + int age; + + public void eat() { + System.out.println("eat..."); + } + + public void walk() { + System.out.println("walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day16/PersonTest.java b/javase/src/main/java/com/hongyi/day16/PersonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d0203077de6c995a2896a454f453eaac0029807c --- /dev/null +++ b/javase/src/main/java/com/hongyi/day16/PersonTest.java @@ -0,0 +1,27 @@ +package com.hongyi.day16; + + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:38 + * @Version 1.0 + */ +public class PersonTest { + public static void main(String[] args) { + // 对象的多态:父类的引用指向子类的对象 + Person p1 = new Man(); + // 多态的使用:当调用父子类同名同参数的方法时,实际执行的是子类重写父类的方法--虚拟方法调用 + p1.eat(); // Man eat... + p1.walk(); // Man walk... + + // ------------------------------ + // p2.earnMoney(); 不能调用Man中特有的方法 + // p2.isSmoking = true; 不能调用Man中特有的属性 + // 向下转型,使用强转时,可能出现ClassCastException异常 + if (p1 instanceof Man) { + Man m1 = (Man) p1; + m1.isSmoking = true; + m1.earnMoney(); + } + } +} diff --git a/javase/src/main/java/com/hongyi/day16/Woman.java b/javase/src/main/java/com/hongyi/day16/Woman.java new file mode 100644 index 0000000000000000000000000000000000000000..3c88eb1fabb70a947ff1a5463779d6f189fd28fe --- /dev/null +++ b/javase/src/main/java/com/hongyi/day16/Woman.java @@ -0,0 +1,24 @@ +package com.hongyi.day16; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/28 20:36 + * @Version 1.0 + */ +public class Woman extends Person { + boolean isBeauty; + + public void goShopping() { + System.out.println("Woman go shopping"); + } + + @Override + public void eat() { + System.out.println("Woman eat..."); + } + + @Override + public void walk() { + System.out.println("Woman walk..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day17/Customer.java b/javase/src/main/java/com/hongyi/day17/Customer.java new file mode 100644 index 0000000000000000000000000000000000000000..6c1db5cd2b6fd8c3296479e2a70abc34246900e6 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day17/Customer.java @@ -0,0 +1,55 @@ +package com.hongyi.day17; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/29 19:48 + * @Version 1.0 + */ +public class Customer { + private String name; + private int age; + + public Customer(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 boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Customer customer = (Customer) o; + + if (age != customer.age) return false; + return name.equals(customer.name); + } + + @Override + public String toString() { + return "Customer{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } +} diff --git a/javase/src/main/java/com/hongyi/day17/EqualsTest.java b/javase/src/main/java/com/hongyi/day17/EqualsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ea7346016db10d41734c55fba77c0c2b06185236 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day17/EqualsTest.java @@ -0,0 +1,38 @@ +package com.hongyi.day17; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/29 19:38 + * @Version 1.0 + */ +public class EqualsTest { + public static void main(String[] args) { + // 基本数据类型比较 + int i = 10; + int j = 10; + double d = 10.0; + boolean b = true; + char c = 10; + System.out.println(i == j); // true + System.out.println(i == d); // true + System.out.println(i == c); // true + // System.out.println(b == i); // 编译出错 + char c1 = 'A'; + char c2 = 65; + System.out.println(c1 == c2); // true + + // 引用数据类型比较 + Customer customer1 = new Customer("Mark", 24); + Customer customer2 = new Customer("Mark", 24); + System.out.println(customer1 == customer2); // false + + String str1 = new String("Hongyi"); + String str2 = new String("Hongyi"); + System.out.println(str1 == str2); // false + + System.out.println(customer1.equals(customer2)); // false + System.out.println(str1.equals(str2)); // true,String类重写了equals方法,只比较字符串内容 + + + } +} diff --git a/javase/src/main/java/com/hongyi/day17/ToStringTest.java b/javase/src/main/java/com/hongyi/day17/ToStringTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c54e1d1b62a9f83c2147ffd409bd8330f73c9e2a --- /dev/null +++ b/javase/src/main/java/com/hongyi/day17/ToStringTest.java @@ -0,0 +1,16 @@ +package com.hongyi.day17; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/29 20:15 + * @Version 1.0 + */ +public class ToStringTest { + public static void main(String[] args) { + Customer c1 = new Customer("Tom", 24); + System.out.println(c1); // com.hongyi.day17.Customer@5594a1b5 + + String str = new String("Hello World"); + System.out.println(str); + } +} diff --git a/javase/src/main/java/com/hongyi/day18/MainDemo.java b/javase/src/main/java/com/hongyi/day18/MainDemo.java new file mode 100644 index 0000000000000000000000000000000000000000..244e024d0d2db9e5e56598dcb47117c229c05300 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day18/MainDemo.java @@ -0,0 +1,14 @@ +package com.hongyi.day18; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/30 23:01 + * @Version 1.0 + */ +public class MainDemo { + public static void main(String[] args) { + for (String arg : args) { + System.out.println(arg); + } + } +} diff --git a/javase/src/main/java/com/hongyi/day18/MainTest.java b/javase/src/main/java/com/hongyi/day18/MainTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5abb35e0b8e1d360c6cb4a96f7d4b5966f57dc14 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day18/MainTest.java @@ -0,0 +1,20 @@ +package com.hongyi.day18; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/30 22:47 + * @Version 1.0 + */ +public class MainTest { + + public static void main(String[] args) { // 程序的入口 + // show(); 报错,因为show不是静态方法 + // 通过类的实例来调非静态方法 + MainTest test = new MainTest(); + test.show(); + } + + public void show() { + System.out.println("show..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day18/SingletonTest1.java b/javase/src/main/java/com/hongyi/day18/SingletonTest1.java new file mode 100644 index 0000000000000000000000000000000000000000..7978522af93dc7ae83322eb963b9e9b05b1d6d49 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day18/SingletonTest1.java @@ -0,0 +1,31 @@ +package com.hongyi.day18; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/30 11:11 + * @Version 1.0 + */ +public class SingletonTest1 { + public static void main(String[] args) { + Bank bank1 = Bank.getInstance(); + Bank bank2 = Bank.getInstance(); + System.out.println(bank1 == bank2); // true + + } +} + +// 饿汉式 +class Bank { + // 2.内部创建类的对象 + private static final Bank instance = new Bank(); + + // 1.私有化构造器 + private Bank() { + + } + + // 3.提供公共的方法返回类的对象 + public static Bank getInstance() { + return instance; + } +} \ No newline at end of file diff --git a/javase/src/main/java/com/hongyi/day18/SingletonTest2.java b/javase/src/main/java/com/hongyi/day18/SingletonTest2.java new file mode 100644 index 0000000000000000000000000000000000000000..1fd3ac9ae5c2e0e6f69758e76f09d52eedc7a6f1 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day18/SingletonTest2.java @@ -0,0 +1,32 @@ +package com.hongyi.day18; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/30 11:16 + * @Version 1.0 + */ +public class SingletonTest2 { + public static void main(String[] args) { + Order order1 = Order.getInstance(); + Order order2 = Order.getInstance(); + System.out.println(order1 == order2); // true + } +} + +class Order { + // 1.私有化构造器 + private Order() { + + } + + // 2.声明当前类对象,没有初始化 + private static Order instance = null; + + // 3.返回该对象 + public static Order getInstance() { + if (instance == null) { + instance = new Order(); + } + return instance; + } +} diff --git a/javase/src/main/java/com/hongyi/day18/StaticTest.java b/javase/src/main/java/com/hongyi/day18/StaticTest.java new file mode 100644 index 0000000000000000000000000000000000000000..2732ee6e0da9498686c7a96f6c3b48d7b70fb583 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day18/StaticTest.java @@ -0,0 +1,33 @@ +package com.hongyi.day18; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/30 10:33 + * @Version 1.0 + */ +public class StaticTest { + public static void main(String[] args) { + Chinese.show(); + } +} + +// 中国人 +class Chinese { + String name; + int age; + // 类变量 + static String nation; + + public void eat() { + System.out.println("eat..."); + } + + // 静态方法 + public static void show() { + // this.age = 24; 非法 + // eat(); 非法 + System.out.println(nation); + System.out.println("show..."); + } +} + diff --git a/javase/src/main/java/com/hongyi/day19/BlockTest.java b/javase/src/main/java/com/hongyi/day19/BlockTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5ded9d10656313f6fe5289394c1614988e33c067 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day19/BlockTest.java @@ -0,0 +1,74 @@ +package com.hongyi.day19; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 9:16 + * @Version 1.0 + */ +public class BlockTest { + public static void main(String[] args) { + System.out.println(Person.desc); + + Person p1 = new Person(); + System.out.println(p1); + } +} + +class Person { + String name; + int age; + static String desc = "I'm a human"; + + public Person() { + + } + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + // 静态代码块 + static { + System.out.println("static block-1..."); + desc = "I'm a human..."; // 重新对desc赋值 + } + + static { + System.out.println("static block-2..."); + // 只能调用静态方法 + info(); + } + + // 非静态代码块 + { + // 创建对象时可以初始化属性 + this.name = "Mark"; + this.age = 24; + System.out.println("nonstatic block..."); + } + + { + System.out.println("nonstatic block-2..."); + // 调用静态方法 + info(); + // 调用非静态方法 + eat(); + } + + public void eat() { + System.out.println("eat..."); + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } + + public static void info() { + System.out.println("info..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day19/FinalTest.java b/javase/src/main/java/com/hongyi/day19/FinalTest.java new file mode 100644 index 0000000000000000000000000000000000000000..02262314140b91cea97787baddb2f0b857bc649b --- /dev/null +++ b/javase/src/main/java/com/hongyi/day19/FinalTest.java @@ -0,0 +1,25 @@ +package com.hongyi.day19; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 9:38 + * @Version 1.0 + */ +public class FinalTest { + public static void main(String[] args) { + + } +} + +class A { + public final void show() { + + } +} + +class B extends A { + // 不能重写final方法 +// public void show() { +// +// } +} \ No newline at end of file diff --git a/javase/src/main/java/com/hongyi/day19/FinalTest1.java b/javase/src/main/java/com/hongyi/day19/FinalTest1.java new file mode 100644 index 0000000000000000000000000000000000000000..f43741d0e10c6d50d9e384f39ee95cbdbc44558f --- /dev/null +++ b/javase/src/main/java/com/hongyi/day19/FinalTest1.java @@ -0,0 +1,29 @@ +package com.hongyi.day19; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 9:44 + * @Version 1.0 + */ +public class FinalTest1 { + + final int WIDTH = 10; // 显式初始化 + final int LEFT; + final int RIGHT; + + public FinalTest1() { + RIGHT = 10; // 构造器初始化 + } + + public void doWidth() { + // WIDTH = 20; 报错,不能修改final修饰的变量 + } + + { + LEFT = 10; // 代码块初始化 + } + + public static void main(String[] args) { + + } +} diff --git a/javase/src/main/java/com/hongyi/day19/FinalTest2.java b/javase/src/main/java/com/hongyi/day19/FinalTest2.java new file mode 100644 index 0000000000000000000000000000000000000000..a60a3faf3806d166208a51171dd9101b955e4a0b --- /dev/null +++ b/javase/src/main/java/com/hongyi/day19/FinalTest2.java @@ -0,0 +1,24 @@ +package com.hongyi.day19; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 9:54 + * @Version 1.0 + */ +public class FinalTest2 { + + public void show() { + final int NUM = 10; // 修饰常量 + // NUM += 10; 编译不通过 + } + + public void show(final int num) { // 修饰形参 + // num += 10; 编译不用过 + System.out.println(num); + } + + public static void main(String[] args) { + FinalTest2 test = new FinalTest2(); + test.show(10); + } +} diff --git a/javase/src/main/java/com/hongyi/day20/AbstractTest.java b/javase/src/main/java/com/hongyi/day20/AbstractTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d595a4d2d5896d93ac67db17fa3247f5005757e2 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day20/AbstractTest.java @@ -0,0 +1,27 @@ +package com.hongyi.day20; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 10:07 + * @Version 1.0 + */ +public class AbstractTest { + public static void main(String[] args) { + Student s = new Student(); + s.eat(); + } +} + +// 抽象类 +abstract class Person { + // 抽象方法 + public abstract void eat(); +} + +class Student extends Person { + + @Override + public void eat() { + System.out.println("Student eat..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day20/HumanTest.java b/javase/src/main/java/com/hongyi/day20/HumanTest.java new file mode 100644 index 0000000000000000000000000000000000000000..784a0de6ef95a10c246cd6f6799dbb846c696bd0 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day20/HumanTest.java @@ -0,0 +1,37 @@ +package com.hongyi.day20; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 10:24 + * @Version 1.0 + */ +public class HumanTest { + public static void main(String[] args) { + // 抽象类的匿名子类对象human + Human human = new Human() { + // 对抽象方法的重写 + @Override + public void eat() { + System.out.println("eat"); + } + + @Override + public void breath() { + System.out.println("breath..."); + } + }; + + human.eat(); + human.breath(); + } +} + +// 抽象类 +abstract class Human { + + abstract public void eat(); + + abstract public void breath(); +} + + diff --git a/javase/src/main/java/com/hongyi/day20/TemplateTest.java b/javase/src/main/java/com/hongyi/day20/TemplateTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b0df02716b75d3423ea38749c4a83acc4e67f29f --- /dev/null +++ b/javase/src/main/java/com/hongyi/day20/TemplateTest.java @@ -0,0 +1,46 @@ +package com.hongyi.day20; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 10:38 + * @Version 1.0 + */ +public class TemplateTest { + public static void main(String[] args) { + Template t = new SubTemplate(); + t.spendTime(); + } +} + +abstract class Template { + // 计算某段代码所花费的时间 + public void spendTime() { + long start = System.currentTimeMillis(); + code(); // 不确定的部分 + long end = System.currentTimeMillis(); + System.out.println("花费的时间为: " + (end - start)); + + } + + public abstract void code(); +} + +class SubTemplate extends Template { + + // 找1000以内的质数 + @Override + public void code() { + for (int i = 2; i < 1000; i++) { + boolean flag = true; + for (int j = 2; j <= Math.sqrt(i); j++) { + if (i % j == 0) { + flag = false; + break; + } + } + if (flag) { + System.out.println(i); + } + } + } +} diff --git a/javase/src/main/java/com/hongyi/day21/InterfaceTest.java b/javase/src/main/java/com/hongyi/day21/InterfaceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..445be560d72283cd3169aa19c8f3d8a0cf63e878 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day21/InterfaceTest.java @@ -0,0 +1,50 @@ +package com.hongyi.day21; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/1 16:58 + * @Version 1.0 + */ +public class InterfaceTest { + public static void main(String[] args) { + System.out.println(Flyable.MAX_SPEED); + System.out.println(Flyable.MIN_SPEED); + + Plane plane = new Plane(); + plane.fly(); + plane.stop(); + } +} + +interface Attack { + void attack(); +} + +interface Flyable { + // 全局常量 + int MAX_SPEED = 7000; + int MIN_SPEED = 1; + + // 抽象方法 + void fly(); + void stop(); +} + +// 先extends后implements +class Plane extends Object implements Flyable, Attack { + + @Override + public void fly() { + System.out.println("Plane fly..."); + } + + @Override + public void stop() { + System.out.println("Plane stop..."); + } + + @Override + public void attack() { + System.out.println("Plane attack..."); + } +} diff --git a/javase/src/main/java/com/hongyi/day22/CompareA.java b/javase/src/main/java/com/hongyi/day22/CompareA.java new file mode 100644 index 0000000000000000000000000000000000000000..bcaaa6e530ae4e3fa57eba26d5759ad6ac33f053 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day22/CompareA.java @@ -0,0 +1,21 @@ +package com.hongyi.day22; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 16:13 + * @Version 1.0 + */ +public interface CompareA { + static void method1() { + System.out.println("CompareA:static method"); + } + + // 默认方法 + default void method2() { + System.out.println("CompareA:default method"); + } + + default void method3() { + System.out.println("CompareA:default method"); + } +} diff --git a/javase/src/main/java/com/hongyi/day22/NetworkTest.java b/javase/src/main/java/com/hongyi/day22/NetworkTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1bf4d0155fa81e602773ad1a3d4fc8f344ae7b22 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day22/NetworkTest.java @@ -0,0 +1,48 @@ +package com.hongyi.day22; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 16:04 + * @Version 1.0 + */ +public class NetworkTest { + public static void main(String[] args) { + Server server = new Server(); + ProxyServer proxyServer = new ProxyServer(server); + proxyServer.browse(); + } +} + +interface Network { + public void browse(); +} + +// 被代理类 +class Server implements Network { + + @Override + public void browse() { + System.out.println("真实的服务器访问网络"); + } +} + +// 代理类 +class ProxyServer implements Network { + + private Network network; + + public ProxyServer(Network network) { + this.network = network; + } + + public void check() { + System.out.println("联网前的检查工作"); + } + + @Override + public void browse() { + check(); + network.browse(); + } +} + diff --git a/javase/src/main/java/com/hongyi/day22/SubClassTest.java b/javase/src/main/java/com/hongyi/day22/SubClassTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f85069da51be758dd5c82c6cb18510bff1e32207 --- /dev/null +++ b/javase/src/main/java/com/hongyi/day22/SubClassTest.java @@ -0,0 +1,25 @@ +package com.hongyi.day22; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 16:15 + * @Version 1.0 + */ +public class SubClassTest { + public static void main(String[] args) { + Subclass subclass = new Subclass(); + // 调用默认方法 + subclass.method2(); + subclass.method3(); + + // 调用静态方法 + CompareA.method1(); + } +} + +class Subclass implements CompareA { + // 重写接口的默认方法 + public void method3() { + System.out.println("Subclass:method3"); + } +} diff --git a/javase/src/main/java/com/hongyi/day22/USBTest.java b/javase/src/main/java/com/hongyi/day22/USBTest.java new file mode 100644 index 0000000000000000000000000000000000000000..bd8399c9dc989fa5ae96a4021facf82ea2ec2b8f --- /dev/null +++ b/javase/src/main/java/com/hongyi/day22/USBTest.java @@ -0,0 +1,86 @@ +package com.hongyi.day22; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 15:50 + * @Version 1.0 + */ +public class USBTest { + public static void main(String[] args) { + Computer computer = new Computer(); + // 1.创建了接口的非匿名实现类的非匿名对象 + Flash flash = new Flash(); + computer.transferData(flash); // 接口的多态性 USB usb = new Flash(); + + // 2.接口的非匿名实现类的匿名对象 + computer.transferData(new Flash()); + + // 3.接口的匿名实现类的非匿名对象 + USB phone = new USB() { + @Override + public void start() { + System.out.println("手机开始工作"); + } + + @Override + public void stop() { + System.out.println("手机结束工作"); + } + }; + + computer.transferData(phone); + + // 4.接口的匿名实现类的匿名对象 + computer.transferData(new USB() { + + @Override + public void start() { + System.out.println("mp3开始工作"); + } + + @Override + public void stop() { + System.out.println("mp3结束工作"); + } + }); + } +} + +class Computer { + public void transferData(USB usb) { + usb.start(); + System.out.println("具体的传输数据的细节"); + usb.stop(); + } +} + +interface USB { + void start(); + + void stop(); +} + +class Flash implements USB { + @Override + public void start() { + System.out.println("U盘开始工作"); + } + + @Override + public void stop() { + System.out.println("U盘结束工作"); + } +} + +class Printer implements USB { + + @Override + public void start() { + System.out.println("打印机开始工作"); + } + + @Override + public void stop() { + System.out.println("打印机结束工作"); + } +} \ No newline at end of file diff --git a/javase/src/main/java/com/hongyi/day23/InnerClassTest.java b/javase/src/main/java/com/hongyi/day23/InnerClassTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ae0169a801c7acb32e159173017310a308efff6e --- /dev/null +++ b/javase/src/main/java/com/hongyi/day23/InnerClassTest.java @@ -0,0 +1,63 @@ +package com.hongyi.day23; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 16:39 + * @Version 1.0 + */ +public class InnerClassTest { + public static void main(String[] args) { + // 创建Dog的实例 + Person.Dog dog = new Person.Dog(); + dog.run(); + + // 创建Bird的实例 + Person person = new Person(); + Person.Bird bird = person.new Bird(); + bird.sing(); + bird.display("Hongyi"); + } +} + +class Person { + + String name = "Mark"; + int age; + + public void eat() { + System.out.println("Person eat"); + } + + // 静态成员内部类,只能调用外部静态的结构 + static class Dog { + String name; + public Dog() { + + } + public void run() { + System.out.println("Dog run"); + } + } + + // 非静态成员内部类 + class Bird { + String name = "bird"; + public Bird() { + + } + public void sing() { + System.out.println("Bird sing"); + Person.this.eat(); // 调用外部类的属性(完整格式) + // eat(); + } + + public void display(String name) { + // 方法的形参 + System.out.println(name); + // 调用自己的属性 + System.out.println(this.name); + // 外部类的属性 + System.out.println(Person.this.name); + } + } +} diff --git a/javase/src/main/java/com/hongyi/day23/InnerClassTest1.java b/javase/src/main/java/com/hongyi/day23/InnerClassTest1.java new file mode 100644 index 0000000000000000000000000000000000000000..65528ba548702fe78f8ba5df566e6831b7c59acf --- /dev/null +++ b/javase/src/main/java/com/hongyi/day23/InnerClassTest1.java @@ -0,0 +1,12 @@ +package com.hongyi.day23; + +/** + * @Author Kisugi Takumi + * @Date 2022/5/15 17:10 + * @Version 1.0 + */ +public class InnerClassTest1 { + public static void main(String[] args) { + + } +} diff --git a/javase/src/test/java/com/hongyi/day6/FileTest.java b/javase/src/test/java/com/hongyi/day16/FileTest.java similarity index 99% rename from javase/src/test/java/com/hongyi/day6/FileTest.java rename to javase/src/test/java/com/hongyi/day16/FileTest.java index f855d902afd539154e639a98045e23dd6c8e76f6..3cae78e48190731a90dfd6a8c055a4078ed67cc0 100644 --- a/javase/src/test/java/com/hongyi/day6/FileTest.java +++ b/javase/src/test/java/com/hongyi/day16/FileTest.java @@ -1,4 +1,4 @@ -package com.hongyi.day6; +package com.hongyi.day16; import org.junit.Test; diff --git a/javase/src/test/java/com/hongyi/day17/WrapperTest.java b/javase/src/test/java/com/hongyi/day17/WrapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e213ab857160bf1063755c4e092e5fd81f71bda5 --- /dev/null +++ b/javase/src/test/java/com/hongyi/day17/WrapperTest.java @@ -0,0 +1,15 @@ +package com.hongyi.day17; + +import org.junit.Test; + +/** + * @Author Kisugi Takumi + * @Date 2022/4/29 20:34 + * @Version 1.0 + */ +public class WrapperTest { + @Test + public void test0() { + + } +}