Mire jó a length (java)?
elkezdtem javát tanulni és a tömbök jönnek. lenne ez a kód:
int szamok[] = {4,5,6,7};
for(int i=0;i<szamok.length;i++){
System.out.println(szamok[1]);
valaki eltudná magyarázni hogy pontosan mire is jó a length? A példában számomra nem magyarázzák el úgy hogy megértsem.
köszi szépen.










C-vel semmiképpen sem.
C++ vagy Python.
Az objektum orientált nyelveknél pont az objektumorientáltság a baj, ami az elején teljesen kínai.





C-vel az a baj, hogy pokoli alacsonyszintű és a hajad kitéped a legegyszerűbb dolgoktól is mire lekódolod.
C++ is nehéz, de csak magas szinten, alapozni pont kellemes középút.





#13:
Lehet, hogy épp ezért nem kéne C++-szal (sem) kezdenie? Az is OOP nyelv... Igaz, nem kötelező kihasználni, de a legtöbb eszköze, mint ahogy a Pythonnak is, objektumorientált. Ezért próbálnám kímélni a multiparadigmás nyelvektől. A C nyelv tisztán eljárásorientált, ezért is érdemes ezzel kezdenie. Sokkal könnyebb lesz kihasználnia az OOP adta lehetőségeket, ha ismeri az eljárásorientált nyelv eszközeit, és ezáltal képben van az alapfogalmakkal, legalábbis érti azokat.





"C-vel az a baj, hogy pokoli alacsonyszintű és a hajad kitéped a legegyszerűbb dolgoktól is mire lekódolod. "
Honnan szeditek ezt a hülyeséget? Csak azért, mert többek közt a kezedbe adja, hogy kezelheted vele a memóriaterületet? Egyszerű dolog az is, csak túl van misztifikálva, még akkor is, ha tanítják.





(De jó, hogy ezt nem tudtam egyszerre leírni...)
A C++ pedig nem más konyhanyelven, mint a C nyelv kibővítése az objektumorientált eszközökkel. Tettek bele generikus eszközöket is (template-ek, ha úgy jobban tetszik). Ismét csak több a megtanulandó ismeretek száma, mint a C-ben, és ezzel vissza is kanyarodtunk oda, hogy miért ne azzal kezdje...





Azért mert kevesebb minden van a C -ben nem jelenti, hogy könnyebb is használni. Erre egy példa, e-mail cím összefűzése:
C nyelven:
char* compose(const char* name, const char* domain)
{
char* res = malloc(strlen(name)+strlen(domain)+2);
char* p = strcpy(res,name);
p += strlen(name);
*p = '@';
strcpy(p+1,domain);
return res;
}
Használata:
char* addr = compose("email","domain.com");
// …
free(addr);
C++ nyelven:
string compose(const string& name, const string& domain)
{
return name+'@'+domain;
}
Használata:
string addr = compose("email","domain.com");
// …





Na jó, térjünk ki akkor a pointerekre. Azért szeretem jobban ezzel kezdeni, mert itt tiszta és világos minden, hogy miért pont úgy kezelem, ahogy. Ha tudom, hogy valaminek a címét hogyan kérdezem le, az adott címen lévő értéket hogyan írom felül, illetve az adott címen lévő értéket hogyan kérdezem le, és mindennek mi a haszna, már meg is vagyok mindennel. Igaz, van lehetőségem memóriaterület lefoglalására. És persze ha lefoglaltam egyszer, jeleznem is kell, hogy már nincs rá szükségem, fel kell szabadítani. Ez nekem valahogy olyan logikus dolognak tűnik. És mindez jól tükröződik a programkódban is, ez az, amit fontosnak tartok kiemelni.
string compose(const string& name, const string& domain)
{
return name+'@'+domain;
}
string addr = compose("email","domain.com");
Itt egy kezdő számára egy kicsit logikátlannak és nehezen érthetőnek tűnik, hogy az az & "jel" miért is kell arra a két helyre... Oké, referencia szerinti paraméterátadás. Mi is az a referencia? Ja, hogy itt is a memóriához van köze! Könnyebben emészthető, ha tudjuk, hogyan is működtek C-ben a pointerek és az érték szerinti paraméterátadás...
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!