İlk Java Programınızı Nasıl Yazarsınız?
Java, dünyanın en popüler programlama dillerinden biridir. Geniş kullanım alanı, platform bağımsızlığı ve güçlü ekosistemi sayesinde mobil uygulamalardan (özellikle Android), büyük ölçekli kurumsal sistemlere, web uygulamalarına ve hatta bilimsel araştırmalara kadar pek çok alanda tercih edilmektedir. Eğer programlama dünyasına adım atmak istiyorsanız veya mevcut becerilerinize yeni bir dil eklemeyi düşünüyorsanız, Java harika bir başlangıç noktasıdır. Bu makale, Java ile ilk programınızı yazma sürecini adım adım açıklayarak, temel kavramları anlamanıza ve kendi kodunuzu çalıştırmanıza yardımcı olacaktır.
Java’ya Başlamadan Önce Bilmeniz Gerekenler
Her yeni yolculukta olduğu gibi, Java programlama macerasına atılmadan önce bazı temel gereksinimleri ve kavramları anlamak önemlidir. Bu bölümde, Java’nın ne olduğunu, neden bu kadar popüler olduğunu ve geliştirme ortamınızı kurmak için nelere ihtiyacınız olduğunu inceleyeceğiz.
Java Nedir ve Neden Önemlidir?
Java, Sun Microsystems tarafından geliştirilen ve şu anda Oracle tarafından sürdürülen, nesne yönelimli, sınıf tabanlı bir programlama dilidir. “Bir kere yaz, her yerde çalıştır” (Write once, run anywhere – WORA) felsefesiyle tasarlanmıştır. Bu, Java kodunun derlendiğinde platformdan bağımsız bir ara kod (bytecode) üretmesi ve bu bytecode’un herhangi bir Java Sanal Makinesi (JVM) üzerinde çalışabilmesi anlamına gelir. Bu özelliği, Java’yı farklı işletim sistemleri ve cihazlar arasında taşınabilir kılar.
Java’nın popülaritesi sadece taşınabilirliğinden gelmez. Aynı zamanda güçlü bir topluluğa, zengin kütüphane desteğine, yüksek performansa ve güvenlik özelliklerine sahiptir. Bu faktörler, Java’yı hem bireysel geliştiriciler hem de büyük kuruluşlar için cazip bir seçenek haline getirir.
Gerekli Araçlar: JDK ve IDE
İlk Java programınızı yazmak ve çalıştırmak için iki temel araca ihtiyacınız olacak:
* Java Development Kit (JDK): JDK, Java uygulamalarını geliştirmek için gerekli tüm araçları (derleyici, JVM, kütüphaneler vb.) içeren bir yazılım paketidir. Java kodu yazmak ve derlemek için mutlak bir gerekliliktir. JDK’nın içinde Java Runtime Environment (JRE) de bulunur; bu, derlenmiş Java programlarını çalıştırmak için gereken sanal makineyi ve kütüphaneleri içerir.
* Entegre Geliştirme Ortamı (IDE) veya Metin Editörü: Kodunuzu yazacağınız bir araca ihtiyacınız var. Başlangıçta basit bir metin editörü (Notepad, Sublime Text, VS Code) kullanabilirsiniz. Ancak, daha karmaşık projeler için bir Entegre Geliştirme Ortamı (IDE) kullanmak çok daha verimli olacaktır. IDE’ler, kod tamamlama, hata ayıklama, proje yönetimi ve birçok diğer kullanışlı özellik sunar. Popüler Java IDE’leri arasında IntelliJ IDEA, Eclipse ve NetBeans bulunur. Bu makalede hem komut satırı hem de IDE kullanımı örneklerini göreceğiz.
Geliştirme Ortamının Kurulumu
Java programlamaya başlamadan önce, JDK’yı sisteminize kurmanız ve ortam değişkenlerini ayarlamanız gerekmektedir. Eğer bir IDE kullanacaksanız, onu da kurmanız gerekecektir.
JDK Kurulumu
1. JDK İndirme: Oracle’ın resmi web sitesinden (oracle.com/java/technologies/downloads/) işletim sisteminize uygun en son JDK sürümünü indirin. Genellikle “LTS” (Uzun Süreli Destek) sürümlerini tercih etmek iyi bir fikirdir.
2. Kurulum Sihirbazını Çalıştırma: İndirdiğiniz dosyayı çalıştırın ve kurulum sihirbazındaki adımları takip edin. Çoğu durumda, varsayılan ayarları kabul edebilirsiniz. Kurulum dizinini not almak faydalı olabilir (örneğin, C:\Program Files\Java\jdk-17).
3. Ortam Değişkenlerini Ayarlama (PATH): JDK’nın derleyici ve diğer araçlarına komut satırından erişebilmek için JAVA_HOME ve Path ortam değişkenlerini ayarlamanız gerekir.
* Windows: “Ortam Değişkenleri”ni arayın (Sistem Özellikleri > Gelişmiş > Ortam Değişkenleri).
* Yeni bir sistem değişkeni oluşturun: Değişken adı JAVA_HOME, Değişken değeri JDK kurulum dizininiz (örneğin, C:\Program Files\Java\jdk-17).
* Path değişkenini bulun, düzenleyin ve %JAVA_HOME%\bin değerini ekleyin.
* macOS/Linux: ~/.bash_profile, ~/.zshrc veya ~/.bashrc dosyanıza aşağıdaki satırları ekleyin (JDK sürümünüze göre yolu güncelleyin):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Ardından terminali yeniden başlatın veya source ~/.bash_profile komutunu çalıştırın.
Kurulumu Doğrulama
Komut istemcisini (Windows’ta cmd, macOS/Linux’ta Terminal) açın ve aşağıdaki komutları çalıştırın:
java -version
javac -version
Eğer hem java hem de javac komutları JDK sürümünüzü gösteriyorsa, kurulum başarılı demektir. Aksi takdirde, ortam değişkeni ayarlarınızı kontrol etmeniz gerekebilir.
IDE Kurulumu (İsteğe Bağlı ama Önerilir)
Eğer bir IDE kullanmayı planlıyorsanız (ki başlangıç seviyesinde bile şiddetle tavsiye edilir), seçtiğiniz IDE’nin (IntelliJ IDEA Community Edition, Eclipse IDE for Java Developers) resmi web sitesinden indirme ve kurulum adımlarını takip edin. IDE’ler genellikle JDK’yı otomatik olarak algılar veya kurulum sırasında kolayca yapılandırma seçeneği sunar.
İlk Java Programınız: “Merhaba Dünya!”
Programlama dünyasına adım atmanın geleneksel yolu, ekrana “Merhaba Dünya!” yazdıran basit bir program yazmaktır. Bu, Java’da nasıl yapılır, adım adım inceleyelim.
Programın Yapısı ve Kodu
Bir Java programı her zaman bir sınıf içinde yer alır. En basit Java programı aşağıdaki gibi görünür:
// Bu, tek satırlık bir yorumdur.
/*
Bu ise
çok satırlı bir
yorumdur.
*/
public class MerhabaDunya {
public static void main(String[] args) {
System.out.println("Merhaba, Dünya!");
}
}
Kodun Detaylı Açıklaması
Şimdi bu kodun her bir parçasını inceleyelim:
// Bu, tek satırlık bir yorumdur. ve / ... /: Yorumlar, kodun okunabilirliğini artırmak için kullanılır. Java derleyicisi bunları yok sayar. Tek satırlık yorumlar // ile başlar, çok satırlık yorumlar / ile başlar ve */ ile biter.
* public class MerhabaDunya { ... }:
* class: Java’da her şey sınıflar etrafında döner. class anahtar kelimesi yeni bir sınıf tanımlamak için kullanılır.
* MerhabaDunya: Bu, sınıfın adıdır. Java’da sınıf adları büyük harfle başlamalı ve her kelimenin ilk harfi büyük olmalıdır (CamelCase kuralı). Sınıf adları, dosya adıyla aynı olmalıdır (yani bu sınıf MerhabaDunya.java olarak kaydedilmelidir).
* public: Bir erişim belirleyicidir. public olması, bu sınıfın herhangi bir yerden erişilebilir olduğu anlamına gelir.
* public static void main(String[] args) { ... }: Bu, Java programlarının yürütülmeye başladığı ana metottur (fonksiyon).
* public: Bu metodun herkese açık olduğu, yani Java Sanal Makinesi (JVM) tarafından çağrılabileceği anlamına gelir.
* static: Bu metodun bir nesne oluşturulmadan doğrudan sınıf adı üzerinden çağrılabileceği anlamına gelir. main metodu programın başlangıç noktası olduğu için static olmak zorundadır.
* void: Bu metodun herhangi bir değer döndürmediği anlamına gelir.
* main: Bu, özel bir metod adıdır. JVM, bir Java programını çalıştırırken bu isimdeki metodu arar ve onu yürütmeye başlar.
* (String[] args): Bu, main metodunun parametre listesidir. String[] args, program çalıştırılırken komut satırından geçilebilecek string dizisi tipindeki argümanları temsil eder. Şimdilik bu kısmı çok düşünmenize gerek yok, ancak standart bir Java main metodu tanımının parçasıdır.
* System.out.println("Merhaba, Dünya!");: Bu satır, ekrana “Merhaba, Dünya!” metnini yazdırır.
* System: Java’nın standart kütüphanesinde yer alan bir sınıftır.
* out: System sınıfının statik bir üyesidir ve bir çıktı akışını temsil eder (genellikle konsol).
* println(): out nesnesinin bir metodudur. Parantez içindeki değeri konsola yazdırır ve ardından yeni bir satıra geçer (print line). Eğer yeni satıra geçmek istemezseniz print() metodunu kullanabilirsiniz.
* "Merhaba, Dünya!": Ekrana yazdırılacak olan string (metin) değeridir. String’ler her zaman çift tırnak (“) arasına alınır.
* Her Java ifadesi noktalı virgül (;) ile sona ermelidir.
Dosyayı Kaydetme
Yukarıdaki kodu bir metin editörüne kopyalayın ve MerhabaDunya.java adıyla kaydedin. Dosya adının sınıf adıyla (büyük/küçük harf duyarlılığı dahil) tam olarak aynı olması gerektiğini unutmayın. Aksi takdirde derleyici hata verecektir.
Programı Derleme ve Çalıştırma (Komut Satırı)
JDK’yı doğru bir şekilde kurduysanız, programınızı komut satırından derleyip çalıştırabilirsiniz.
1. Komut İstemi/Terminal Açma
Programı kaydettiğiniz dizine gidin. Örneğin, dosyayı C:\Users\KullaniciAdi\JavaProjeleri klasörüne kaydettiyseniz, komut istemcisini açın ve aşağıdaki komutu kullanarak bu dizine gidin:
cd C:\Users\KullaniciAdi\JavaProjeleri
macOS veya Linux’ta benzer şekilde cd /home/kullaniciadi/JavaProjeleri gibi bir komut kullanın.
2. Kodu Derleme
Java kaynak kodunu ( .java uzantılı dosya) derlemek için javac (Java Compiler) komutunu kullanın:
javac MerhabaDunya.java
Eğer kodunuzda bir yazım hatası veya sentaks hatası yoksa, bu komut hiçbir çıktı vermeyecek ve aynı dizinde MerhabaDunya.class adında bir dosya oluşturacaktır. Bu .class dosyası, Java bytecode’unu içerir ve JVM tarafından anlaşılır bir formattır.
Yaygın Derleme Hataları:
* error: class MerhabaDunya is public, should be declared in a file named MerhabaDunya.java: Dosya adınız ile sınıf adınız uyuşmuyor.
* error: cannot find symbol: Genellikle bir değişken adı, metod adı veya sınıf adının yanlış yazılması durumunda oluşur.
* error: ';' expected: Bir noktalı virgül (;) eksik.
3. Programı Çalıştırma
Derlenmiş bytecode’u çalıştırmak için java komutunu kullanın (bu, JVM’yi başlatır ve .class dosyasını yorumlar):
java MerhabaDunya
java komutunu kullanırken .class uzantısını belirtmeyin. Eğer her şey yolundaysa, konsolda aşağıdaki çıktıyı görmelisiniz:
Merhaba, Dünya!
Tebrikler! İlk Java programınızı başarıyla derlediniz ve çalıştırdınız.
Bir IDE Kullanarak Programı Çalıştırma
IDE’ler (Entegre Geliştirme Ortamları), özellikle büyük projelerde geliştirme sürecini önemli ölçüde hızlandırır ve basitleştirir. IntelliJ IDEA veya Eclipse gibi bir IDE kullanarak “Merhaba Dünya” programını nasıl çalıştıracağınızı görelim.
1. Yeni Bir Proje Oluşturma
* IntelliJ IDEA:
* IDE’yi açın ve “New Project” seçeneğini seçin.
* Sol menüden “Java”yı seçin.
* “Project SDK” olarak kurulu JDK’nızı seçtiğinizden emin olun.
* “Next” ve ardından “Next” düğmelerine tıklayın.
* Projenize bir isim verin (örneğin, IlkJavaProjem) ve “Finish” düğmesine tıklayın.
* Eclipse:
* IDE’yi açın ve “File > New > Java Project” seçeneğini seçin.
* Projenize bir isim verin (örneğin, IlkJavaProjem).
* “JRE” ayarlarının kurulu JDK’nızı gösterdiğinden emin olun.
* “Finish” düğmesine tıklayın.
2. Yeni Bir Sınıf Oluşturma
Oluşturduğunuz proje içinde bir Java sınıfı oluşturmanız gerekir:
* Proje yapısında src (source) klasörüne sağ tıklayın.
* “New > Java Class” (IntelliJ) veya “New > Class” (Eclipse) seçeneğini seçin.
* Sınıf adını MerhabaDunya olarak girin ve “Enter” tuşuna basın.
Bu, MerhabaDunya.java adında boş bir sınıf dosyası oluşturacaktır.
3. Kodu Yazma
Oluşturulan MerhabaDunya.java dosyasını açın ve main metodunu ekleyerek kodu yazın:
public class MerhabaDunya {
public static void main(String[] args) {
System.out.println("Merhaba, Dünya!");
}
}
IDE’ler genellikle kod tamamlama (autocomplete) özelliği sunar. Örneğin, syso yazıp Tab tuşuna basarak System.out.println() satırını otomatik olarak oluşturabilirsiniz.
4. Programı Çalıştırma
IDE’ler, kodu derleme ve çalıştırma adımlarını sizin için otomatikleştirir.
* IntelliJ IDEA:
* main metodunun solundaki yeşil oynat düğmesine (play button) tıklayın ve “Run ‘MerhabaDunya.main()'” seçeneğini seçin.
* Alternatif olarak, üst menüden “Run > Run ‘MerhabaDunya'” seçeneğini kullanabilirsiniz.
* Eclipse:
* Kodunuzu kaydettikten sonra, üst menüdeki yeşil oynat düğmesine tıklayın.
* Alternatif olarak, MerhabaDunya.java dosyasına sağ tıklayın ve “Run As > Java Application” seçeneğini seçin.
IDE’nin alt kısmındaki “Console” (Konsol) penceresinde “Merhaba, Dünya!” çıktısını görmelisiniz. IDE’ler, hata ayıklama (debugging) ve diğer gelişmiş özelliklerle programlama deneyiminizi çok daha verimli hale getirir.
“Merhaba Dünya”nın Ötesinde: Temel Java Kavramları
Artık ilk programınızı çalıştırdığınıza göre, Java’nın temel yapı taşlarına kısa bir göz atalım. Bu kavramlar, daha karmaşık programlar yazmak için temel oluşturacaktır.
Değişkenler ve Veri Tipleri
Değişkenler, programınızda veri depolamak için kullanılan isimlendirilmiş bellek konumlarıdır. Java, statik tipli bir dildir, yani bir değişkeni tanımlarken veri tipini belirtmeniz gerekir.
* int (Integer): Tam sayıları depolamak için (örneğin, 10, -5).
int yas = 30;
* double: Ondalıklı sayıları depolamak için (örneğin, 3.14, -0.5).
double pi = 3.14159;
* boolean: Sadece iki değer alabilen mantıksal değerler (doğru/yanlış – true/false).
boolean isActive = true;
* char: Tek bir karakteri depolamak için (tek tırnak arasına alınır, örn. ‘A’, ‘7’).
char ilkHarf = 'J';
* String: Karakter dizilerini (metinleri) depolamak için (çift tırnak arasına alınır, String aslında bir sınıftır, ilkel bir veri tipi değildir).
String ad = "Ahmet";
* Değişken Tanımlama ve Atama:
int sayi; // Değişken tanımlama
sayi = 100; // Değere atama
int digerSayi = 200; // Tanımlama ve atama aynı anda
Operatörler
Operatörler, değişkenler ve değerler üzerinde işlemler yapmak için kullanılır.
Aritmetik Operatörler: + (toplama), - (çıkarma), (çarpma), / (bölme), % (modül – kalanı bulma).
int a = 10, b = 3;
System.out.println(a + b); // 13
System.out.println(a / b); // 3 (tam sayı bölmesi)
System.out.println(a % b); // 1
Atama Operatörleri: = (atama), +=, -=, =, /=, %=.
int x = 5;
x += 3; // x şimdi 8 (x = x + 3)
* Karşılaştırma Operatörleri: == (eşit mi), != (eşit değil mi), < (küçük mü), > (büyük mü), <= (küçük eşit mi), >= (büyük eşit mi). Boolean bir değer döndürürler.
boolean esitMi = (5 == 5); // true
boolean buyukMu = (10 > 20); // false
* Mantıksal Operatörler: && (VE), || (VEYA), ! (DEĞİL). Boolean ifadeleri birleştirmek veya tersine çevirmek için kullanılırlar.
boolean kosul1 = true;
boolean kosul2 = false;
System.out.println(kosul1 && kosul2); // false
System.out.println(kosul1 || kosul2); // true
System.out.println(!kosul1); // false
Kontrol Akışı
Kontrol akışı yapıları, programınızın hangi kod bloklarını hangi koşullar altında yürüteceğini belirlemenizi sağlar.
* if-else İfadeleri: Bir koşula bağlı olarak farklı kod bloklarını çalıştırmak için kullanılır.
int not = 75;
if (not >= 50) {
System.out.println("Geçtiniz!");
} else {
System.out.println("Kaldınız!");
}
// if-else if-else yapısı
int puan = 85;
if (puan >= 90) {
System.out.println("A");
} else if (puan >= 80) {
System.out.println("B");
} else {
System.out.println("C");
}
* for Döngüleri: Belirli bir sayıda veya bir dizi/koleksiyon üzerinde yineleme yapmak için kullanılır.
for (int i = 0; i < 5; i++) {
System.out.println("Döngü Sayısı: " + i);
}
// Çıktı:
// Döngü Sayısı: 0
// Döngü Sayısı: 1
// ...
// Döngü Sayısı: 4
* while Döngüleri: Bir koşul doğru olduğu sürece bir kod bloğunu tekrarlamak için kullanılır.
int sayac = 0;
while (sayac < 3) {
System.out.println("Sayac: " + sayac);
sayac++; // Sayacı artırmayı unutmayın, aksi takdirde sonsuz döngü oluşur!
}
// Çıktı:
// Sayac: 0
// Sayac: 1
// Sayac: 2
Kullanıcıdan Girdi Alma
Programlarınızın kullanıcılarla etkileşim kurması için kullanıcıdan girdi almanız gerekebilir. Java'da bunun en yaygın yolu Scanner sınıfını kullanmaktır.
import java.util.Scanner; // Scanner sınıfını dahil etmeliyiz
public class KullaniciGirdisi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scanner nesnesi oluştur
System.out.print("Adınız nedir? ");
String ad = scanner.nextLine(); // Kullanıcıdan metin girişi al
System.out.print("Yaşınız kaç? ");
int yas = scanner.nextInt(); // Kullanıcıdan tam sayı girişi al
System.out.println("Merhaba, " + ad + "! " + yas + " yaşındasınız.");
scanner.close(); // Kaynakları serbest bırakmak için scanner'ı kapat
}
}
* import java.util.Scanner;: Scanner sınıfı java.util paketinde bulunduğu için, onu kullanmadan önce bu paketi import etmeliyiz.
* Scanner scanner = new Scanner(System.in);: System.in standart girdi akışını (klavye) temsil eder. Scanner nesnesini bu akıştan okumak için oluştururuz.
* scanner.nextLine();: Kullanıcıdan bir satır metin okur.
* scanner.nextInt();: Kullanıcıdan bir tam sayı okur. Benzer şekilde nextDouble(), nextBoolean() gibi metotlar da vardır.
* scanner.close();: Scanner nesnesi bir sistem kaynağı kullandığı için, işiniz bittiğinde onu kapatmanız iyi bir uygulamadır.
Başlangıç Seviyesi İçin En İyi Uygulamalar
Programlama yolculuğunuzda başarılı olmak için bazı temel en iyi uygulamaları benimsemek önemlidir.
* Kodunuzu Yorumlayın: Kodunuzu açıklayan yorumlar ekleyin. Bu, hem sizin hem de başkalarının kodunuzu daha sonra anlamasına yardımcı olur.
* Adlandırma Kurallarına Uyun: Java'nın standart adlandırma kurallarına uyun (CamelCase). Sınıf adları büyük harfle başlar (MyClass), metot ve değişken adları küçük harfle başlar (myMethod, myVariable), sabitler tamamen büyük harfle yazılır (MY_CONSTANT).
* Okunabilir Kod Yazın: Kodunuzu düzgün bir şekilde girintileyin ve boşluklar kullanın. Bu, kodunuzun okunabilirliğini artırır. IDE'ler genellikle kodunuzu otomatik olarak formatlayabilir.
* Küçük Adımlarla İlerleyin: Büyük bir program yazmaya çalışmak yerine, küçük, yönetilebilir parçalar halinde ilerleyin. Her bir parçayı test edin ve doğru çalıştığından emin olun.
* Hata Ayıklamayı Öğrenin: Programınızda hatalar (bug'lar) olması kaçınılmazdır. IDE'lerin sunduğu hata ayıklama (debugger) araçlarını kullanarak kodunuzdaki sorunları bulmayı ve çözmeyi öğrenin.
* Bol Bol Pratik Yapın: Programlama, pratikle geliştirilen bir beceridir. Ne kadar çok kod yazarsanız, o kadar iyi olursunuz. Farklı problemler çözmeye çalışın.
* Kaynakları Kullanın: İnternet, Java öğrenmek için harika bir kaynaktır. Oracle'ın resmi Java belgeleri, Stack Overflow, YouTube eğitimleri ve çeşitli bloglar gibi kaynaklardan faydalanın.
Sonuç ve Sonraki Adımlar
Bu makalede, Java geliştirme ortamınızı kurmaktan ilk "Merhaba Dünya!" programınızı yazmaya ve çalıştırmaya kadar temel adımları attınız. Ayrıca, değişkenler, operatörler, kontrol akışı ve kullanıcı girişi gibi Java'nın temel yapı taşlarına da giriş yaptınız. Bu, Java programlama yolculuğunuzun sadece başlangıcıdır.
Şimdi ne yapmalısınız?
1. Temel Kavramları Pekiştirin: Değişkenler, veri tipleri, operatörler, if-else ifadeleri ve döngüler gibi konuları daha derinlemesine öğrenin ve bolca pratik yapın.
2. Metotları Öğrenin: Kodunuzu daha düzenli ve tekrar kullanılabilir hale getirmek için kendi metotlarınızı (fonksiyonlarınızı) nasıl yazacağınızı öğrenin.
3. Nesne Yönelimli Programlama (OOP): Java, nesne yönelimli bir dildir. Sınıflar, nesneler, kalıtım, polimorfizm ve soyutlama gibi OOP kavramlarını anlamak, Java'da etkili programlar yazmak için kritik öneme sahiptir.
4. Diziler ve Koleksiyonlar: Birden fazla değeri depolamak için dizileri ve daha gelişmiş veri yapıları olan koleksiyonları (ArrayList, HashMap vb.) öğrenin.
5. Hata Yönetimi: Programınızda oluşabilecek hataları (exceptions) nasıl yöneteceğinizi öğrenin (try-catch blokları).
Java öğrenmek sabır ve sürekli pratik gerektiren bir süreçtir. Ancak, bu güçlü dilin sunduğu imkanlar ve kariyer fırsatları göz önüne alındığında, harcadığınız çabaya kesinlikle değecektir. Başarılar dileriz!