Przechowywanie obiektu klasy

0

Witam jestem początkujący w programowaniu w Javie. Chciał bym się dowiedzieć w jaki sposób zrobić coś takiego: np. jeżeli mamy klasę Operator i klasę Stos to klasa Stos ma przechowywać obiekty klasy Operator ? Czy tu chodzi o dziedziczenie ? Proszę o pomoc z góry dziękuję .

0

Relacja ma-coś.

0

nie chodzi o dziedziczenie ale o kompozycje

0

W klasie Stos robisz np.

HashSet<Operator> operatorzy = new HashSet<>(); //tworzysz zbiór operatorów
Operator op = new Operator(); //tworzysz operatora
op.setName("Zbyszek"); //wypełniasz dane w operatorze
operatorzy.add(op); //dodajesz operatora do zbioru.

Kroki 2-4 powtarzasz dla wszystkich operatorów. Możesz użyć czegoś innego z Collection zamiast HashSet.

To oczywiście pewne uproszczenie i należałoby zrobić to inaczej (przynajmniej wydzielić tworzenie operatorów do innej metody), ale na początku wystarczy, a kroki praktycznie zawsze będą takie same.

0

Mam jeszcze takie pytanie otóż jeżeli w klasie operator mamy konstruktor, który przyjmuje dwa obiekty który wygląda tak :
public Operator(String operator, int priority)
{
this.operator=operator;
this.priority=priority;
}
oraz dwie metody które zwracają operator i priority to w jaki sposób w klasie stos zaimplementować od podstaw na tablicach dynamiczny stos który będzie przechowywał obiekty klasy Operator? tzn nie za bardzo wiem jak się odwoływać do tych obiektów i na nich operować.

0

Jeśli to ma być stos, to zamiast HashSet z mojego poprzedniego wątku użyj sobie np. LinkedList (chyba, że chcesz bardziej od podstaw, to pogadamy o tym, jak się implementuje takie listy od zera?). Obiekty wrzucasz metodą addFirst(obiekt_do_dodania) i pobierasz-jednocześnie usuwasz przez Operator oper = removeFirst(). Jak już pobierzesz tego oper. to wywołujesz na nim getPriority() i getOperator() według potrzeb. Odnośnie wrzucania, to możesz zrobić

Operator op = new Operator("Zbyszek", 666);
lista.addFirst(op);

,
lub od razu:

lista.addFirst(new Operator("Zbyszek", 666));

Daj znać, czy o to chodziło, czy też chcesz sobie napisać coś własnego zamiast standardowych kolekcji z java.util.

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