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

Przekazywanie danych pomiędzy klasami

2015-03-27 11:17
CAp
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.

edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26
!Wstawiaj kod w znaczniki <code=java></code> - bogdans 2015-03-27 12:33

Pozostało 580 znaków

2015-03-27 11:20
CAp
0

edit: na konsolę systemu Windows: cmd.exe

Pozostało 580 znaków

2015-03-27 12:39
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
```java
klasaPodrzedna klasa = new klasaPodrzedna(this);
... 

public class klasaPodrzedna{
    klasaGlowna mainClass = null;
    public klasaPodrzedna(klasaGlowna mainClass){
        this.mainClass = mainClass;
   }

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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