Java [1242]

Zapisz się
  • 1
  • 2
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Pablo

    simanos
    takie pytanie mi sie urodzilo...
    czy mamy mozliwosc nazywania zmiennych wartosciami innych
    zmiennych?

    dokladniej,chodzi o to,ze np:

    int i=3;
    int xyz_3=...;/ /chce do nazwy zmiennej xyz dorzucic jeszcze numer, w tym
    przypadku 3

    albo analogicznie:

    int i=53;
    int xyz_53=...;

    czy jest taka opcja?
  • Dzemus

    Hmmm... no fuckin' way?

    Ale możesz sobie zrobić HashMapę i wtedy daną zmienną identyfikujesz przez Stringa albo innego cusia (dawno tego nie robiłem więc nie wiem czy dobrze mówię, ale tak to chyba było:>).
  • Dzemus

    chociaż tak patrzę na Twój przypadek... To nie możesz sobie zrobić tablicy?

    skoro miałobybyć tak:

    int i = 3;
    int xyz_3 = ...;
    i = 53;
    int xyz_53 = ...;

    to można zrobić tak:

    int[] xyz = ...;
    int i = 3;
    xyz=...;
    i=53;
    xyz=...;
  • Pablo

    tablica odpada zdecydowanie,kurde,a wydawalo mi sie ze na lab. jeden kumel robil wlasnie tak z nazywaniem zmiennych jak pokazalem wyzej...
    eeh ze nie spojrzalem jak...
  • Dzemus

    Ale po co Ci to?
  • kapuhy

    Dupnie. Zmienne się nazywa tak, żeby było wiadomo do czego slużą. A formalnie to możesz sobie dowolnie zmienne nazywać, byle by pierwszy znak był literą lub "_", reszta to mogą być i cyfry.

    A tak swoją drogą, to używaj jakiegoś IDE, który Ci od razu błędy podkreśli i tyle.

    Pozdrawiam
  • Dzemus

    Wtf? Jaki powyższa wypowiedź ma związek z tematem, bo nie wiem? :/
  • Adept

    >Dzemus napisał
    >Wtf? Jaki powyższa wypowiedź ma związek z
    >tematem, bo nie wiem? :/

    moim zdaniem to kolega przeczytał tylko tytuł tematu nie czytając wypowiedzi kolegi, i stąd ywszła ta głupota.
  • Pablo

    moze wyjasnie o co biega:
    potrzebuje tablice obiektow,ale nieskonczona i teraz zaczynaja sie schody,bo biorac ArrayLista mam:

    ArrayList tablica=new ArrayList();
    Klasa objekt_1=new Klasa();
    tablica.add(objekt_1);
    Klasa objekt_2=new Klasa();
    tablica.add(objekt_2);
    itd...

    jak generowac kolejne obiekty i wrzucac je automatycznie do ArrayLista ?
    bo tak myslalem ze jest to mozliwe majac wlasnie opcje nazywania zmiennych wartosciami innych,wtedy mozna to bez problemowo wykonac,a jak zrobic to inaczej?
    jakie macie pomysly?
  • Pablo

    poza tym ostatnio spotkalem sie z dziwna sprawa,jednym z pol objektu jest pesel osoby,no i tak:

    osoba.pokazDane("jan","kowalsk i",7845478456);

    gdzie:
    this.pokazDane(String imie,String nazwisko,long pesel);

    wez tu badz madry i pisz programy...jak javac mowi ze pesel przekroczyl maksymalna wartosc stringa...i o co mu chodzi skoro pesel jest long'iem?

  • Dzemus

    >SpecialAgent napisał
    >ArrayList tablica=new ArrayList();
    >Klasa objekt_1=new Klasa();
    >tablica.add(objekt_1);
    >Klasa objekt_2=new Klasa();
    >tablica.add(objekt_2);
    >itd...


    Powiem tak.. Ałaaa:P

    na cholerę za każdym razem robisz nową referencję "objekt".

    To powinno wyglądać tak:

    ArrayList tablica=new ArrayList();
    Klasa objekt=new Klasa();
    tablica.add(objekt);

    Klasa objekt=new Klasa();
    tablica.add(objekt);

    itp.

    w skrócie:

    ArrayList tablica = new ArrayList();

    while(true/ * cokolwiek:P */)
    tablica.add(new Klasa());

    Przykro mi, ale wychodzi tutaj to, że nie rozumiesz mechanizmu referencji w Javie - nie musisz za każdym razem tworzyć nowej "zmiennej" dla każdego nowego obiektu. Te "zmienne" są tylko referencjami (powiedzmy, że wskazaniami) na obiekty i kiedy włożysz już dany obiekt do kontenera to to wskazanie przestaje Ci być potrzebne, bo teraz je przechowuje kontener. Więc możesz spokojnie użyć tej samej "zmiennej" (referencji) do utworzenia nowego obiektu. Oj, wiem, że niezrozumiale piszę, ale taka pora. Jakby Ci się nie udało znaleźć materiałów o tym to napiszę sensowniej, ale na razie radzę poczytać... Powiedz jakie masz książki to nawet Ci powiem które strony:P
  • Dzemus

    SORRY! BŁĄD MI SIĘ WDARŁ:

    Oczywiście to powinno wyglądać tak:

    ArrayList tablica=new ArrayList();
    Klasa objekt=new Klasa();
    tablica.add(objekt);

    objekt=new Klasa();/ / tutaj już nie trzeba pisać "Klasa"
    tablica.add(objekt);
  • Dzemus

    >SpecialAgent napisał
    >jak javac mowi ze pesel
    >przekroczyl maksymalna wartosc stringa...i o co mu chodzi
    >skoro pesel jest long'iem?
    >
    Wklej konkretny kawałek kodu i wyjście kompilatora to może coś poradzimy. Bo tak to można gdybać:P
  • Pablo

    co do tych intow:

    class Osoba
    {
    public Osoba(String a,String b,long c,int d)
    {
    imie=a;
    nazwisko=b;
    pesel=c;
    id=d;
    }
    (...)
    }

    Osoba student=new Osoba("Jan",Kowalski",45885454 875,2)

    error integer number too large: 45885454875

  • Pablo

    >Oczywiście to powinno wyglądać tak:
    >
    >ArrayList tablica=new ArrayList();
    >Klasa objekt=new Klasa();
    >tablica.add(objekt);
    >
    >objekt=new Klasa();/ / tutaj już nie trzeba pisać
    >"Klasa"
    >tablica.add(objekt);
    >

    nie wiem czy dobrze rozumiem,wystarczy tylko jedna "zmienna" zeby za kazdym razem (przejsciem petli) pakowac do tablicy inny objekt?
    no dobra,niby spoko,a po czym bede te obiekty potem wyciagal z arraylista? numerze? czy jak,po to robilem rozne nazwy zeby jakos je rozrozniac...a jak teraz je rozroznic?zeby potem wyciagnac?
    moje ksiazki: head first java i java cw. praktyczne... no i wyklady prof. Barteczko; )
  • Dzemus

    >SpecialAgent napisał

    >moje ksiazki: head first java i java cw. praktyczne...
    To sobie załatw albo Core JAVA albo Thinkinga..:]

    >nie wiem czy dobrze rozumiem,wystarczy tylko jedna "zmienna"
    >zeby za kazdym razem (przejsciem petli) pakowac do tablicy
    >inny objekt?
    Oczywiście.

    >no dobra,niby spoko,a po czym bede te obiekty potem wyciagal
    >z arraylista? numerze? czy jak,po to robilem rozne nazwy
    >zeby jakos je rozrozniac...a jak teraz je rozroznic?zeby
    >potem wyciagnac?

    Po numerkach:) Jak chciałeś mieć objekt_1, objekt_53 to teraz będziesz miał: tablica.get(1), tablica.get(53) :]

    Wyciąg z mana:

    Class ArrayList<E>
    Method Summary

    E get(int index)
    Returns the element at the specified position in this list.
  • Brut[all]

    >nie wiem czy dobrze rozumiem,wystarczy tylko jedna "zmienna"
    >zeby za kazdym razem (przejsciem petli) pakowac do tablicy
    >inny objekt?

    Nie jest potrzebna żadna zmienna:
    tablica.add(new Klasa());

    Po to są tablice/kontenery, aby przechowywać dane za nas.
    To tak, jakbyś stertę kartek układał w segregatorach, ale cały czas każdą z kartek musiałbyś trzymać ręką, aby Ci się nie zgubiła nigdzie...

    Odwołujesz się do nich.. to zależy od tego, z jakiego kontenera korzystasz: jedne mają indeksy kolejnych liczb, inne działają jak tablice asocjacyjne.
  • Pablo

    no dobra,to mam tak:

    ArrayList studenci=new ArrayList();
    Osoba student=new Osoba();
    for(int i=0;i<=5;i++)
    {
    student.dodajOsobe(i);
    studenci.add(student);
    }

    dodajOsobe() - metoda pobierajaca imie,nazwisko itp od uzytkownika

    teraz pytanie,jak wyciagnac z arraylista np dane studenta nr 3?
    jak robie

    student.pokazOsobe()/ /pokazuje dane osoby

    to mi zwraca dane ostatniego wpisanego studenta
  • Dzemus

    Ajajajajaaaaj... Niee taak.:P

    Spokojnie:

    Rozumiem, że chcesz w Array'u mieć listę osób wczytanych od użytkownika, tak?

    żeby to Twoje działało powinieneś zrobić tak:

    ArrayList<Osoba> studenci = new ArrayList<Osoba>();
    // w jse5.0 ArrayList jest "szablonem"...

    Osoba student;/ / tworzymy puste wskazanie na studenta

    for(int i=0; i<5; ++i)
    {
    student = new Osoba();/ / tworzymy "pustego" studenta
    student.wczytajDane(); / / wczytujemy jego dane z klawiatury
    / / można powyższe dwie rzeczy połączyć
    studenci.add(student); / / "wkładamy" studenta do pojemnika
    }

    // i teraz jak chcesz sobie wywołać 3 studenta to robisz tak:

    studenci.get(3).pokazOsobe();

    // kapiszi? :P
  • Dzemus

    Ale normalnie ja bym to inaczej zrobił. Ale pokażę dopiero wieczorem, bo muszę lecieć na korki:)

    A propos:]
    Jak jesteś z Wawki to zapraszam do mnie na korki z programowania (matma tyż:P) - 20 zł/h :] (Sadyba i generalnie lewa-dolna część Wawy)
  • 1
  • 2