Obiekt zawierający listę obiektów

0

Cześć.
Taka sytuacja:
2 klasy. Płyta i Utwór.
Chciałbym tworzyć obiekt typu Płyta który zawiera listę obiektów typu Utwory (Wiadomo, na pojedynczych płytach znajduje się różna ilość utworów)
Pisząc tak zauważyłem że w klasie Płyta nie mogę dodać do konstruktora listy a więc widzę że obiekty nie mogą przechowywać list (tak?)
Pomyślałem więc żeby zamiast listy użyć tablicy obiektów.
I to ogólnie śmiga aczkolwiek chciałbym się dowiedzieć czy to nie jest zbyt przekombinowane? Czy jest jakiś lepszy sposób na taką sytuację?

W praktyce będzie to wyglądało tak że wczytuję listę X utworów do tablicy Y i przekazuję tą tablicę do obiektu Z.

Piszę w JAVIE aczkolwiek chodzi mi bardziej o poglądowe rozwiązanie problemu a nie samego kodu.

Pozdrawiam,
eL

0
eL napisał(a):

Pisząc tak zauważyłem że w klasie Płyta nie mogę dodać do konstruktora listy a więc widzę że obiekty nie mogą przechowywać list (tak?)

Bzdura. Pokaż kod. Jak nie zmieniasz kolekcji utworów na płycie po jej utworzeniu, to tablica raczej też może być.

0

Okej, faktycznie, mój błąd. Przyzwyczaiłem się że konstruktory generuję z automatu w NetBeansie a ten nie chciał mi tego zrobić. Jak napisałeś że to bzdura to po wpisaniu ręcznie czyli tak:

public class Plyta {

    private String Nazwa;
    private double Cena;
    private int Stan;
    private List<Utwory> listaUtworow = new ArrayList<Utwory>();

    public Plyta(String Nazwa, double Cena, int Stan, List<Utwory> listaUtworow) {
        this.Nazwa = Nazwa;
        this.Cena = Cena;
        this.Stan = Stan;
        this.listaUtworow=listaUtworow;
    }
} 

Chodzi ;) .
Czyli tak jest dobrze? Wolę działać na listach niż tablicach ponieważ własnie chcę później dodawać kolejne utwory.

A więc okej, problem listy rozwiązany.
Taki sposób przetrzymywania listy obiektów w obiekcie jest dobry? W sensie, nie ma w tym nic złego?

Pozdrawiam,
eL

dodanie znacznika <code class="java"> - Furious Programming

0

Teraz może być, prawie.
Jeżeli ten konstruktor jest jedyny, to dlaczego na początku domyślnie tworzysz pustą listę? Dlaczego nazwy niektórych zmiennych zaczynają się małą literą, a inne wielką (w Javie konwencja jest raczej taka: nazwaZmiennej. Czyli listaUtworow jest OK). Dlaczego nazwałeś klasę 'Utwory' zamiast 'Utwor'? Nie radzę trzymać ceny jako double: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency

Tutaj masz przykład dlaczego:
https://ideone.com/pjOmHk

0

Czyli zamiast double z tego co czytam lepiej użyć BigDecimal w przypadku obliczania kwot?

Co do konwencji to w zasadzie znam to wszystko z teorii tylko jak zaczynałem kilka lat temu uczyć się programowania w technikum to NIESTETY nikt nie zwracał uwagi na to jak piszę. Działać działało i to wszystko. A że się wtedy uczyłem i jeszcze nie znałem co pisać z małej, co z dużej, co drukowanymi i nikt mi uwagi na to nie zwracał, to weszło mi w krew takie pisanie trochę na pałę. Wiem że tak robię i z tym walczę ale jak wiadomo ciężko się pozbyć starych złych nawyków.

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