进阶day02-泛型类的使用
This commit is contained in:
32
javaSE-day02/src/com/inmind/generic04/Factory.java
Normal file
32
javaSE-day02/src/com/inmind/generic04/Factory.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package com.inmind.generic04;
|
||||
/*
|
||||
能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态,并省略掉强转操作,也避免类型转换异常???
|
||||
可以,使用泛型类,在类名加上<任意大写字母>
|
||||
泛型类的格式:
|
||||
public class 类名<大写字母>
|
||||
|
||||
泛型类:就是在类中定义了一个未知的类型.
|
||||
|
||||
泛型类的A类型何时确定?
|
||||
创建对象时才确定
|
||||
|
||||
如果要定义多个未知类型,直接写在<A,B,C>即可
|
||||
|
||||
*/
|
||||
//我现在定义了一个A类型的工厂
|
||||
//public class Factory<A,B,C> {
|
||||
public class Factory<A> {
|
||||
|
||||
//修理指定类型的产品,修理什么,就返回什么
|
||||
public A fix(A a) {
|
||||
System.out.println("东西修好了");
|
||||
return a;
|
||||
}
|
||||
|
||||
//已经学习过多态,如果没有泛型,可以使用多态来动态接收不同的类型
|
||||
/*public Object fixO(Object o) {
|
||||
System.out.println("o-东西修好了");
|
||||
return o;
|
||||
}*/
|
||||
|
||||
}
|
||||
@@ -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<Phone> phoneFactory = new Factory<>();
|
||||
Phone fixedPhone = phoneFactory.fix(phone);
|
||||
fixedPhone.call();
|
||||
|
||||
Factory<Pad> padFactory = new Factory<>();
|
||||
Pad fixedPad = padFactory.fix(pad);
|
||||
fixedPad.play();
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@ import java.util.ArrayList;
|
||||
泛型的好处:
|
||||
1.使用泛型,可以省略强转操作
|
||||
2.将运行时期的异常提前到了编译时期,为了确保数据操作的安全性
|
||||
|
||||
注意:java中的泛型是伪泛型,它只有在编译时期有效,运行时期就没有泛型了!!!
|
||||
*/
|
||||
public class GenericDemo04 {
|
||||
public static void main(String[] args) {
|
||||
|
||||
7
javaSE-day02/src/com/inmind/generic04/Pad.java
Normal file
7
javaSE-day02/src/com/inmind/generic04/Pad.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package com.inmind.generic04;
|
||||
|
||||
public class Pad {
|
||||
public void play() {
|
||||
System.out.println("在平板上玩游戏");
|
||||
}
|
||||
}
|
||||
8
javaSE-day02/src/com/inmind/generic04/Phone.java
Normal file
8
javaSE-day02/src/com/inmind/generic04/Phone.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package com.inmind.generic04;
|
||||
|
||||
public class Phone {
|
||||
|
||||
public void call(){
|
||||
System.out.println("手机在打电话");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user