Wątek przeniesiony 2014-02-27 07:14 z Java przez bogdans.

Łączenie obiektów różnych klas

0

Cześć,
Mam dość prosty jak myślę problem, ale pustkę w głowie...
Mam 3 klasy: Test, Półka, Słoik

W klasie Test jest main gdzie wywołuję metodę
polka.insert(słoik);

W klasach Półka i Słoik zdefiniowałem konstruktory, tylko nie wiem, jak powinna wyglądać metoda insert i w której klasie powinna się ona znajdować.
Proszę o pomoc, bądź jakieś małe naprowadzenie :P (Metoda insert ma przypisać słoik do konkretnej półki)

0
public class Test{
  
  public static void main(String[] args) {
    Słoik słoik1 = new Słoik("1", "a");
    Półka półka1 = new Półka("spiżarka", 10);
   
      półka1.insert(słoik1);
}
public class Słoik {
	
	private String typ, zawartość;
	public Słoik(String typ, String zaw){
		this.typ = typ;
		this.zawartość = zaw;
	}
}
public class Półka{
	private String nazwa;
	private int rozmiar;
	public Półka(String naz, int roz){
		this.nazwa = naz;
		this.rozmiar = roz;
	}

Tak wygląda u mnie główny szkielet. Nie wiem, jak rozgryźć tą metodę insert, i w której klasie w ogóle ją umieścić :/

0

Zrób sobie w Półce jakiś kontener na typy Słoik. Później w funkcji main dla obiektu półka1 wywołasz metodę (którą też dodasz) wstawiającą konkretny słowik do tej półki, ewentualnie półka1.nazwa_np_listy.add(słoik1);

0

Najprostsza odpowiedź:

public class Półka{
    private String nazwa;
    private int rozmiar;
    private List<Słoik> słoiki = new ArrayList<>();
    public Półka(String naz, int roz){
        this.nazwa = naz;
        this.rozmiar = roz;
    public void insert(Słoik słoik){
        słoiki.add(słoik);
    }
}

Do tego trzeba dopisać jeszcze metody robiące coś ze słoikami na półce. Ale to już sam zrobisz.
Gdybyś używał jakiegoś IDE, to po wpisaniu polecenia półka1.insert(słoik) edytor sam zaproponowałby Ci utworzenie metody insert w klasie Półka. Większość z IDE od razu utworzy Ci szkielet takiej metody.

ps. Takie tematy powinieneś tworzyć w dziale newbie.

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