复习笔记
[第四季]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这样的包装类