Java Nasıl Çalışır ve Java'nın Kod Yapısını Anlamak - Bölüm 2


Son yazımız 'Java Nedir ve Java'nın Tarihçesi'nde Java nedir, Java'nın özellikleri, yayın geçmişi ve adlandırılmasının yanı sıra Java'nın kullanıldığı yerleri detaylı olarak ele almıştık.

Bu yazımızda Java Programlama Dilinin işleyişini ve kod yapısını inceleyeceğiz. Devam etmeden önce, Java'nın "Bir Kez Yaz Her Yerde/Her Zaman Çalıştır (WORA)" ifadesinin, geliştirilen uygulamanın mimari açıdan tarafsız, Platformdan Bağımsız ve taşınabilir olmasını sağlamak anlamına geldiği akılda tutularak geliştirildiğini hatırlatmama izin verin.

Java'nın Çalışması

Bu hedefleri göz önünde bulundurarak Java, dört aşamada sınıflandırılabilecek aşağıdaki çalışma modeliyle geliştirildi.

1. Aşama

Kaynak dosyayı yazın. Bu dosya, Java Programlama Dili için belirlenmiş protokol içindeki tüm prosedür, yöntem, sınıf ve nesneleri içerir. Kaynak dosyanın adı sınıfın adı veya tam tersi olmalıdır. Kaynak dosya adı .java uzantısına sahip olmalıdır. Ayrıca dosya adı ve sınıf adı da büyük/küçük harfe duyarlıdır.

2. aşama

Java Kaynak Kodu dosyasını Java Derleyicisi aracılığıyla çalıştırın. Java Kaynak kodu Derleyicisi, kaynak dosyadaki hatayı ve sözdizimini kontrol eder. Tüm hataları ve uyarıları düzelterek Java derleyicisini tatmin etmeden kaynak kodunuzu derlemenize izin vermez.

Sahne 3

Derleyici sınıf dosyası oluşturur. Bu sınıf dosyaları, Kaynak kodu dosya adıyla aynı adı alır, ancak uzantı değişir. Kaynak dosya adı 'filename.java' uzantısına sahiptir; derleyici tarafından oluşturulan sınıf dosyasının uzantısı ise 'filename.class''tır. Bu sınıf dosyası bayt koduyla kodlanmıştır; bayt kodları sihir gibidir.

Aşama 4

Java Compiler tarafından oluşturulan bu sınıf dosyası taşınabilir ve mimari açıdan tarafsızdır. Bu sınıf dosyasını herhangi bir işlemci mimarisinde ve Platform/cihazda çalışacak şekilde taşıyabilirsiniz. Nerede olursanız olun bu kodu çalıştırmak için ihtiyacınız olan tek şey bir Java Sanal Makinesidir (JVM).

Şimdi bir örnek kullanarak yukarıdaki dört aşamayı anlayın. Burada küçük bir örnek Java Programı kodu verilmiştir. Aşağıdaki kodu anlamadıysanız endişelenmeyin. Şimdilik sadece nasıl çalıştığını anlayın.

public class MyFirstProgram
{
    public static void main(String[] args)
    {
        System.out.println("Hello Tecmint, This is my first Java Program");
    }
}

1. Bu programı yazdım ve MyFirstProgram sınıf adını tanımladım. Bu programın 'MyFirstProgram.java' olarak kaydedilmesi gerektiğine dikkat etmek önemlidir.

Yukarıdaki 1. aşamayı unutmayın – Sınıf adı ve dosya adı aynı olmalı ve dosya adı .java uzantısına sahip olmalıdır. Ayrıca Java büyük/küçük harfe duyarlıdır, dolayısıyla sınıf adınız 'MyFirstProgram' ise kaynak dosya adınız 'MyFirstProgram.java' olmalıdır.

Bunu 'İlkprogramım.java' veya 'ilkprogramım.java' ya da başka bir şekilde adlandıramazsınız. Kural olarak, sınıfınızı programın gerçekte ne yaptığına göre adlandırmak iyi bir fikirdir.

2. Bu Java Kaynağı dosyasını derlemek için onu Java derleyicisinden geçirmeniz gerekir. Java derleyicisi esas olarak kaynak kodunu herhangi bir hata ve uyarı açısından kontrol edecektir. Tüm sorunlar çözülene kadar kaynak kodunu derlemeyecektir. Java kaynak kodunu derlemek için şunu çalıştırmanız gerekir:

javac MyFirstProgram.java

Burada myfirstprogram.java kaynak dosyanın adıdır.

3. Başarılı bir derleme sonrasında, Java derleyicisinin aynı dizinde adı MyFirstProgram.class olan yeni bir dosya oluşturduğunu fark edeceksiniz.

