0

如何以另一种方法访问在构造函数中实例化的对象?(例如下面的对象 b)实例化这个对象的最佳方法是什么,以便我的所有类方法都可以访问同一个对象?

public class ClassA{ 
  private final int size;       

  public ClassA(int N){
      size = N;    
      ClassB b = new ClassB(size);
  }

  public void doSomething(){
      b.doSomething();        
  }      
}
4

4 回答 4

5

您只需要将其分配给一个字段:

public class ClassA{ 
  private final int size;       
  private final ClassB b;

  public ClassA(int N){
    size = N;    
    b = new ClassB(size);
  }

  public void doSomething(){
    b.doSomething();        
  }      
}
于 2012-08-28T15:16:48.327 回答
2

将 ClassB b 定义为实例变量。

public class ClassA{ 
  private final int size;       
 ClassB b;
  public ClassA(int N){
  size = N;    

  b = new ClassB(size);
  }

  public void doSomething(){
  b.doSomething();        
  }      
}
于 2012-08-28T15:16:47.173 回答
2

就像您所做的那样将其声明为一个字段size

public class ClassA{ 
  private final int size;   
  private final ClassB b;    

  public ClassA(int N){
    size = N;    

    b = new ClassB(size);
  }

  public void doSomething(){
    b.doSomething();        
  }      
}
于 2012-08-28T15:16:54.350 回答
2

您可以简单地创建 B 类型的属性/字段

public class ClassA{ 
  private final int size;       
  private B bInstance;

  public ClassA(int N){
  size = N;    

  bInstance = new ClassB(size);
  }

  public void doSomething(){
  b.doSomething();        
  }      
}
于 2012-08-28T15:19:19.223 回答