– Szia Amigo!
– Szia, Ellie!
"Ma jó kedvem van, úgyhogy van kedvem valami érdekeset mondani. Kezdem azzal, hogy a Java típusrendszere hogyan bánik a primitív típusokkal."
" A Java-ban minden objektumnak és minden változónak megvan a maga előre beállított változtathatatlan típusa. A primitív változó típusát a program fordításakor határozzák meg, de az objektum típusát a létrehozáskor. Az újonnan létrehozott objektum és/vagy változó típusa változatlan marad élete során. Íme egy példa:"
Java kód | Leírás |
---|---|
|
a / b – egész számok osztását jelenti. A válasz kettő. Az osztási művelet maradékát egyszerűen figyelmen kívül hagyja. |
|
d a eltárolja az egész számmal való osztásának maradékát b . A maradék 3. |
"Van néhány érdekes árnyalat, amelyet emlékezned kell."
"Először is, a referenciaváltozó nem mindig olyan értékre mutat, amelynek típusa megegyezik vele."
"Másodszor, amikor két különböző típusú változó kölcsönhatásba lép egymással, először azonos típusúvá kell konvertálni őket."
"Mi a helyzet az osztással? Ha 1-et osztunk 3-mal, 0,333(3)-at kapunk. Ugye?"
"Nem, ez nem helyes. Ha elosztunk két egész számot, az eredmény is egész szám. Ha 5-öt oszt 3-mal, akkor a válasz 1 lesz, a maradék pedig kettő. A maradékot pedig figyelmen kívül hagyja."
"Ha elosztjuk 1-et 3-mal, 0-t kapunk (az 1-es emlékeztetővel, amelyet figyelmen kívül hagyunk)."
– De mit csináljak, ha 0,333-at akarok kapni?
"Javában az osztás végrehajtása előtt a legjobb egy számot lebegőpontos (tört) típussá alakítani úgy, hogy egy lebegőpontos 1-gyel (1.0) megszorozzuk."
Java kód | Leírás |
---|---|
|
a 0 lesz |
|
d 0,0 lesz |
|
d 0,333 (3) lesz |
|
d 0,333 (3) lesz |
|
d 0,7142857142857143 lesz |
"Megvan."
GO TO FULL VERSION