Wątek przeniesiony 2015-03-27 12:40 z Java przez bogdans.

Przekazywanie danych pomiędzy klasami

0

Witam!

Pisałem ostatnio dla rozwoju umiejętności programowania w javie grę tekstową na konsolę.

Napisałem mniej-więcej coś takiego:

public class klasaGlowna{

int a = 10;
int b = 8;
int c = 15;

klasaPodrzedna klasa = new klasaPodrzedna();

klasa.pokaz();

}


public class klasaPodrzedna{

int a1;
int b1;
int c1;

public void pokaz(){

System.out.printf("%d %d %d",a1,b1,c1);


}
}

public class klasaPobierajaca{

klasaPodrzedna klasa = new klasaPodrzedna();

int a2 = klasa.a1;
int b2 = klasa.b1;
int c2 = klasa.c1;

public void metoda(){

//Jakieś operacje na danych: a2, b2 i c2.


System.out.printf("%d %d %d",a2,b2,c2);

}
}

Oczywiście każda klasa w osobnym plika *.java.

metody pokaz(), oraz metoda() wyświetlają "0 0 0".

Jak przekazać najprościej dane z klasaGlowna do klasaPodrzedna, tak aby inne klasy np. klasaPobierająca mieły do tych danych dostęp?

Z góry dziękuję i nie czepiajcie się jeśli są jakieś rażące błędy, których nie dostrzegam.

0

edit: na konsolę systemu Windows: cmd.exe

1

Są co najmniej dwie możliwości:

  • przekazać wartości pól w konstruktorze
klasaPodrzedna klasa = new klasaPodrzedna(a,b,c);
... 
 
public class klasaPodrzedna{
    int a1;
    int b1;
    int c1;
    public klasaPodrzedna(int a1,int b1, int c1){
        this.a1 = a1;
        this.b1 = b1;
        this.c1 = c1;
   }
  • przekazać referencję w konstruktorze
klasaPodrzedna klasa = new klasaPodrzedna(this);
... 
 
public class klasaPodrzedna{
    klasaGlowna mainClass = null;
    public klasaPodrzedna(klasaGlowna mainClass){
        this.mainClass = mainClass;
   }

1 użytkowników online, w tym zalogowanych: 0, gości: 1