From 89464bb2d88c75ff163448d4f3010c8bbb73413a Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 31 Jan 2026 11:59:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day02-=E6=B3=9B=E5=9E=8B?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/generic04/Factory.java | 32 +++++++++++++++++++ .../inmind/generic04/GenericClassDemo05.java | 22 +++++++++++++ .../com/inmind/generic04/GenericDemo04.java | 2 ++ .../src/com/inmind/generic04/Pad.java | 7 ++++ .../src/com/inmind/generic04/Phone.java | 8 +++++ 5 files changed, 71 insertions(+) create mode 100644 javaSE-day02/src/com/inmind/generic04/Factory.java create mode 100644 javaSE-day02/src/com/inmind/generic04/GenericClassDemo05.java create mode 100644 javaSE-day02/src/com/inmind/generic04/Pad.java create mode 100644 javaSE-day02/src/com/inmind/generic04/Phone.java diff --git a/javaSE-day02/src/com/inmind/generic04/Factory.java b/javaSE-day02/src/com/inmind/generic04/Factory.java new file mode 100644 index 0000000..2dcaaeb --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic04/Factory.java @@ -0,0 +1,32 @@ +package com.inmind.generic04; +/* + 能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态,并省略掉强转操作,也避免类型转换异常??? + 可以,使用泛型类,在类名加上<任意大写字母> + 泛型类的格式: + public class 类名<大写字母> + + 泛型类:就是在类中定义了一个未知的类型. + + 泛型类的A类型何时确定? + 创建对象时才确定 + + 如果要定义多个未知类型,直接写在即可 + + */ +//我现在定义了一个A类型的工厂 +//public class Factory { +public class Factory { + + //修理指定类型的产品,修理什么,就返回什么 + public A fix(A a) { + System.out.println("东西修好了"); + return a; + } + + //已经学习过多态,如果没有泛型,可以使用多态来动态接收不同的类型 + /*public Object fixO(Object o) { + System.out.println("o-东西修好了"); + return o; + }*/ + +} diff --git a/javaSE-day02/src/com/inmind/generic04/GenericClassDemo05.java b/javaSE-day02/src/com/inmind/generic04/GenericClassDemo05.java new file mode 100644 index 0000000..2794c36 --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic04/GenericClassDemo05.java @@ -0,0 +1,22 @@ +package com.inmind.generic04; + +public class GenericClassDemo05 { + public static void main(String[] args) { + //买了一个手机 + Phone phone = new Phone(); + phone.call(); + + //买了一个平板 + Pad pad = new Pad(); + pad.play(); + System.out.println("------------"); + //手机和平板坏了,找专门的厂家去修理 + Factory phoneFactory = new Factory<>(); + Phone fixedPhone = phoneFactory.fix(phone); + fixedPhone.call(); + + Factory padFactory = new Factory<>(); + Pad fixedPad = padFactory.fix(pad); + fixedPad.play(); + } +} diff --git a/javaSE-day02/src/com/inmind/generic04/GenericDemo04.java b/javaSE-day02/src/com/inmind/generic04/GenericDemo04.java index 8fa7a03..6577798 100644 --- a/javaSE-day02/src/com/inmind/generic04/GenericDemo04.java +++ b/javaSE-day02/src/com/inmind/generic04/GenericDemo04.java @@ -18,6 +18,8 @@ import java.util.ArrayList; 泛型的好处: 1.使用泛型,可以省略强转操作 2.将运行时期的异常提前到了编译时期,为了确保数据操作的安全性 + + 注意:java中的泛型是伪泛型,它只有在编译时期有效,运行时期就没有泛型了!!! */ public class GenericDemo04 { public static void main(String[] args) { diff --git a/javaSE-day02/src/com/inmind/generic04/Pad.java b/javaSE-day02/src/com/inmind/generic04/Pad.java new file mode 100644 index 0000000..0ccbadf --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic04/Pad.java @@ -0,0 +1,7 @@ +package com.inmind.generic04; + +public class Pad { + public void play() { + System.out.println("在平板上玩游戏"); + } +} diff --git a/javaSE-day02/src/com/inmind/generic04/Phone.java b/javaSE-day02/src/com/inmind/generic04/Phone.java new file mode 100644 index 0000000..1c785a9 --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic04/Phone.java @@ -0,0 +1,8 @@ +package com.inmind.generic04; + +public class Phone { + + public void call(){ + System.out.println("手机在打电话"); + } +}