泛型可以提高代码的重用性!!!!
/**
* @author 司**
* @功能:泛型的使用
*/
package com.fanxing;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//<>提现了泛型
ArrayList<Dog> arrayList=new ArrayList<Dog>();
Dog dog=new Dog("hello", 1);
arrayList.add(dog);
//使用了泛型,所以不用Dog temp=(Dog)arrayList.get(0)强制转换;
Dog temp=arrayList.get(0);
}
}
class Cat{
private String name;
private int age;
public Cat(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Dog{
private String name;
private int age;
public Dog(String name,int age){
this.age=age;
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/**
* @author 司**
* 功能:泛型在反射机制中的使用
*/
package com.fanxing;
import java.lang.reflect.Method;
public class Demo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Gen<String> gen=new Gen("HELLO");
gen.showTypeInfo();
}
}
//<>体现泛型 不知道这个类中o的类型,所以使用<T>泛型
class Gen<T>
{
private T o;
public Gen(T a){
o=a;
}
//得到T的类型名称和方法信息体现了反射机制。
public void showTypeInfo() {
System.out.println("类型是:"+o.getClass().getName());
//通过反射机制我们可以得到T类型的很多信息
//比如得到该类的方法
Method []methods=o.getClass().getDeclaredMethods();
//打印这些方法
for (int i = 0; i < methods.length; i++) {
System.out.println("该类有方法:"+methods[i].getName());
}
}
}
异常处理:
功能:实现程序的健壮
异常分类:编译异常(检查期异常)(java.lang.Exception)、运行期异常(java.lang.RuntimeException)、错误(java.lang.Error)
异常处理:try----catch---finally语句