- 1
- 2
-
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
-
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
-
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
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

