1 在面向对象的世界中,万事万物皆对象
在Java中普通数据类型和静态的东西不是对象,但是普通数据类型类是对象。
类是对象,类是java.lang.Class类的实例对象。
代码实例
public class ClassDemo {
public static void main(String[] args){
//
Foo foo1 =new Foo(); // Foo的实例对象
//任何一个类都是class的实例对象,,这个实例对象有点三种表示方式
// 第一种表示方式是: 任何一个类都有一个隐含的静态成员变量
Class c1=Foo.class;
// 第二种表达方式: 已经知道该类的对象通过getclass方法
Class c2=foo1.getClass();
/* 官网c1,c2表示了Foo类的类类型
* 万事万物皆对象
* 类也是对象,是class类的实例对象
* 这个对象我们称为该类的类类型。
*/
System.out.println(c1==c2);
// 第三种表达方式
Class c3=null;
try{
c3=Class.forName("ClassDemo");
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
System.out.println(c2==c3);
// 我们可以通过类的类类型创建该类的对象实例 通过c1或许c2或者c3创建Foo的实例对象
try{
Foo foo=(Foo)c1.newInstance();
foo.print();
}
catch(InstantiationException e)
{
e.printStackTrace();
}
catch(IllegalAccessException e)
{
e.printStackTrace();
}
}
}
class Foo{
void print(){
system.out.println("foo");
}
}