Java Puzzle 23 – Operator Overloading
Merhaba Arkadaslar
Su kod icin sonsuz/ infinite olarak calisacak bir “i” degeri ne olabilir ?
Onceki bolumde kullandigimiz Double.NaN disinda bir deger bulmaliyiz.
while (i != i + 0) { }
Bir sayiya 0 ekledigimizde kendisine esit olacaktir. Peki bu durumda uygun degerimiz ne olacaktir ?
Burada sartlandigimiz nokta i degiskeninin numeric bir deger olmasi , fakat + operatorunu String icin de kullanabiliriz.
+ operatoru overloaded olarak calismaktadir. String type icin toplama islemi degil (addition) , String concatenation islemini gerceklestirecektir.
Eger bir operand String , diger operator numeric bile olsa String concat islemi gerceklesecektir.
package _23.operator.overloading; public class OperatorOverloading { public static void main(String[] args) { String i = "Java!"; while (i != i + 0) { System.out.println(" + operator overloading..."); } } }
i degiskeni “Java” degerine sahip olacaktir ;
i+0 -> “Java0” olacaktir
“Java” != “Java0” true olacaktir bu nedenle sonsuz dongu olur.
+ ve += operatoru icin Java’da String concat isleminde overloaded durumu soz konusudur.
Ornegimizi calistirdigimizda ;
+ operator overloading... + operator overloading... + operator overloading... + operator overloading... + operator overloading... + operator overloading... + operator overloading... + operator overloading... .....
Github kaynak kodlar / Source Code ;
leventerguder/injavawetrust-puzzler
Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer
Leave a Reply