用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

柯侧耳倾听者    -  云代码空间

—— 翱翔在Java世界的海洋之上

Java泛型

2017-12-22|1096阅||

摘要:Java泛型(2学时) 一、实验目的与要求 1. 熟练掌握泛型 2. 深入泛型 3. 类型通配符 4. 泛型方法  5. 擦除和转换   二、实验原理 增加泛型支持的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中

Java泛型2学时)

一、实验目的与要求

1. 熟练掌握泛型

2. 深入泛型

3. 类型通配符

4. 泛型方法

 5. 擦除和转换

 

二、实验原理

增加泛型支持的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中元素的类型,如果试图向集合中添加不满足类型的对象,编译器会提示错误,增加泛型后的集合,可以使代码更加简洁,程序更健壮,除此之外,java泛型还增强了枚举类,反射等方面的功能。

三、预习与准备

1. 熟练掌握泛型

2. 深入泛型

3. 类型通配符

4. 泛型方法

 5. 擦除和转换

、实验内容

1. 熟练掌握泛型

2. 深入泛型

3.类型通配符

4. 泛型方法

 5. 擦除和转换

 

 

五、实验过程

1. 熟练掌握泛型

package ke04;

 

 

import java.util.*;

public class DiamondTest

{

public static void main(String[] args)

{

List<String> books = new ArrayList<>();

books.add("疯狂Java讲义");

books.add("疯狂Android讲义");

System.out.println(books);

List<String> schools = new ArrayList<>();

schools.add("斜月三星洞");

schools.add("西天取经路");

System.out.println(schools);

}

}

 

2. 深入泛型

package ke04;

public class Apple<T> {

private T info;

public Apple(){}

public Apple(T info){

this.info=info;

}

public void setInfo(T info){

this.info = info;

}

public T getInfo(){

return this.info;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

         Apple<String> a1 = new Apple<>("苹果");

         System.out.println(a1.getInfo());

         Apple<Double> a2 = new Apple<>(5.67);

         System.out.println(a2.getInfo());

}

}

 

Package ke04;

public class A1 extends Apple<String>

{

public String getInfo()

{

return "子类" + super.getInfo();

}

public Object getInfo()

{

return "子类";

}

}

 

3. 类型通配符

package ke04;

public class Apple<T extends Number>

{

T col;

public static void main(String[] args)

{

Apple<Integer> ai = new Apple<>();

Apple<Double> ad = new Apple<>();

Apple<String> as = new Apple<>();

}

}

 

4. 泛型方法

package ke04;

class MyClass<E>

{

public <T> MyClass(T t)

{

System.out.println("t参数的值为:" + t);

}

}

public class GenericDiamondTest

{

public static void main(String[] args)

{

MyClass<String> mc1 = new MyClass<>(5);

MyClass<String> mc2 = new <Integer> MyClass<String>(5);

}

 

package ke04;

import java.util.*;

public class GenericMethodTest

{

static <T> void fromArrayToCollection(T[] a, Collection<T> c)

{

for (T o : a)

{

c.add(o);

}

}

public static void main(String[] args)

{

Object[] oa = new Object[100];

Collection<Object> co = new ArrayList<>();

fromArrayToCollection(oa, co);

String[] sa = new String[100];

Collection<String> cs = new ArrayList<>();

fromArrayToCollection(sa, cs);

fromArrayToCollection(sa, co);

Integer[] ia = new Integer[100];

Float[] fa = new Float[100];

Number[] na = new Number[100];

Collection<Number> cn = new ArrayList<>();

fromArrayToCollection(ia, cn);

fromArrayToCollection(fa, cn);

fromArrayToCollection(na, cn);

fromArrayToCollection(na, co);

 

}

}

 

5. 擦除和转换

package ke04;

class Apple<T extends Number>

{

T size;

public Apple()

{

}

public Apple(T size)

{

this.size = size;

}

public void setSize(T size)

{

this.size = size;

}

public T getSize()

{

return this.size;

}

}

public class ErasureTest

{

public static void main(String[] args)

{

Apple<Integer> a = new Apple<>(6);    

Integer as = a.getSize();

Apple b = a;      

Number size1 = b.getSize();

Integer size2 = (Integer) b.getSize();  

}

}

 

六、实验效果

1.熟练掌握泛型

 

 

2.深入泛型

 

 

3.类型通配符

 

 

4.泛型方法

 

 

 

 

 

5. 擦除和转换

 

 

 

七、实验总结与体会

     通过这次课的学习,初步掌握了java泛型的基本用法和一些常用的方法,也发现了自身的一些问题,比如不注重细节,导致程序无法运行,同时也发现要与同学进行交流与合作,及时发现问题并解决问题,也使自己了解到自身的不足,所以在今后的学习中,要更加认真学习,并多与同学和老师交流,这样能够更好的学好Java,同时我们要多敲代码,只有这样,我们才能熟悉代码,做到熟能生巧,才能更好的学好java,敲好java代码。

 

顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 柯侧耳倾听者
    • 等级: 初级设计师
    • 积分: 2220
    • 代码: 64 个
    • 文章: 64 篇
    • 随想: 5 条
    • 访问: 44 次
    • 关注

    标签

    最新提问

      站长推荐