2016-11-13 7 views
0

各クラスに複数のオブジェクトがある場合、各クラスのオブジェクトが混乱してエラーが発生します。 4つのクラスファイルはメイン、ゲーム、アップデートビルディングです。それぞれのクラスのコンストラクタを表示し、誰かが1つのクラスの複数のオブジェクトを作成する方法を示すのを助けることができます。ゲーム内には、アップデートやビルディングからアクセスする必要のある変数がありますが、エラーが発生したときに返されます。どのように私は、更新と建物の両方からゲームにJava:1つのクラスの複数のオブジェクトを持つ

主な変数にアクセスします:

public class Main 
{ 

    public static void main(String[] args) 
    { 
     Game newGame = new Game(); 

     newGame.setupGame(); 
     Game.isRunning=true; 
     newGame.gameLoop(); 

    } 

} 

ゲーム:

import java.util.Scanner; 

public class Game { 

    private Scanner input; 
    private Updates getUpdates; 

    public Game(){ 
     this.input = new Scanner(System.in); 
     this.getUpdates = new Updates(this); 
    } 
int happyness; 
double money; 
int population = 1000000; 

} 

アップデート

import java.util.Scanner; 

public class Updates { 

    private Scanner input; 

    private Game newGame; 

    Building buildBuilding = new Building(); 

    public Updates(Game newGame){ 
     this.newGame = newGame; 
     this.input = new Scanner(System.in); 
    } 
} 

ビル

import java.util.Scanner; 

public class Building { 

    public Building(){ 

     this.input = new Scanner(System.in); 
    } 

    private Scanner input; 
} 

メインの変数にアクセスすることができる更新クラスと同じように、ビルディングクラスがメインの変数にアクセスできるようにします。

+0

ビルディングクラスのどの変数?入力? – developer

+3

私はそれを3回読んで、あなたが望むものを理解していません。どのようなエラーがありますか?そして、正確に何を達成したいですか? –

+0

ようこそスタックオーバーフロー!良い質問をするので、良い答えを得るためにあなたを助けるために私たちの[SO質問チェックリスト](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)を確認してください。 –

答えて

0

[EDITED]

変更アップデート内のクラス:

Building buildBuilding; 

public Updates(Game newGame){ 
    this.newGame = newGame; 
    this.input = new Scanner(System.in); 
    this.buildBuilding = new Building(newGame); 
} 
public Building(Game newGame){ 

     this.input = new Scanner(System.in); 
     this.newGame = newGame; 
    } 

が呼ばれることはなかったので、あなたが誤って空のコンストラクタを呼び出している

、したがってinput NULLだった。

+0

いいえ、私は変数を取得する方法を知っていますが、2つの異なるクラスから同時に実行しようとすると、エラーが発生します –

+0

エラーのある実行可能コードを提供できますか起こるか?私はこの小さなサンプルでエラーを誘発することはできません。 –

+0

ここでは、各クラスのペーストビンコードを提供しています。http://pastebin.com/KVqYtiMB –

関連する問題