Te miért szereted a Javát?
Mondok egy példát. Tegyük fel, hogy van a konyhában 30 lábosod különféle méretben és színben. Jellemzően mindegyikhez 2 fül és 1 fedő tartozik, ezért csak akkor akarod megadni, ha ettől eltérés van.
Más nyelven ezt úgy oldanád meg, hogy az objektumpéldányt egy lábos(float térfogat, int szín, int fülek=2, int fedők=1) konstruktorral hozod létre, például
lábos(2, 4) (maradva a DOS 4 bites színkódolásánál, ez egy 2 literes piros lábos, ha jól emlékszem).
Egy 3 literes piros lábos fedél nélkül lábos(3, 4, fedők=0)
Na ez nem megy.
Ugye lehet, hogy csak a fedők vagy csak a fülek számát adnád meg, mert a másik default.
Pl.: Az eltérésnél megadod a többi paramétert ilyen esetekben és kész. :)
(De az ilyen esetek baromi ritkák, amikor ilyen előjön ott 90%, hogy tervezési hiba van korábbról már.)
class Labas{
public Labas(float térfogat, int szín, int fülek, int fedők){
[paraméter eltárolás]
}
public Labas(float térfogat, int szín){
Labas(térfogat, szín, 2, 1);
}
}
Azért ahogy elnézem, másoknak is szokott ilyen problémájuk lenni.
Én személy szerint utálom a Java-t. Olyan apró dolgokat nem hajlandóak benne megcsinálni, hogy egy string-et felsorolhatóvá tegyenek. Nem, ehelyett neked először karaktertömbbé kell alakítanod, hogy képes legyen utána a foreach bejárni.
C#-pban egy ilyet simán meg lehet csinálni:
string s = "Ez egy teszt szöveg";
foreach (char Current in s) {...}
Java-ban viszont csak erre voltak képesek:
String s = "Ez egy teszt szöveg;
char[] Chars = s.toCharArray();
for (char Current : Chars) {...}
//vagy rövidebben:
for (char Current : s.toCharArray()) {...}
Vagy például property-ket is lusták voltak Java-ban megcsinálni.
Egyszerűbb nyelv -> bonyolultabb kód
Bonyolultabb nyelv -> egyszerűbb kód
Scalaban pl. pár sor megcsinálni sokmindent, amit Java-ban 3x-4x annyi sor, cserébe a Java-t rövidebb idő alatt lehet megtanulni, mint a Scala-t.
Azért szeretik amúgy, mert ami nincs benne nyelvi szinten (pl. operator overloading) az sokszor segít abban, hogy ha ránézel a kódra, akkor legalább az alapelemekről tudod mindig, hogy mit csinálnak. Ezért könnyebb átvennie másnak a munkát.
Másik nagy előnye, bár az nem a nyelvé, hogy nincs még egy olyan nyelv/platform, amihez annyi 3rd party library lenne, mint a Java-hoz.
Terjengős? Nézzük:
Java: List<ValamihosszuNevuOsztaly> lista = new ArrayList<>();
c#: IList<ValamihosszuNevuOsztaly> lista = new List<ValamihosszuNevuOsztaly>();
Azokat a nyelveket meg ne is hasonlítsuk ehhez, ahol pl. a lista típusa beépített, nem választhatsz implementációt.
Az importok meg mindig is voltak és mindig is lesznek. C-ben meg sok #include volt.
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!