From 3c98ffaa01315f96b316fc86cb65f31b8091621b Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sat, 16 Apr 2022 17:23:24 +0800 Subject: [PATCH 01/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day10/PersonTest.java | 39 +++++++++++++++++++ .../main/java/com/hongyi/day10/UserTest.java | 33 ++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day10/PersonTest.java create mode 100644 javase/src/main/java/com/hongyi/day10/UserTest.java 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 0000000..6c5f977 --- /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 0000000..bd93e80 --- /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); + } +} -- Gitee From 4f780018bf87bbf068ec3441ff1d4ce8fb3fed81 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Fri, 22 Apr 2022 15:51:50 +0800 Subject: [PATCH 02/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E7=B1=BB?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95=20=E5=80=BC=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day11/InstanceTest.java | 47 +++++++++++++++++++ .../java/com/hongyi/day11/OverloadTest.java | 31 ++++++++++++ .../com/hongyi/day11/ValueTransferTest.java | 31 ++++++++++++ .../com/hongyi/day11/ValueTransferTest1.java | 23 +++++++++ .../com/hongyi/day11/ValueTransferTest2.java | 29 ++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day11/InstanceTest.java create mode 100644 javase/src/main/java/com/hongyi/day11/OverloadTest.java create mode 100644 javase/src/main/java/com/hongyi/day11/ValueTransferTest.java create mode 100644 javase/src/main/java/com/hongyi/day11/ValueTransferTest1.java create mode 100644 javase/src/main/java/com/hongyi/day11/ValueTransferTest2.java 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 0000000..e24981f --- /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/OverloadTest.java b/javase/src/main/java/com/hongyi/day11/OverloadTest.java new file mode 100644 index 0000000..a24f135 --- /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 0000000..bbf586d --- /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 + + // 引用数据类型 + Order o1 = new Order(); + o1.id = 1001; + + Order 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 Order { + 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 0000000..4e73cf8 --- /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 0000000..2fc393a --- /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; +} -- Gitee From 20a795575baf236c2b05d896f3e3f643813d40f7 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Fri, 22 Apr 2022 16:29:51 +0800 Subject: [PATCH 03/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E5=B0=81?= =?UTF-8?q?=E8=A3=85=E5=92=8C=E6=9D=83=E9=99=90=E4=BF=AE=E9=A5=B0=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day10/OrderTest.java | 23 ++++++++ .../java/com/hongyi/day11/AnimalTest.java | 53 +++++++++++++++++++ .../src/main/java/com/hongyi/day11/Order.java | 27 ++++++++++ .../main/java/com/hongyi/day11/OrderTest.java | 21 ++++++++ .../com/hongyi/day11/ValueTransferTest.java | 6 +-- 5 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 javase/src/main/java/com/hongyi/day10/OrderTest.java create mode 100644 javase/src/main/java/com/hongyi/day11/AnimalTest.java create mode 100644 javase/src/main/java/com/hongyi/day11/Order.java create mode 100644 javase/src/main/java/com/hongyi/day11/OrderTest.java 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 0000000..82b057d --- /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/day11/AnimalTest.java b/javase/src/main/java/com/hongyi/day11/AnimalTest.java new file mode 100644 index 0000000..f993650 --- /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/Order.java b/javase/src/main/java/com/hongyi/day11/Order.java new file mode 100644 index 0000000..0a5a43d --- /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 0000000..3a7a0dd --- /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/ValueTransferTest.java b/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java index bbf586d..21371bf 100644 --- a/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java +++ b/javase/src/main/java/com/hongyi/day11/ValueTransferTest.java @@ -15,10 +15,10 @@ public class ValueTransferTest { System.out.println("m = " + m + ", n = " + n); // 10, 20 // 引用数据类型 - Order o1 = new Order(); + Order1 o1 = new Order1(); o1.id = 1001; - Order o2 = o1; // 赋值以后,栈中的o1和o2的地址都指向堆中同一个对象 + Order1 o2 = o1; // 赋值以后,栈中的o1和o2的地址都指向堆中同一个对象 System.out.println("o1.id: " + o1.id + ", o2.id: " + o2.id); // 1001 1001 o2.id = 1002; @@ -26,6 +26,6 @@ public class ValueTransferTest { } } -class Order { +class Order1 { int id; } -- Gitee From b018e119199be22f3395230d5ceddd46e8c0499a Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 24 Apr 2022 15:44:41 +0800 Subject: [PATCH 04/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=99=A8=E5=92=8Cthis=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day12/PersonTest.java | 49 ++++++++++++++ .../java/com/hongyi/day12/PersonTest1.java | 67 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day12/PersonTest.java create mode 100644 javase/src/main/java/com/hongyi/day12/PersonTest1.java 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 0000000..264b1f2 --- /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 0000000..6e7adbb --- /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..."); + } +} -- Gitee From b511b3b86b005c452de4cc8dc2f3b3004c461da1 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 24 Apr 2022 17:19:11 +0800 Subject: [PATCH 05/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E7=BB=A7?= =?UTF-8?q?=E6=89=BF=20=E6=96=B9=E6=B3=95=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day12/ExtendsTest.java | 22 ++++++++++ .../main/java/com/hongyi/day12/People.java | 26 +++++++++++ .../main/java/com/hongyi/day12/Student.java | 21 +++++++++ .../main/java/com/hongyi/day13/Person.java | 44 +++++++++++++++++++ .../java/com/hongyi/day13/PersonTest.java | 15 +++++++ .../main/java/com/hongyi/day13/Student.java | 28 ++++++++++++ 6 files changed, 156 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day12/ExtendsTest.java create mode 100644 javase/src/main/java/com/hongyi/day12/People.java create mode 100644 javase/src/main/java/com/hongyi/day12/Student.java create mode 100644 javase/src/main/java/com/hongyi/day13/Person.java create mode 100644 javase/src/main/java/com/hongyi/day13/PersonTest.java create mode 100644 javase/src/main/java/com/hongyi/day13/Student.java 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 0000000..6289d86 --- /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 0000000..cab1e1c --- /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/Student.java b/javase/src/main/java/com/hongyi/day12/Student.java new file mode 100644 index 0000000..5cd4896 --- /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 0000000..535439d --- /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 0000000..57005ad --- /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 0000000..f8ff460 --- /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..."); + } +} -- Gitee From f431cc111c4c5867c61baf7955a9d2e1b54b151a Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Thu, 28 Apr 2022 20:28:53 +0800 Subject: [PATCH 06/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20super=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day14/Person.java | 39 ++++++++++++++++ .../main/java/com/hongyi/day14/Student.java | 44 +++++++++++++++++++ .../main/java/com/hongyi/day14/SuperTest.java | 16 +++++++ 3 files changed, 99 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day14/Person.java create mode 100644 javase/src/main/java/com/hongyi/day14/Student.java create mode 100644 javase/src/main/java/com/hongyi/day14/SuperTest.java 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 0000000..00356a3 --- /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 0000000..940d662 --- /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 0000000..8c78f3f --- /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... + } +} -- Gitee From e6c03b57cc7d87e6a6abb0b2ba276a7296563170 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Thu, 28 Apr 2022 21:19:13 +0800 Subject: [PATCH 07/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E5=A4=9A?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day15/AnimalTest.java | 53 +++++++++++++++++++ .../src/main/java/com/hongyi/day15/Man.java | 24 +++++++++ .../main/java/com/hongyi/day15/Person.java | 19 +++++++ .../java/com/hongyi/day15/PersonTest.java | 27 ++++++++++ .../src/main/java/com/hongyi/day15/Woman.java | 24 +++++++++ 5 files changed, 147 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day15/AnimalTest.java create mode 100644 javase/src/main/java/com/hongyi/day15/Man.java create mode 100644 javase/src/main/java/com/hongyi/day15/Person.java create mode 100644 javase/src/main/java/com/hongyi/day15/PersonTest.java create mode 100644 javase/src/main/java/com/hongyi/day15/Woman.java 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 0000000..a1002a5 --- /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 0000000..b877ba1 --- /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 0000000..7c95b50 --- /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 0000000..c101c31 --- /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 0000000..3f1a450 --- /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..."); + } +} -- Gitee From 583c534e8ca801f9351b787788f6787ec41a6677 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Fri, 29 Apr 2022 19:35:53 +0800 Subject: [PATCH 08/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20instanceof?= =?UTF-8?q?=E5=92=8C=E5=90=91=E4=B8=8B=E8=BD=AC=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/hongyi/day16/Man.java | 24 +++++++++++++++++ .../main/java/com/hongyi/day16/Person.java | 19 +++++++++++++ .../java/com/hongyi/day16/PersonTest.java | 27 +++++++++++++++++++ .../src/main/java/com/hongyi/day16/Woman.java | 24 +++++++++++++++++ .../com/hongyi/{day6 => day16}/FileTest.java | 2 +- 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 javase/src/main/java/com/hongyi/day16/Man.java create mode 100644 javase/src/main/java/com/hongyi/day16/Person.java create mode 100644 javase/src/main/java/com/hongyi/day16/PersonTest.java create mode 100644 javase/src/main/java/com/hongyi/day16/Woman.java rename javase/src/test/java/com/hongyi/{day6 => day16}/FileTest.java (99%) 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 0000000..d2f16f2 --- /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 0000000..e1cf474 --- /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 0000000..d020307 --- /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 0000000..3c88eb1 --- /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/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 f855d90..3cae78e 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; -- Gitee From a7cc1935224718a0473ce47587d6d67173675fd4 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Fri, 29 Apr 2022 20:20:54 +0800 Subject: [PATCH 09/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20Object=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day17/Customer.java | 55 +++++++++++++++++++ .../java/com/hongyi/day17/EqualsTest.java | 38 +++++++++++++ .../java/com/hongyi/day17/ToStringTest.java | 16 ++++++ 3 files changed, 109 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day17/Customer.java create mode 100644 javase/src/main/java/com/hongyi/day17/EqualsTest.java create mode 100644 javase/src/main/java/com/hongyi/day17/ToStringTest.java 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 0000000..6c1db5c --- /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 0000000..ea73460 --- /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 0000000..c54e1d1 --- /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); + } +} -- Gitee From 1e36e5774ec9790c58778ad1fa5e772e9cc4fca3 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Fri, 29 Apr 2022 20:39:47 +0800 Subject: [PATCH 10/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E5=8C=85?= =?UTF-8?q?=E8=A3=85=E7=B1=BBwrapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/com/hongyi/day17/WrapperTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 javase/src/test/java/com/hongyi/day17/WrapperTest.java 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 0000000..e213ab8 --- /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() { + + } +} -- Gitee From 3f4da2acfdcffae4e679e7dcd1ce4618bce7b0fd Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sat, 30 Apr 2022 11:11:06 +0800 Subject: [PATCH 11/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20static=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97=20=E9=9D=99=E6=80=81=E5=B1=9E=E6=80=A7=20?= =?UTF-8?q?=E9=9D=99=E6=80=81=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day18/StaticTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day18/StaticTest.java 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 0000000..2732ee6 --- /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..."); + } +} + -- Gitee From ea3cb371894b85980d2a61b1b71ea7327414203b Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sat, 30 Apr 2022 22:46:47 +0800 Subject: [PATCH 12/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E5=8D=95?= =?UTF-8?q?=E4=BE=8B=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day18/SingletonTest1.java | 31 ++++++++++++++++++ .../java/com/hongyi/day18/SingletonTest2.java | 32 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day18/SingletonTest1.java create mode 100644 javase/src/main/java/com/hongyi/day18/SingletonTest2.java 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 0000000..7978522 --- /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 0000000..1fd3ac9 --- /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; + } +} -- Gitee From 7d6f4baae2bef89d9f966a88e715db4a7acbfd36 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sat, 30 Apr 2022 23:08:18 +0800 Subject: [PATCH 13/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E7=90=86?= =?UTF-8?q?=E8=A7=A3main=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day18/MainDemo.java | 14 +++++++++++++ .../main/java/com/hongyi/day18/MainTest.java | 20 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day18/MainDemo.java create mode 100644 javase/src/main/java/com/hongyi/day18/MainTest.java 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 0000000..244e024 --- /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 0000000..5abb35e --- /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..."); + } +} -- Gitee From e0c16b289547724576ad44c0d45745144765b1d1 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 1 May 2022 09:37:46 +0800 Subject: [PATCH 14/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day19/BlockTest.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day19/BlockTest.java 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 0000000..5ded9d1 --- /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..."); + } +} -- Gitee From 8b552bcc4b9254f7ef2b980f26313ae70197c36b Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 1 May 2022 10:00:28 +0800 Subject: [PATCH 15/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20final=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day19/FinalTest.java | 25 ++++++++++++++++ .../java/com/hongyi/day19/FinalTest1.java | 29 +++++++++++++++++++ .../java/com/hongyi/day19/FinalTest2.java | 24 +++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day19/FinalTest.java create mode 100644 javase/src/main/java/com/hongyi/day19/FinalTest1.java create mode 100644 javase/src/main/java/com/hongyi/day19/FinalTest2.java 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 0000000..0226231 --- /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 0000000..f43741d --- /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 0000000..a60a3fa --- /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); + } +} -- Gitee From d1c6319ddc52d5c3201105a31a72d39103655085 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 1 May 2022 10:44:43 +0800 Subject: [PATCH 16/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E6=8A=BD?= =?UTF-8?q?=E8=B1=A1=E7=B1=BB=E5=92=8C=E6=8A=BD=E8=B1=A1=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day20/AbstractTest.java | 27 +++++++++++ .../main/java/com/hongyi/day20/HumanTest.java | 37 +++++++++++++++ .../java/com/hongyi/day20/TemplateTest.java | 46 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day20/AbstractTest.java create mode 100644 javase/src/main/java/com/hongyi/day20/HumanTest.java create mode 100644 javase/src/main/java/com/hongyi/day20/TemplateTest.java 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 0000000..d595a4d --- /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 0000000..784a0de --- /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 0000000..b0df027 --- /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); + } + } + } +} -- Gitee From 0c8ec6ae182b5facdffb64962866a1bc6b0b2401 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 1 May 2022 22:17:03 +0800 Subject: [PATCH 17/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=A6=82=E5=BF=B5=E5=92=8C=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day21/InterfaceTest.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day21/InterfaceTest.java 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 0000000..445be56 --- /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..."); + } +} -- Gitee From 066f77a81831b9fb018e7e3f2d5cbb5a21d0e8d3 Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 15 May 2022 16:25:17 +0800 Subject: [PATCH 18/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=B0=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hongyi/day22/CompareA.java | 21 +++++ .../java/com/hongyi/day22/NetworkTest.java | 48 +++++++++++ .../java/com/hongyi/day22/SubClassTest.java | 25 ++++++ .../main/java/com/hongyi/day22/USBTest.java | 86 +++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day22/CompareA.java create mode 100644 javase/src/main/java/com/hongyi/day22/NetworkTest.java create mode 100644 javase/src/main/java/com/hongyi/day22/SubClassTest.java create mode 100644 javase/src/main/java/com/hongyi/day22/USBTest.java 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 0000000..bcaaa6e --- /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 0000000..1bf4d01 --- /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 0000000..f85069d --- /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 0000000..bd8399c --- /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 -- Gitee From a7a9eda97dde5c921a968c033d9dc7ea8554d80a Mon Sep 17 00:00:00 2001 From: zenghongyi <277382367@qq.com> Date: Sun, 15 May 2022 17:14:52 +0800 Subject: [PATCH 19/19] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=20=E5=86=85?= =?UTF-8?q?=E9=83=A8=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hongyi/day23/InnerClassTest.java | 63 +++++++++++++++++++ .../com/hongyi/day23/InnerClassTest1.java | 12 ++++ 2 files changed, 75 insertions(+) create mode 100644 javase/src/main/java/com/hongyi/day23/InnerClassTest.java create mode 100644 javase/src/main/java/com/hongyi/day23/InnerClassTest1.java 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 0000000..ae0169a --- /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 0000000..65528ba --- /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) { + + } +} -- Gitee