一个类A的私有成员,是一个对象B,这个对象在被创建的时候会建立一个文件,请问当类A被创建的时候,B是否会执行,就是说是否会有文件被创建?例如:public class a{
private b objB = new b();//成员objB是一个对象b,b在被创建的时候会有新建一个文件的操作
//一下的代码中没有调用过objB或者b对象
public static void main(String[] args){
..........
}
}
请问当a被运行的时候,是否会有一个文件被新建的操作?

解决方案 »

  1.   

    我认为,只有你执行 a objA = new a(); 时,会初始化a的类成员objB,调用b的构造函数。
      

  2.   

    根据你的文字描述,文件会被创建,除非在相关联的<cinit>、<init>段,也就是对应的class初始化、实例初始化过程中,出现Exception,而根据你的代码例子,应该不太会出异常
      

  3.   

    例如下面这个程序
      class B{
        B(){
            System.out.println("B");
        }
      }  public class Test {
        private B b = new B();
        public static void main(String[] args){
            Test a = new Test(); 
         } }
     如果没有Test a = new Test(),则不会打印出任何东西
     如果有这条语句,就会打印出B
      

  4.   

    new 一个a的时候就会创建文件了.
      

  5.   

    new 一个a的时候就会创建文件.
      

  6.   

    会创建b,在创建a的时候首先初始化成员变量,icelover(C++)举的那个例子就很典型。
      

  7.   

    private b objB = new b();//成员objB是一个对象b,b在被创建的时候会有新建一个文件的操作如果你创建一个a对象,那么就会创建一个b对象,这个b对象就包含在a对象中。但是如果你不创建a的对象,那么就不会有b对象。