İlk yazımızın başında Java “Nesneye Yönelik” bir programlama dilidir demiştik. Şimdi bu nesne kavramının ne olduğuna bakıp Java’ya yavaş yavaş giriş yapalım.

Nesne Nedir?

Java’daki nesne ile günlük hayattaki nesne arasında pek bir fark yoktur. Nasıl masa diye bir sınıf var ve bu sınıfın bir çok örneği var ise programlama dillerinde de bir sınıf ve ondan türemiş bir çok sınıf vardır. Daha rahat anlaşılması için masa örneğinden yola çıkarak analoji yapalım.

Temel bir masa nedir? 3 veya daha çok ayağı olan üzerine bir şey koyulan bir nesnedir. bunlar tüm masaların ortak özellikleridir. Biz bu temel sınıftan yemek masası, çalışma masası, bilgisayar masası gibi sınıflar türetebiliriz. Ama bunların hepsi en temelde birer masadır ve belli ortak özellikleri vardır. Ayrıca evimize bir defa yemek masası alır tüm yemeklerde onu kullanırız. Her yemek için ayrı masa almak çok saçma olur. İşte nesneye yönelik programlama dillerinde de sınıflar bir kere yazılır bir çok kere kullanılır.

Soyutlama (Abstraction)

Soyutlamayı kullanıcıyı kullandığı şeyin arka planının karmaşıklığından soyutlayarak, kullanıcıya basit bir arayüzle bu karmaşıklığı yönetme imkanı verilmesi olarak açıklayabiliriz. Hepimiz klavye kullanarak yazı yazıyoruz fakat klavyede tuşa bastığımız andan ekranda güzükünceye kadar neler olduğu hakkında çok azımızın bir fikri vardır. İşte OOP* nin temel prensibi de budur. Karmaşıklığı azaltarak küçük parçalardan büyük sonuçlara gitmek. Java ile oyunlar oynamaya başladığınızda bunu çok daha iyi kavrayacaksınız.

OOP üç temel üzerine oturur.

1-Sarmalama (Encapsulation)

Büfelerde küçük bir cam olur. Büfenin içine girmeden o camı kullanarak alışveriş yaparsınız. Önce ne almak istediğinizi söylersiniz, fiyatını ödersiniz ve büfeci size istediğiniz şeyi verir. Bu sarmalamaya güzel bir örnektir. İçerideki eşyaları veri olarak düşünürseniz büfenin camı sizin o veriye erişiminizi sağlayan arabirimdir. Siz o arabirimi kullanmaksızın eşyalara elleyemezsiniz. Bu içerideki eşyaların güvenliğini sağlarken karmaşıklığı azaltır. Bu arada istediği malzemeleri dışarıya koymak da büfecinin insiyatifindedir. Fakat değerli eşyalar doğal olarak içeride duracaktır. Ayrıca içerideki rafların düzeni de değişse, büfede çalışan kişi de değişse büfeden gazeteyi isteme şekli aynıdır. İçerideki yapı arabirimi kullanan kişiyi hiç ilgilendirmez. Bu fikir programlanmaya uygulandığında OOP nin temel ayaklarından birincisi olarak karşımıza çıkıyor.

2-Kalıtım (Inheritance)

Kalıtım bir nesnenin başka bir nesnenin özelliklerini devralmasıdır. Biyoloji bilgilerimizi gözden geçirelim. Ev kedisi bir canlıdır. En temelde canlı sınıfının bir üyesidir. Canlı sınıfından hayvan sınıfı türetilmiştir. Hayvan sınıfı canlı sınıfının sahip olduğu tüm özelliklere sahiptir fakat faklı özellikleri de vardır. Hayvan sınıfından ise memeli sınıfı türetilmiştir. Aynı şekilde memeli sınıfı hayvan sınıfının tüm özelliklerine sahip olmakla birlikte diğer hayvanlardan farklı özellikleri vardır. Memeliden ise kedi ve kediden ev kedisi sınıfları türetilmiştir. Ve biz de bu ev kedisi sınıfına ait bir nesne tanımlayıp adını boncuk koyuyoruz. Programatik yapıda kalıtım da aynen bu şekilde işler. Java ve C# gibi tamamen nesne yönelimli dillerde her şey birer nesnedir. Tüm nesneler Objet sınıfından türemiştir.

3-Çok Biçimlilik (Polymorphism)

Çok biçimlilik aynı arabirimden gelen farklı verilere farklı işlemler uygulanması olarak açıklanabilir. En basit örneği büfe camından büfeciye para uzatırsanız istediğiniz şeyi verir. Fakat camdan adama yumruk atmaya çalışırsanız başınıza pek iyi şeyler gelmeyebilir. Burada aynı arabirimi kullanan iki farklı işlem tanımlanmıştır.

Bu üç temel özellik OOP nin temeli olarak sayılır ve üçü de soyutlama mantığı üzerinden geliştirilmiştir.

Java ile Merhaba Dünya

 /* Bu bir çok satırlı yorumdur */
// bu da tek satırlı yorumdur.
class MerhabaDunya//program sınıfımızın adı MerhabaDunya oldugu icin bu dosyayi MerhabaDunya.java olarak kaydedin.
{
public static void main(String[] args)
{
System.out.println("Merhaba Java Dunyasi");
}
}

İlk Java kodumuzu yazdık. Bunu not defterinde yazarak MerhabaDunya.java adında kaydettik. Peki ne yapacağız bu dosyayı? Nasıl çalıştıracağız? Bilgisayarımızda Java ile program geliştirmek için nelere ihtiyacımız var. Bunları gelecek yazımızda ele alacağız.