Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok egy metódus...

Hogyan tudok egy metódus paraméterében egy másik osztály adattagjára hivatkozni? (Java)

Figyelt kérdés
2015. okt. 28. 17:34
 1/4 anonim ***** válasza:

Adattagokat nem bántjuk osztályon kívül.


Tehát: Legyen 2 osztályunk A és B. Mind2 rendelkezik attribútumokkal és metódusokkal.

Minden attribútumnak PRIVATE vagy PROTECTED láthatóságot adunk reflexből. A PUBLIC megoldások későbbi hibákhoz is vezethetnek. Így B-ből nem láthatod az A-t KÖZVETLENÜL.


Így csinálhatsz olyat, hogy getter/setter metódusok, amik lényegében olyan metódus definiciók, amikkel az adott osztály attr. értékét tudod lekérdezni (getter) ill. beállítani (setter). Így idegenek közvetlenül nem férnek hozzá.


int valami = A.a; // fordítási hiba, mert az "a" rejtett

int valami = A.getA(); // OK. mert: public int getA() { return this.a; }

2015. okt. 28. 18:42
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Oké. Köszi. De mi az az A?

Hogyan férjek hozzá a másik osztályhoz? Példányosítsam?

2015. okt. 31. 11:05
 3/4 A kérdező kommentje:

Mert most igy néz ki az enyém:


public class Postman{


public final String street;

private int lastOdd;

private int lastEven;



public Postman(String street, int lastOdd, int lastEven){


this.street = street;

this.lastOdd = lastOdd;

this.lastEven = lastEven;



}


class Municipal{


public boolean hirePostman(String street, int lastOdd, int lastEven){



street = Postman.getStreet();

lastOdd = Postman.getLastOdd();

lastEven = Postman.getLastEven();



}

}

2015. okt. 31. 11:08
 4/4 anonim ***** válasza:

Elősször is:

<Osztálynév>.<Metódus>() vagy <Osztálynév>.<Attr.> CSAK statikus esetben működik. Ráadást az alső osztályodban sintax error is van, mivel nincs típus definiálva, ahova te hívnád.


------------------------------------

public class Postman {

private final String street; //ez private!

private int lastOdd;

private int lastEven;


public Postman(String street, int lastOdd, int lastEven) {

this.street = street;

this.lastOdd = lastOdd;

this.lastEven = lastEven;

}

public String getStreet() {

return this.street;

}

public int getLastOdd() {

return this.lastOdd;

}

public int getlastEven() {

return this.lastEven;

}

}


class Municipal{

public static void main(String[] arg) {

Postman Pman = new Postman("Name", 10, 20);

String str = Pman.getStreet();

int odd = Pman.getLastOdd();

// stb

}

}

2015. nov. 2. 00:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!