Class类的加载以及类的产生原理java学习 第十天

/*
当类产生一个实例的时候会加载类的Clsaa对象 JVM根据类名加载class字节码文件 文件
java中所有类都是从object产生的 为什么这么说呢 ? 比如说我们自己定义的类 的 Class对象
会自动调用 newInstance函数来返回object类对象 然后 转换成我们的类
当然我们也可以利用这点来获取 一个 我们定义的类的对象 然后进行操作
类的静态代码段是在类加载的时候才会执行 也就是 new Class()


*/
class Test
{
public static void main(String []args) throws Exception
{


System.out.println("Before Loading "); //判断是否类在 构造对象的时候才被加载
new Point();
new Line();
System.out.println("After Loading");
//下面通过一个 参数来再不知道类名的情况下创建类
Class c1=Class.forName(args[0]); //通过Class静态方法 forName传入 类名字来获得Class类的实例
Point pt=(Point)c1.newInstance(); //通过Class类的newInstance函数获得object对象从而得到 Point对象
pt.outPut();//调用Point 类函数






}
}

class Point
{
int x,y;//java中未定义的变量初始化为0不会出现类似 c++的随机数
static //静态代码段
{
System.out.println("Loading Point");
}
void outPut()
{
System.out.println("x="+x+",y="+y);
}

}
class Line
{
static //静态代码段 当类被加载的时候会执行
{
System.out.println("Loading Line");
}
}

你可能感兴趣的:(Java学习)