Java学习笔记(二一)――Java 泛型(二)
icTest {
2 public static void main(String[] args){
3 Person boy=new Person();
4 boy.setX("帅哥TT");
5 boy.setY(20);
6 System.out.println(boy.getX());
7 System.out.println(boy.getY());
8 }
9
10 }
复制代码
3. 运行结果
1 帅哥TT
2 20
四、使用泛型的继承
我们定义一个泛型类Person,定义两个属性x,y,然后定义另一个泛型类Boy,定义属性z,Boy继承Person类,在测试类中,我们设置属性的值,并打印。
1. Person.java
复制代码
1 public class Person {
2 private T1 x;
3 private T2 y;
4 public T1 getX() {
5 return x;
6 }
7 public void setX(T1 x) {
8 this.x = x;
9 }
10 public T2 getY() {
11 return y;
12 }
13 public void setY(T2 y) {
14 this.y = y;
15 }
16 }
复制代码
2. Boy
复制代码
1 public class Boyextends Person {
2 private T3 z;
3 public T3 getZ() {
4 return z;
5 }
6 public void setZ(T3 z) {
7 this.z = z;
8 }
9 }
复制代码
3. GenericTest.java
复制代码
1 public class GenericTest {
2 public static void main(String[] args){
3 Boy boy=new Boy();
4 boy.setX("帅哥TT");
5 boy.setY(20);
6 boy.setZ(200000.22);
7
8 System.out.println(boy.getX());
9 System.out.println(boy.getY());
10 System.out.println(boy.getZ());
11 }
12 }
复制代码
4. 运行结果
1 帅哥TT
2 20
3 200000.22
五、使用泛型的接口
我们定义一个泛型接口Person,定义两个方法,然后定义另一个泛型类Boy,实现泛型接口Person,定义属性x,y,z,在测试类中,我们设置属性的值,并打印。
1. Person.java
1 public interface Person {
2 public T1 getX();
3 public T2 getY();
4 }
2. Boy
复制代码
1 public class Boyimplements Person {
2 private T1 x;
3 private T2 y;
4 private T3 z;
5 public T1 getX() {
6 return x;
7 }
8 public void setX(T1 x) {
9 this.x = x;
10 }
11 public T2 getY() {
12 return y;
13 }
14 public void setY(T2 y) {
15 this.y = y;
16 }
17 public T3 getZ() {
18 return z;
19 }
20 public void setZ(T3 z) {
21 this.z = z;
22 }
23
24 }
复制代码
3. GenericTest.java
复制代码
1 public class GenericTest {
2 public static void main(String[] args){
3 Boy boy=new Boy();
4 boy.setX("帅哥TT");
5 boy.setY(20);
6 boy.setZ(200000.22);
7 System.out.println(boy.getX());
8 System.out.println(boy.getY());
9 System.out.println(boy.getZ());
10 }
11 }
复制代码
4. 运行结果
1 帅哥TT
2 20
3 200000.22
六、使用泛型方法
说明一下,定义泛型方法时,必须在返回值前边加一个,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。
定义一个普通类Person,定义一个泛型方法,如下代码:
1. Person.java
复制代码
1 public class Person{
2 public staticT getMiddle(T[]a){
3 return a[a.length/2];
4 }
5 public static void main(String [] args){
6 String[]name={"帅哥TT","帅哥TT1","帅哥TT2"};
7 String middle=Person.getMiddle(name);
8 System.out.println(middle);
9
10 Integer[]num={20,22,25};
11 Integer middle1=Person.getMiddle(num);
12 System.out.println(middle1);
13
14 Double[]num1={20.0,22.2,25.5};
15 Double middle2=Person.getMiddle(num1);
16 System.out.println(middle2);
17 }
18 }
复制代码
2. 运行结果
1 帅哥TT1
2 22
3 2