2016-08-05 31 views
-2

Hallo Ich versuche, auf ein öffentliches Objekt in einem anderen Paket innerhalb eines Projekts zuzugreifen.Zugriff auf öffentliche Objekte in einem anderen Paket versuchen

Ich versuche auf das Objekt 'Gegner' zuzugreifen, das vom Typ 'Charakter' in der Attributklasse ist.

Klasse Ich versuche auf Objekt zuzugreifen. "Diese Klasse ist in einem anderen Paket".

public int opponentAttackDamage() {  
    int attack = opponent.getAttribute().getAttack(); 
} 
+0

In Ihrer Frage scheint es, als ob der Gegner in der Engine-Klasse enthalten ist und nicht die Attributklasse –

+0

Sie sind der richtige Gegner ist eine statische Variable in der Motorklasse. Ich hielt es für möglich, immer noch auf dasselbe Objekt zuzugreifen, weil es von einer anderen Klasse deklariert wurde. – TheDeveloper

+0

Wo ist also die Methode 'GegnerAttackDamage()' definiert? –

Antwort

0

Wenn Gegner ein statisches Attribut der Motorklasse ist, und die Methode, die Sie es zugreifen, von nicht in der gleichen Klasse, müssen Sie Engine.opponent erwähnen, darauf zuzugreifen. Außerdem müssen Sie das Paket importieren, in dem die Engine-Klasse definiert ist.

3

Um von jedem Ort, auch ein statisches Attribut für den Zugriff auf in der gleichen Klasse, wo sie deklariert wird (als eine gute Praxis) können Sie den Namen der Klasse folgen verwenden sollten, indem sie einen den Name des Attributs dot:

Engine.opponent.getAttribute().getAttack(); 

Auch solltest du daran denken, dass das gegnerische Objekt irgendwo in deiner Klasse initialisiert werden muss (Gegner = neuer Gegner() - schätze ich -).