Bu sınıf dosyası bayt kodlarıyla kodlanmıştır ve herhangi bir platformda, herhangi bir işlemci mimarisinde herhangi bir zamanda çalıştırılabilir. Sınıf dosyasını Linux'ta veya başka bir platformda JVM'nin (Java Sanal Makinesi) içinde şu şekilde çalıştırabilirsiniz:

java MyFirstProgram

Yukarıda öğrendiklerinizin tümü şu şekilde özetlenebilir:

Java Source Code >> Compiler >> classfile/bytecode >> Various devices running JVM 

Java'da Kod Yapısını Anlamak

1. Java kaynak kodu dosyası bir sınıf tanımı içermelidir. Bir Java Kaynak dosyası yalnızca bir genel sınıf/üst düzey sınıf içerebilir ancak çok sayıda özel sınıf/iç sınıf içerebilir.

Dış sınıf/üst sınıf/genel sınıf, tüm özel sınıfa/iç sınıfa erişebilir. Sınıf küme parantezleri içinde olmalıdır. Java'daki her şey bir nesnedir ve sınıf, nesnenin bir planıdır.

Java'da genel/özel sınıfın bir demosu:

public class class0
{
...
	private class1
	{
	…
	}

	private class 2
	{
	…
	}
...
}

2. Sınıf bir veya daha fazla yöntem içerir. Yöntem sınıfın küme parantezleri içine girmelidir. Sahte bir örnek:

public class class0
{
	public static void main(String[] args)
	{
	…..
	…..
	}
}

3. Bir yöntem bir veya daha fazla ifade/talimat içerir. Talimat(lar), yöntemin küme parantezleri içine girmelidir. Sahte bir örnek:

public class class0
{
	public static void main(String[] args)
	{
	System.out.println("Hello Tecmint, This is my first Java Program");
	System.out.println("I am Loving Java");
	…
	...
	}
}

Bu noktada şunu belirtmek de önemli: Her İfade noktalı virgülle bitmelidir. Sahte bir örnek:

System.out.println("Hello Tecmint, This is my first Java Program");
...
...
System.out.println("I am Loving Java");

İlk Java Programınızın ayrıntılı bir açıklamayla yazılması. Bu örnekte açıklama buraya yorum olarak koyuluyor (// yorum yapılmamış anlamına geliyor). Yorumları bir program içerisinde yazmalısınız.

Bunun sadece iyi bir alışkanlık olması değil, aynı zamanda kodun sizin veya başkasının daha sonra herhangi bir zamanda okunabilmesini sağlaması nedeniyle.

// Declare a Public class and name it anything but remember the class name and file name must be same, say class name is MyProg and hence file name must be MyProg.java
public class MyProg

// Remember everything goes into curly braces of class?
{
 

// This is a method which is inside the curly braces of class.
   public static void main(String[] args)

    // Everything inside a method goes into curly braces	
    {
        
    // Statement or Instruction inside method. Note it ends with a semicolon
    System.out.println("I didn't knew JAVA was so much fun filled");
    
    // closing braces of method
    }

// closing braces of class
}

Yukarıdaki basit Java Programının ayrıntılı teknik açıklaması.

public class MyProg

Burada yukarıdaki sınıfın adı MyProg'dur ve MyProg bir Public sınıfıdır, bu da herkesin ona erişebileceği anlamına gelir.

public static void main(String[] args)

Burada yöntem adı main olup, genel bir yöntemdir, herkes tarafından erişilebileceği anlamına gelir. Dönüş türü geçersizdir, bu da dönüş değeri olmadığı anlamına gelir. 'Strings[] args', main yönteminin argümanlarının args olarak adlandırılacak bir dizi olması gerektiği anlamına gelir. Şimdilik 'statik' kelimesinin anlamı konusunda endişelenmeyin. Gerektiğinde bu konuyu detaylı olarak anlatacağız.

System.out.println("I didn't knew JAVA was so much fun filled");

System.out.ln JVM'den çıktıyı bizim durumumuzda Linux komut satırı olan standart çıktıya yazdırmasını isteyin. println ifadesinin parantezleri arasında yer alan her şey, değişken olmadığı sürece olduğu gibi yazdırılır. Değişkenin ayrıntılarına daha sonra gireceğiz. Açıklama noktalı virgülle bitiyor.

Şu anda bir şey net olmasa bile bu konuda endişelenmenize gerek yok. Ayrıca hiçbir şeyi hatırlamanıza gerek yok. Sadece gönderiyi inceleyin ve resim çok net olmasa bile terminolojileri ve çalışmayı anlayın.

Şimdilik bu kadar. Tecmint'e Bağlı Kalın. Aşağıdaki yorumlarda bize değerli görüşlerinizi bildirin. Bir sonraki bölüm olan “Java'da sınıf ve Ana yöntem” üzerinde çalışıyoruz ve yakında yayınlayacağız.