可以通过类的类类型创建该类的对象实例,需要有无参数的构造方法
类名 对象 = c1.newInstance();
任何一个类都是Class的实例对象,这个实例对象有三种表达方式
第一种,
Class c1 = 类名.class;
第二种 该类的对象通过getClass()方法获得
Class c2 = 对象.getClass();
c1 c2表示了类的类类型,不管c1 c2都代表了父类的类类型,一个类只可能是Class类的一个实例对象
第三种
Class c3 = null;
c3 = Class.forName(类的全路径);
这里注意"需要有无参数的构造方法".
Class xx xx就是类类型(class type)
任何一个类都有一个隐含的静态成员变量-->.class(见视频)
Class类的实例方法是私有的. 注意这里是 大写C.
类是对象, 类是java.lang.Class类的实例对象.
Java中两个东西不属于"类"
基础类型(byte/char/short/int/float/double/boolean)
静态类型
类是对象, 类是java.lang.Class类的实例对象.
万事万物皆对象。
一个类只是Class的一个实例对象,且一个类只有一个Class的实例对象
类也是对象,万事万物皆是对象,类是Class的对象,
使用反射创建实例对象,newInstance 需要有无参的构造方法
类是对象,类是java.lang.Class类的实例对象
There is a class named Class
package lmr; public class ClassDemo1{ public static void main(String[] args){ Foo foo1 = new Foo(); Class c1 = Foo.class; Class c2 = foo1.getClass(); System.out.println(c1 == c2); Class c3 = null; try{ C3 = Class.forName("lmr.Foo"); }catch(ClassNotFoundException e){ e.printStackTrace(); } c3 = Class.forName(); } System.out.println(c2 == c3); } class Foo{}
我们完全可以通过类的类类型创建该类的对象实例,即通过c1 or c2 or c3 创建Foo的实例
Foo foo = (Foo)c1.newInstance();
Foo foo1 = new Foo();
任何一个类都是Class的实例对象,这个实例对象有三种表示方式
第一种表示方式:实际在告诉我们任何一个类都有一个隐含的静态成员变量class
class c1 = Foo.class; //在知道类名时使用
第二种表示方式:已经知道该类的对象通过getClass方式
Class c2 = foo1.getClass; //在知道对象时使用
在官网c1、c2表示了Foo类的类类型(class type)
万事万物皆对象,类也是对象,是Class类的实例对象,
这个对象我们成为该类的类类型。
第三种表达方式:
Class c3 = null;
try{
c3 = Class.forName("com.imooc.reflect.Foo");
}catch(ClassNotFoundException e){
e.printfStackTrace();
}
注意:c1=c2=c3 一个类只可能是Class类的一个实例对象.
任何一个类都是Class的实例对象,有三种方法表示这个实例对象
class属性(隐含的静态成员变量class),如Class c1 = Foo.class
getClass()方法,如Class c2 = foo1.getClass()
Class.forName()方法,会抛出异常
类 也是一个对象.
这个对象我们把它称之为"类类型"
每个对象所属的类就是java.lang.Class的实例
我们创建的每一个类(如a),都是Class的实例变量,通过new方式创建类对象
a的实例变量,套了两层
1.创建一个类:
知道类名:直接.class
Class Name1 = Name.class
知道类的对象:使用getClass()方法
Name name = new Name();
Class name1 = name.getClass();
全称创建类:
Class name = null;
name = Class.forName("com.packagename.classname.classname_toCreate");
类的对象创建:N类类型的对象创建N类的对象
//需要有无参的构造方法
Name name = new Name();
Name na =(Name) name.newInstance();
class type
5555555555555555
444444444444444
33333333333333