Ana içeriğe geç

🔢 Java Operatörleri Nasıl Kullanılır? (Tekli, İkili ve Üçlü)

Java programlamanın en temel konularından biri olan operatörler (operators), değişkenler ve değerler üzerinde işlem yapmayı sağlar.
Bu rehberde, tek işlenenli (Unary), iki işlenenli (Binary) ve üç işlenenli (Ternary) operatörleri uygulamalı olarak öğreneceksiniz.
Ayrıca aritmetik, atama, ilişkisel, mantıksal ve öncelik (precedence) kurallarını da JShell ortamında test edeceksiniz.


⚙️ Gerekli Ön Koşullar

Kodları denemek için aşağıdaki bileşenler hazır olmalı:

  • Java 11+ (JDK) kurulu olmalı
  • JShell (REPL) terminalde çalışır durumda olmalı
jshell

komutuyla açabilir, /exit yazarak çıkabilirsiniz.


1️⃣ Tekli Operatörler (Unary Operators)

Tekli operatörler, tek bir işlenen üzerinde işlem yapar ve genellikle kodu sadeleştirir.

🔹 Artırma (++) ve Azaltma (--)

int cevap = 42;
System.out.println("Ön Artırma: " + ++cevap);

➡️ Pre-increment: değeri önce artırır, sonra kullanır.

int cevap = 42;
System.out.println("Son Artırma: " + cevap++);
System.out.println("Nihai değer: " + cevap);

➡️ Post-increment: değeri önce kullanır, sonra artırır.

🔹 DEĞİL Operatörü (!)

boolean bulutAktif = !true;
System.out.println(bulutAktif);

➡️ Mantıksal tamamlayıcı operatör olarak boolean değeri tersine çevirir.

Örneğin:

String node = "tr1-node01";
boolean uygunDegil = !node.contains("tr1");

➡️ “tr1” içermiyorsa true döner.


2️⃣ İkili Operatörler (Binary Operators)

İkili operatörler, iki işlenen üzerinde işlem yapar. Bu grupta aritmetik, atama, karşılaştırma ve mantıksal operatörler yer alır.

🔸 Aritmetik Operatörler

int toplam = 30 + 12;
System.out.println("Sonuç: " + toplam);

➡️ Toplama, çıkarma (-), çarpma (*), bölme (/) ve mod (%) işlemlerini yapar.

🔸 Atama ve Bileşik Atama

int kredi = 100;
kredi += 20; // kredi = kredi + 20
System.out.println("Yeni Kredi: " + kredi);

➡️ +=, -=, *=, /= kodu kısaltır, anlamı korur.

🔸 Casting (Tür Dönüştürme)

int buyukDeger = 32768;
short kisaDeger = (short) buyukDeger;
System.out.println(kisaDeger);

➡️ Kapasite aşarsa overflow oluşur (32768 → -32768).


3️⃣ İlişkisel Operatörler (Relational Operators)

İki değeri karşılaştırır ve boolean (true/false) döndürür.

OperatörAçıklama
==Eşit mi
!=Eşit değil mi
>Büyüktür
<Küçüktür
>=Büyük veya eşit
<=Küçük veya eşit
System.out.println(4 > 5); // false
🧩 Referans Tiplerde Eşitlik: == vs equals()
String s1 = new String("evet");
String s2 = new String("evet");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true

➡️ == bellek adresini karşılaştırır, ➡️ equals() ise değerlerin eşitliğini kontrol eder.

🔸 instanceof Operatörü

String mesaj = "merhaba";
System.out.println(mesaj instanceof String); // true

➡️ Nesnenin belirli bir sınıfın örneği olup olmadığını denetler.


4️⃣ Mantıksal Operatörler (Logical Operators)

Boolean değerler üzerinde işlem yapar.

OperatörAçıklama
&&VE (AND) — Her iki koşul da doğruysa true
`
!DEĞİL (NOT) — Boolean değeri tersine çevirir
boolean javaEglenceli = true;
Boolean nullDeger = null;
System.out.println(javaEglenceli || nullDeger);

➡️ || kısa devre (short-circuit) sayesinde sağ tarafı değerlendirmez. Normal | kullansaydınız NullPointerException alırdınız.


5️⃣ Üçlü Operatör (Ternary Operator)

Koşula bağlı olarak iki değerden birini döndürür.

boolean javaGuzel = true;
String cevap = javaGuzel ? "evet" : "hayır";
System.out.println("Java öğrenmeli miyim: " + cevap);

➡️ true ise “evet”, false ise “hayır” döner.


6️⃣ Operatör Önceliği (Precedence)

Birden fazla operatör varsa öncelik sırası devreye girer.

ÖncelikOperatör(ler)Açıklama
1++, --Ön/son artırma ve azaltma
2*, /, %Çarpma, bölme ve mod alma
3+, -Toplama ve çıkarma
4<, >, <=, >=Karşılaştırma (büyüklük/küçüklük)
5==, !=Eşitlik ve eşit olmama kontrolü
6&&Mantıksal VE (AND)
7`
8=, +=, -=, *=, /=Atama ve bileşik atama operatörleri
int x = 1 + 10 / 2;
System.out.println(x); // 6

➡️ Önce 10/2, sonra toplama yapılır. Temiz kod için karmaşık ifadelerde her zaman parantez kullanın:

int x = 1 + (10 / 2);

💬 Sıkça Sorulan Sorular (SSS)

  1. instanceof operatörü ne işe yarar?

Bir nesnenin belirli bir sınıfın veya arayüzün örneği olup olmadığını anlamak için kullanılır.

  1. final değişkenlerde ++ kullanılabilir mi?

Hayır, final değişken sabittir, değeri değiştirilemez.

  1. == ile equals() arasındaki fark nedir?

== adres karşılaştırır, equals() değer karşılaştırır.

  1. jshell nedir?

Java 9 ile gelen bir REPL aracıdır. Kodları anında çalıştırarak sonucu gösterir.

  1. Kısa devre (short-circuit) neden önemli?

Null olan değişkenlerde hata (NullPointerException) riskini ortadan kaldırır.


✅ Sonuç

Bu rehberde, Java’daki tüm operatör türlerini (tekli, ikili, üçlü) ve öncelik kurallarını öğrendiniz. Artık aritmetik, mantıksal ve karşılaştırma işlemlerini doğru şekilde kullanabilir ve temiz kod yazabilirsiniz.

☁️ Bir adım öteye geçin: Bu örnekleri Rabisu Bulut üzerinde kendi Java ortamınızda test edin ve öğreniminizi güçlendirin!