30 Aralık 2014 Salı

Operatörler

         Bugünkü konumuz operatörler olacak. Hepimizin yakından tanıdığı birçoğunu bildiğimiz şeyler, fakat gözden kaçan kısımları tekrardan ele alacağız. Umarım hepimiz için iyi bir yazı olur. Sözü fazla uzatmadan başlayalım.
Atama Operatörü ile başlayalım.
public class OperatorTest {
public static void main(String[] args) {
int i=257;
byte b=(byte)i; //daha önce de dediğimiz gibi byte ve 
                short s =(short) i; //shortlarda casting işlemi 
System.out.println(b+" " + s);  //1 257
}
}
Birlesik Atama Operatoru
public class OperatorTest {
public static void main(String[] args) {

int y = 10;
y -= 5; // y = y - 5;
y += 20; // y=y+20;
y *= 4; // y=y*4;
y /=25; //y=y/25;
System.out.println(y);  //4

int x = 3,z,m;
x *=2+5;
            z = 3 + 2 * 5; // yanlis  3+(2*5)=13
                m=3 *(2+5); //  dogru 3*(7) = 21
                System.out.println("z:"+z+"m:"+m);   
}

}
Eşitlik Operatörü
public class CompareReference {
public static void main(String[] args)  {
StringBuilder sb = new StringBuilder("referans");
StringBuilder sb2 = new StringBuilder("referans");
StringBuilder sb3=sb;
                String st="primative";
                String st2="primative";
                
System.out.println("sb==sb2 "+(sb==sb2)); //false
System.out.println("sb==sb3 "+(sb==sb3));  // true
System.out.println("sb2==sb3 "+(sb2==sb3));//false
                System.out.println("Stringler  "+(st==st2)); //true
                //eşitlik operatörü referansların içeriklerini kontrol edemez
                //fakat Stringleri gösterdiğimiz şekilde karşılaştırabilir
           
}

}
Tip Karsilastirma Operatoru
public class Test {
public static void main(String[] args) {

String name = "blogspot";
if (name instanceof String) {
System.out.println("name is a String");  // instanceof kontrolu // IS-A
}

int age = 24;
                Integer numara=23;
                // if(age instanceof int) {} //derleme hatasi
// primitive tipler icin instanceof kontrolu yapilamaz.
// if(age instanceof Integer){} //derleme hatasi  // 
                if(numara instanceof Integer){
                    System.out.println("bumara is a Integer");                
                }
                //int primative iken Integer Referanstır
}

}

instanceOf Kullanımı
abstract class Tiger{}

class Cat {}

interface IFace {}

public class Dog {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog instanceof Dog);
// farkli sinif hiyerasisinde bulunan siniflar arasinda instanceof 
// operatoru derleme hatasina neden olur.
                //System.out.println(dog instanceof Cat); // derleme hatasi 
                //System.out.println(dog instanceof Tiger);//soyut sınıfta için de geçerli
System.out.println(dog instanceof IFace); //false
//Bu durum interface icin soz konusu degildir.
}

}
Aritmetik Operatörler
public class StringConcatenation {
    
    public static void main(String[] args) {
String a = "java";
int b = 10;
int c = 5;
System.out.println(a + b + c);//java105
        System.out.println(b + c + a);//15java
        //ikisi arasındaki farka dikkat edin
        //2.cide b ve c int olduğundan toplandıktan sonra String ekleniyor!!
}

}

Artırma/Azaltma Operatörü
public class Test {
public static void main(String[] args) {
int i = 5;
int k = 5;
System.out.println(i++); // postfix 5
System.out.println(++k); // prefix  6

int t = 0;
int[][] a = { { 1, 2,3 }, { 4,5,6 }, { 7, 7,9 }};
System.out.println(a[t++][++t]); // a[0][2]=3
}

}

Şart Operatörü
public class Ternary {

public static void main(String[] args) {
int point = 75;
String result = point < 50 ? "Fail" : "Success";
System.out.println(result); //Success

String result2 = point < 50 ? "F" : point > 90 ? "A" : "B";
System.out.println(result2); //B
}
}

//Bitsel ve Mantıksal Opertörler
public class Bitwise {

public static void main(String[] args) {

int i1=6&8; 

//0110 --->6
//1000 --->8
//----- & ve islemi
//0000
System.out.println(i1);

byte b=7>>2;
//00000111 --->7
// 2 bit saga kaydirirsak
//00000001 --->1
System.out.println(b);


                int i=5; //ilk koşul uygunsa yeterli
if(i>4 || i/0>1){
System.out.println(i);
}

if(i>4 | i/0>1){ // tüm koşullara bakacağınan hata fırlatır(run)
System.out.println(i);
}
}

}

      Yazacaklarımızı kod içerisinde yazmaya çalıştık. Umarız faydalı bir yazı olmuştur. Ama unutmayın bunları daha iyi anlayabilmeniz için daha çok örnek yaparsanız iyi olur.

Kaynakça
http://www.injavawetrust.com/pure-java-39-operators-01/
http://www.injavawetrust.com/pure-java-40-operators-02/
http://www.injavawetrust.com/pure-java-41operators-03/
http://www.injavawetrust.com/pure-java-42-operators-04/

Hiç yorum yok:

Yorum Gönder