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 に答える