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

来源:互联网 发布:ubuntu 安装cmake 编辑:程序博客网 时间:2024/04/27 19:27

/*
当类产生一个实例的时候会加载类的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");
 }
}