Wątek przeniesiony 2014-12-17 13:05 z przez bogdans. Powód: Wątek dotyczący podstaw

Tworzenie tablicy dynamicznej jako element klasy.

Odpowiedz Nowy wątek
2014-12-17 12:53
0

Witam, otóż trafiłem na projekt zaliczeniowy w którym muszę utworzyć klasę, która będzie zawierać X obiektów definiowanych przez elementy typu ID, nazwa, nazwa katalogowa itp.

Problemem jest to, że z góry nie wiem ile user chciałby wprowadzić elementów, dlatego też obiektem tej klasy musiałaby być tablica dynamiczna. W jaki sposób przeskoczyć ten problem? Nie ukrywam, że javy dopiero się uczę stąd potrzebuję nieco więcej pomocy.

        Scanner klaw = new Scanner(System.in);
 
        System.out.println("Ile wpisow do BD chcesz dodac?");
        int ile_wpisow = klaw.nextInt();
 
        int []gwiazda = new int[ile_wpisow]; 
 
        int newID_gwiazda;
        String newGwiazdozbior;
        String newNazwa_katalogowa;
 
        for (int i=0; i<ile_wpisow; i++)
        {
            System.out.println("Wpis nr: " + i);
            //tutaj chciałbym coś w ten deseń, niestety nie wiem jak to zrobić oraz co zadeklarować wcześniej.
            **gwiazdozbiory gwiazda[i]** = new gwiazdozbiory(); //konstruktor narazie domyślny, później stworzę własny.
 
            System.out.println("Podaj wartosc pola 1:");
            newGwiazdozbior = klaw.nextLine();
            **gwiazda[i]**.setGwiazdozbior(newGwiazdozbior);
 
            //itd.
 
        }
 public class gwiazdozbiory 
{
        private int ID_gwiazda;  //licznik petli w programie
        private String Gwiazdozbior;
        public String Nazwa;
 
        //================================================metody wpisujace dane\
        public void setID_gwiazda(int newID_gwiazda)
        {
            ID_gwiazda = newID_gwiazda;   
        }
 
        public void setGwiazdozbior(String newGwiazdozbior)
        {
            Gwiazdozbior = newGwiazdozbior;   
        }
 
        public void setNazwa_katalogowa(String newNazwa_katalogowa)
        {
            Nazwa_katalogowa = newNazwa_katalogowa;   
        }
        //---------------------------------------------------------------------/
 
        //============================================metody wyswietlajace dane\
        public int getID_gwiazda()
        {
            return ID_gwiazda;
        }
 
        public String getGwiazdozbior()
        {
            return Gwiazdozbior;
        }
 
        public String getNazwa_katalogowa()
        {
            return Nazwa_katalogowa;
        }
        //---------------------------------------------------------------------/

W jaki spsób to ugryźć? Liczyłbym na bardzo łopatologiczne wytłumaczenie i pomoc.

edytowany 3x, ostatnio: furious programming, 2014-12-17 13:10
Wstawiaj kod w znaczniki &lt;code=java&gt; &lt;/code&gt; - bogdans 2014-12-17 13:04
I uzupełniaj tagi wątku; - furious programming 2014-12-17 13:10

Pozostało 580 znaków

2014-12-17 13:00
1
gwiazdozbiory[] gwiazda = new gwiazdozbiory[ile_wpisow];
for (int i = 0; i < ile_wpisow; ++i) {
    System.out.println("Wpis nr: " + i);
    gwiazda[i] = new gwiazdozbiory();
    ...
    gwiazda[i].setGwiazdozbior(newGwiazdozbior);
}

Pozostało 580 znaków

2014-12-17 13:01
1

Użyj jakiejś kolekcji.

public class User {
    private long id;
    private string name;
 
    // tutaj set'ery i get'ery
    ...
}
public class BaseOfUsers {
    // np. arrayList
    private ArrayList<User> users = new ArrayList<User>();
 
    public void addUser(User user) {
        this.users.add(user);
    }
 
    ...
}

Przykład pisany na szybko, ale powinno być ok.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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