diff --git a/s-day02/src/com/inmind/generic04/Demo08.java b/s-day02/src/com/inmind/generic_class05/Demo08.java similarity index 96% rename from s-day02/src/com/inmind/generic04/Demo08.java rename to s-day02/src/com/inmind/generic_class05/Demo08.java index 7045233..780cd42 100644 --- a/s-day02/src/com/inmind/generic04/Demo08.java +++ b/s-day02/src/com/inmind/generic_class05/Demo08.java @@ -1,4 +1,4 @@ -package com.inmind.generic04; +package com.inmind.generic_class05; public class Demo08 { public static void main(String[] args) { diff --git a/s-day02/src/com/inmind/generic04/Factory.java b/s-day02/src/com/inmind/generic_class05/Factory.java similarity index 96% rename from s-day02/src/com/inmind/generic04/Factory.java rename to s-day02/src/com/inmind/generic_class05/Factory.java index 03fa36a..1cbabcf 100644 --- a/s-day02/src/com/inmind/generic04/Factory.java +++ b/s-day02/src/com/inmind/generic_class05/Factory.java @@ -1,4 +1,4 @@ -package com.inmind.generic04; +package com.inmind.generic_class05; /* 能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态, 并省略掉强转操作,也避免类型转换异常??? @@ -11,18 +11,18 @@ package com.inmind.generic04; */ public class Factory { - //多态的写法 - /*public Object fixObj(Object o) { - System.out.println("对象已修好"); - return o; - }*/ - //使用T类型 public T fix(T t) { System.out.println("对象T已修好"); return t; } + //多态的写法 + /*public Object fixObj(Object o) { + System.out.println("对象已修好"); + return o; + }*/ + /*//维修手机方法 public Phone fixPhone(Phone phone) { System.out.println("手机修好了"); diff --git a/s-day02/src/com/inmind/generic04/Pad.java b/s-day02/src/com/inmind/generic_class05/Pad.java similarity index 72% rename from s-day02/src/com/inmind/generic04/Pad.java rename to s-day02/src/com/inmind/generic_class05/Pad.java index bd1aa60..13b6c3b 100644 --- a/s-day02/src/com/inmind/generic04/Pad.java +++ b/s-day02/src/com/inmind/generic_class05/Pad.java @@ -1,4 +1,4 @@ -package com.inmind.generic04; +package com.inmind.generic_class05; public class Pad { public void playApp(){ diff --git a/s-day02/src/com/inmind/generic04/Phone.java b/s-day02/src/com/inmind/generic_class05/Phone.java similarity index 72% rename from s-day02/src/com/inmind/generic04/Phone.java rename to s-day02/src/com/inmind/generic_class05/Phone.java index cd0fe94..1d61e1c 100644 --- a/s-day02/src/com/inmind/generic04/Phone.java +++ b/s-day02/src/com/inmind/generic_class05/Phone.java @@ -1,4 +1,4 @@ -package com.inmind.generic04; +package com.inmind.generic_class05; public class Phone { diff --git a/s-day02/src/com/inmind/generic_method06/Demo09.java b/s-day02/src/com/inmind/generic_method06/Demo09.java new file mode 100644 index 0000000..e01df5f --- /dev/null +++ b/s-day02/src/com/inmind/generic_method06/Demo09.java @@ -0,0 +1,21 @@ +package com.inmind.generic_method06; + +public class Demo09 { + public static void main(String[] args) { + //手机工厂 + Factory phoneFactory = new Factory<>(); + Phone phone = new Phone(); + Phone fixedPhone = phoneFactory.fix(phone); + /* + 得到 二维码小卡片,发现这个师傅修得很好,这个师傅说其实我很多都能修,不仅是手机 + */ + Pad pad = new Pad(); + Pad fixedPad = phoneFactory.fixAll(pad); + Phone fixedPhone1 = phoneFactory.fixAll(phone); + fixedPad.playApp(); + fixedPhone1.call(); + + + + } +} diff --git a/s-day02/src/com/inmind/generic_method06/Factory.java b/s-day02/src/com/inmind/generic_method06/Factory.java new file mode 100644 index 0000000..ab567bc --- /dev/null +++ b/s-day02/src/com/inmind/generic_method06/Factory.java @@ -0,0 +1,27 @@ +package com.inmind.generic_method06; +public class Factory { + + //使用T类型(这只是一个使用了泛型类中的T类型的普通方法) + public T fix(T t) { + System.out.println("对象T已修好"); + return t; + } + + /* + 需求:我们希望在一个工厂类中接私活,定义出一个功能,接收任意类型的数据,动态返回该类型的数据,可以实现吗?? + 可以,只能通过泛型方法 + + 泛型方法格式:表示在一个方法中定义一个未知的类型 + 方法修饰符 <任意大写字母>返回值类型 方法名(参数列表){ + 方法体; + } + + 泛型方法的泛型类型何时确定??? + 当方法被调用时才确定,一般泛型方法中字母尽量不要与泛型类的字母一致 + */ + public E fixAll(E e) { + System.out.println("来什么,我就修理什么!!!666"); + return e; + } + +} diff --git a/s-day02/src/com/inmind/generic_method06/Pad.java b/s-day02/src/com/inmind/generic_method06/Pad.java new file mode 100644 index 0000000..727ccf0 --- /dev/null +++ b/s-day02/src/com/inmind/generic_method06/Pad.java @@ -0,0 +1,7 @@ +package com.inmind.generic_method06; + +public class Pad { + public void playApp(){ + System.out.println("看抖音"); + } +} diff --git a/s-day02/src/com/inmind/generic_method06/Phone.java b/s-day02/src/com/inmind/generic_method06/Phone.java new file mode 100644 index 0000000..2b97264 --- /dev/null +++ b/s-day02/src/com/inmind/generic_method06/Phone.java @@ -0,0 +1,8 @@ +package com.inmind.generic_method06; + +public class Phone { + + public void call() { + System.out.println("打电话"); + } +}