Ders İçeriği

Java programlama dilinde kod yazmaya başlamadan önce, dilin temel sözdizimi kurallarını anlamak çok önemlidir. Bu bölüm, Java programlarının yapı taşlarını, değişkenleri, veri tiplerini, operatörleri ve kontrol yapılarını kapsayacaktır. Bu temel bilgiler, daha karmaşık Java uygulamaları geliştirmek için sağlam bir zemin oluşturacaktır.

İlk Java Programımız: "Merhaba Dünya!"

Hemen hemen her programlama dilinde olduğu gibi, Java öğrenmeye de klasik "Merhaba Dünya!" programı ile başlayalım. Bu basit program, Java kodunun temel yapısını anlamamıza yardımcı olacaktır.

public class MerhabaDunya {
    public static void main(String[] args) {
        System.out.println("Merhaba Dünya!");
    }
}

Bu kod parçasını adım adım inceleyelim:

  • public class MerhabaDunya: Her Java uygulaması, bir veya daha fazla sınıftan oluşur. class anahtar kelimesi bir sınıf tanımlar ve MerhabaDunya sınıfın adıdır. public erişim belirleyicisi, bu sınıfın her yerden erişilebilir olduğunu belirtir. Sınıf adı, dosya adıyla aynı olmalıdır (yani MerhabaDunya.java).
  • public static void main(String[] args): Bu, Java programlarının yürütülmeye başladığı ana metottur. Java Sanal Makinesi (JVM), bir programı çalıştırdığında ilk olarak bu metodu arar ve yürütür.
    • public: Bu metodun her yerden erişilebilir olduğunu belirtir.
    • static: Bu metodun bir nesne oluşturulmadan doğrudan sınıf adı üzerinden çağrılabileceğini belirtir.
    • void: Bu metodun herhangi bir değer döndürmediğini belirtir.
    • main: Metodun adıdır. Java programlarının başlangıç noktasıdır.
    • (String[] args): Bu, komut satırından programa geçirilebilecek argümanları tutan bir String dizisidir.
  • System.out.println("Merhaba Dünya!");: Bu satır, konsola "Merhaba Dünya!" metnini yazdırır. System sınıfı, standart giriş/çıkış ve hata akışlarına erişim sağlar. out nesnesi, standart çıkış akışını temsil eder ve println() metodu, verilen metni yazdırıp yeni bir satıra geçer.

Değişkenler ve Veri Tipleri

Değişkenler, programlama sırasında verileri depolamak için kullanılan bellek konumlarıdır. Java, statik tipli bir dildir, yani bir değişken tanımlandığında veri tipi belirtilmelidir ve bu veri tipi daha sonra değiştirilemez.

Java'da iki ana veri tipi kategorisi vardır:

  1. İlkel (Primitive) Veri Tipleri: Önceden tanımlanmış, basit veri tipleridir.

    • Tam Sayılar:
      • byte: 8-bit, -128 ile 127 arası.
      • short: 16-bit, -32,768 ile 32,767 arası.
      • int: 32-bit, yaklaşık -2 milyar ile 2 milyar arası (en sık kullanılan).
      • long: 64-bit, çok büyük tam sayılar için.
    • Ondalıklı Sayılar:
      • float: 32-bit, tek duyarlıklı kayan noktalı sayı.
      • double: 64-bit, çift duyarlıklı kayan noktalı sayı (en sık kullanılan).
    • Karakter:
      • char: 16-bit Unicode karakter.
    • Mantıksal:
      • booleantrue veya false değerlerini alır.
  2. Referans (Reference) Veri Tipleri: Nesneleri temsil ederler. Sınıflar, arayüzler, diziler ve String gibi tipler referans tipleridir. Bu tipler, bellekteki nesnelerin adreslerini (referanslarını) tutarlar.

Değişken Tanımlama ve Atama:

int yas = 30; // int tipinde yas adında bir değişken tanımla ve 30 değerini ata
double fiyat = 99.99; // double tipinde fiyat değişkeni
char harf = 'A'; // char tipinde harf değişkeni
boolean aktif = true; // boolean tipinde aktif değişkeni
String isim = "Ahmet"; // String tipinde isim değişkeni (String bir sınıftır, ilkel değildir)

Operatörler

Operatörler, değişkenler ve değerler üzerinde işlemler yapmak için kullanılır. Java'da çeşitli operatör türleri bulunur:

  • Aritmetik Operatörler: + (toplama), - (çıkarma), * (çarpma), / (bölme), % (modül - kalan).
  • Atama Operatörleri: = (atama), +=-=*= vb. (bileşik atama).
  • Karşılaştırma Operatörleri: == (eşit mi), != (eşit değil mi), > (büyük mü), < (küçük mü), >= (büyük eşit mi), <= (küçük eşit mi).
  • Mantıksal Operatörler: && (VE), || (VEYA), ! (DEĞİL).
  • Arttırma/Azaltma Operatörleri: ++ (bir arttırma), -- (bir azaltma).
int a = 10, b = 5;
int toplam = a + b; // 15
boolean esitMi = (a == b); // false
boolean kosul = (a > 0 && b < 10); // true

Kontrol Yapıları

Kontrol yapıları, programın akışını kontrol etmek için kullanılır. Koşullu ifadeler ve döngüler en yaygın kontrol yapılarıdır.

Koşullu İfadeler (if-else, switch)

  • if-else Yapısı: Belirli bir koşulun doğru olup olmadığına bağlı olarak farklı kod bloklarını yürütür.

int not = 75;
if (not >= 50) {
    System.out.println("Geçtiniz!");
} else {
    System.out.println("Kaldınız.");
}

switch Yapısı: Bir değişkenin farklı değerlerine göre farklı kod bloklarını yürütmek için kullanılır.

int gun = 3;
String gunAdi;
switch (gun) {
    case 1:
        gunAdi = "Pazartesi";
        break;
    case 2:
        gunAdi = "Salı";
        break;
    case 3:
        gunAdi = "Çarşamba";
        break;
    default:
        gunAdi = "Geçersiz Gün";
        break;
}
System.out.println(gunAdi); // Çarşamba

Döngüler (for, while, do-while)

  • for Döngüsü: Belirli bir sayıda tekrar eden işlemler için kullanılır.

for (int i = 0; i < 5; i++) {
    System.out.println("Sayı: " + i);
}

while Döngüsü: Bir koşul doğru olduğu sürece kod bloğunu yürütür.

int i = 0;
while (i < 5) {
    System.out.println("Sayı: " + i);
    i++;
}

do-while Döngüsü: Kod bloğunu en az bir kez yürütür, ardından koşulu kontrol eder.

int i = 0;
do {
    System.out.println("Sayı: " + i);
    i++;
} while (i < 5);

Bu temel sözdizimi kuralları, Java programlamanın temelini oluşturur. Bu kavramları iyi anlamak, daha karmaşık konulara geçiş yaparken size büyük kolaylık sağlayacaktır. Bir sonraki derste Nesne Yönelimli Programlama (OOP) kavramlarına derinlemesine dalacağız.