logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[java]Tablice dynamiczne

przemo_wielki 08 Lis 2009 17:32 29997 6
REKLAMA
  • #1 7232730
    przemo_wielki
    Poziom 24  
    Posty: 583
    Pomógł: 61
    Ocena: 10
    Witam,

    mam problem w ustawieniu rozmiaru dla tablicy dynamicznej, najlepiej będzie jak podam przykład:

    
    public class Osoba {
    String imie[]; //dynamiczna tablica 
    }
    
    public class Przyklad{
     public static void main(String[] args){
      int rozmiar=5;
    
      Osoba nowy[] = new Osoba();//dynamiczna tablica obiektow 
      
     }
    }
    

    Pytanie: jak ustawić w metodzie głównej main rozmiar tablicy String imie[] ? Chciałbym aby użytkownik w trakcie działania programu mógł wybrać ile imion (np.) może być przypisanych do osoby (rozmiar tablicy dynamicznej String imie[]).

    ps: jestem początkujący także proszę o wyrozumiałość ;]
  • REKLAMA
  • #2 7233418
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    a czy przypadkiem nie:
    Osoba []osoby=new Osoba()[rozmiar]
    Ale głowy nie daję - za mało do czynienia z Javą.
  • REKLAMA
  • #3 7233593
    mrio
    Poziom 10  
    Posty: 10
    Pomógł: 1
    Ocena: 1
    
    rozmiar = 10;
    Osoba[] osoby = new Osoba[rozmiar];
    for (int i=0; i<osoby.length; i++) {
       osoby[i] = new Osoba();
    }
    


    Taki kod wypełni tablicę osoby obiektami typu Osoba.
  • REKLAMA
  • #4 7233758
    przemo_wielki
    Poziom 24  
    Posty: 583
    Pomógł: 61
    Ocena: 10
    W poprzednim kodzie wkradł się błąd (pisałem na sztywno bez kompilatora) poprawne tworzenie obiektu powinno wyglądać tak:

    
                Osoba[] nowy;//dynamiczna tablica obiektow
                nowy = new Osoba[rozmiar];
    
    //lub  Osoba[] nowy = new Osoba[rozmiar];
    


    Tylko że to akuratnio wiem. Chcę ustawić rozmiar dla pola obiektu nowy[] z poziomu funkcji main(); czy jest to możliwe?

    Chodzi mi o :
    
    String imie[]; //dynamiczna tablica 
    
  • REKLAMA
  • Pomocny post
    #6 7233948
    mrio
    Poziom 10  
    Posty: 10
    Pomógł: 1
    Ocena: 1
    
    public class Main {
        public static void main(String[] args) {
            int rozmiar = 5;
            Osoba[] osoby = new Osoba[rozmiar];
            osoby[0] = new Osoba(2);
            osoby[1] = new Osoba(1);
            // ... itd.
        }
    }
    class Osoba {
        String[] imiona;
        // Tworzy obiekt Osoba o podanej liczbie imion.
        Osoba(int liczbaImion){
            imiona = new String[liczbaImion];
        }
    }
  • #7 7234030
    przemo_wielki
    Poziom 24  
    Posty: 583
    Pomógł: 61
    Ocena: 10
    Heh faktycznie ;] a ja kombinowałem cuda wianki :D

    Konstruktor załatwił sprawę.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemu dynamicznego ustawiania rozmiaru tablicy String imie[] w klasie Osoba w języku Java. Autor chciał, aby rozmiar tej tablicy mógł być określany podczas działania programu, np. przez użytkownika w metodzie main. Rozwiązaniem okazało się wykorzystanie konstruktora klasy Osoba, który przyjmuje jako parametr liczbę elementów tablicy imie[] i inicjalizuje ją odpowiednio. Przykładowo, w metodzie main tworzy się tablicę obiektów Osoba o zadanym rozmiarze, a następnie dla każdego obiektu wywołuje konstruktor z parametrem określającym rozmiar tablicy imion. Dzięki temu tablica String imie[] jest dynamicznie tworzona i może mieć różną długość dla różnych obiektów. Wskazano także, że tablicę obiektów Osoba można zainicjalizować za pomocą pętli, tworząc kolejne instancje z odpowiednim rozmiarem tablicy imion.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA