第四季1.Java中的泛型

来源:互联网 发布:域名注册哪家便宜 编辑:程序博客网 时间:2024/04/28 11:57

复习笔记
[第四季]1.Java中的泛型
1.没有使用泛型的时候,需要强制转换,还有警告
①new一个LinkedList()并存放到myList事例中.
②用add方法添加100到myList中.
③用get(i)方法获取第0号元素,并强制转换为int并存放到int x中.
④打印x看看结果.
2.确定类型,没有警告
①new一个LinkedList,并制定类型为Integer,存放在myList2中.
②同样的,用add方法添加100到myList2中.
③用get()方法取出刚才的元素,并存放到int x2中.
④打印看看结果.
3.范类
①做了一个范类,首先定义范类.T var.
②做个setter,设置this.var=var.
③做个getter,return var.
④做个print方法.
⑤回到main里new一个范类.设置范类参数为”张”.
⑥然后用.print方法打印看看结果.
4.Person
①创建一个class Person.
②里面设置name和age参数.
③设置构造函数Person,并在构造函数中设置两个参数.
④从谢toString方法,返回name和age里面的参数.
⑤回到main,new一个myTest().
⑥new一个Person,里面设置参数为”jack”,20.
⑦调用setter方法设置,范类为Person,并调用.print方法进行打印.

package javastudy;import java.util.LinkedList;import java.util.List;public class Test {    public static void main(String[] args)     {        //****************第1步****************        System.out.println("============没有使用泛型的时候,需要强制转换,还有警告=============");        List myList=new LinkedList();        myList.add(100);        int x=(int)myList.get(0);        System.out.println(x);        //****************第2步****************        System.out.println("======确定类型,没有警告===================");        List<Integer> myList2=new LinkedList<Integer>();        myList2.add(100);        int x2=myList2.get(0);        System.out.println(x);        //****************第3.1步****************        System.out.println("======范类===================");        MyTest<String> mt=new MyTest<String>();        mt.setVar("张");        mt.print();        //****************第4.1步****************        System.out.println("============MyTest<Person>=============");        MyTest<Person> mt2=new MyTest<Person>();        Person p=new Person("jack", 20);        mt2.setVar(p);        mt2.print();    }}//****************第3步****************class MyTest<T>{    T var;    //****************做一个Setter****************    void setVar(T var)    {        this.var=var;    }    T getVar()    {        return var;    }    void print()    {        System.out.println(var);    }}//****************第4步****************class Person{    String name;    int age;    Person(String name,int age)    {        this.name=name;        this.age=age;    }    //****************第4.1步重写toString方法****************    @Override    public String toString()     {        return "name="+name+",age="+age;    }}//小结//定义只能是应用类,不能是简单累//要传的话只能是传integer这样的包装类