class Test01{
public static void main(String args[]) {
Class c = null;
try {
c = Class.forName("A");// 创建了A类的Class对象
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
}
// 利用A类的Class对象来创建A类的实例对象
Object obj = null;
try {
obj = c.newInstance();// obj指向的A类的对象
} catch (InstantiationException e) {
System.out.println("InstantiationException");
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException");
}
// obj.set(10); // 肯定不行的,Object咋会有这个方法呢?
// System.out.println(obj.get());
// 请这样,并且newInstance默认调用无参构造器,更多请google
A a = new A();
a.set(1);
System.out.println(a.get());
A aa;
try {
aa = A.class.newInstance();
aa.set(2);
System.out.println(aa.get());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
try {
Class> Clazz = Class.forName("A");
A aaa = (A) Clazz.newInstance();
aaa.set(2);
System.out.println(aaa.get());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
} catch (InstantiationException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
}
}
}
其实类就是一个对象么。object就是对象的意思。
object就是泛指所有的类,而我们常用的 A a = new A();这种写法就是具体化了。其实也可以写成Object ojb = new A();
newIntance()就是对象的实例化,返回的一个对象,如果知道具体对象的时很么的话,也可以直接用该对象来接受 A a = c.newInstance()
Object obj=Class.forName("A").newInstance();
这个obj就是A类的一个实例。