Java, Programlama 9 August 2018 Rabia Yurdakul No comments

OOP(Object-Oriented Programming) Nedir?

Her şeyin ama her şeyin nesne olarak kabul edildiği bir yaklaşımdır. Çevremizde gördüklerimizden örnek vermek gerekirse; bardak, mouse, bilgisayar, telefon, kalem, kağıt her şey birer nesnedir. Peki neden nesnedir? Nesne olmasının bize ne yararı var? Nesne olunca ne oluyor? Çünkü her nesnenin kendine ait bir özelliği bir görevi vardır ve nesneler arasında bir bağ bir ilişki bulunur. Mesela suyu düşünelim. Suyu bardağa doldurup içeriz. Amacımız su içmek aslında ama suyu bardak yardımıyla içiyoruz. Yani nesneleri birbirine bağlıyoruz. Bu aslında bizim birazda işimizi kolaylaştırıyor.

OOP’de nesneler ait oldukları sınıfın sunduğu özellikleri taşır. Mesela çalıştığınız işyerinde herkesin bir ünvanı olması gibi. Diyelim ki siz bir çalışansınız ve ünvanınız Software Engineer. Siz o şirketin çalışanısınız ve o şirketteki diğer çalışanların sahip olduğu yan haklar vs. sahipsiniz ve ayrı olarak sizin ünvanınızın gerektirdiği sorumluluklarınız var. Yani aslında sizin çalıştığınız şirketi bir sınıf olarak düşünürsek sizin yaptığınız işi de o sınıfın içindeki bir metot olarak düşünebiliriz. Bu durumda aslında her ünvanın, her pozisyonun sınıf içerisinde tanımlı ayrı bir metodu olacaktır. Çünkü yaptıkları iş farklı, görev tanımları farklı. Birde namespace kavramı var. Onu da şöyle düşünelim. Sizin çalıştığınız şirket bilişim alanında faaliyet sürdürüyor ve her bilişim alanında faaliyet sürdüren şirket için bir class tanımlandığını düşünelim. Bu classlar aslında benzer işler yaptığı için, yani aslında birbirleriyle ilişkili oldukları için onları gruplamak mantıklı bir hareket olacaktır. Yani benzer tipte nesnelerin bir araya getirilip gruplandığı yapıya namespace diyoruz.

OOP’de bir sınıfa yeni özellikler kazandırılabilir. Fakat eklenecek nesnenin bulunduğu grupla yakından alakalı olması bakım maliyetini azaltır ve okunabilirliği arttırır. Yani bir gün, önceki yazılımcı olduğumuzda ne de güzel yazmış dedittirir.  Bunu unutmayalım.

Yeniden kullanılabilirlik önemlidir. Eğer herhangi bir yerde oluşan ihtiyaç için farklı bir yerde o işi yapan bir class varsa tekrar yazmak yerine o kullanılmalıdır. O yüzden metotları yazarken dikkat etmemiz gereken şey daha çok (ihtiyaca göre değişir) bağımsız metot yazmak yani özelliştirilmişten ziyade daha çok herkes tarafından kullanılabilir kod yazmak. Yani diyelim ki veritabanı için insert metodu yazacaksınız. Bu metodu öyle bir yazmalısınız ki her tabloya insert yaparken bu metot kullanılabilmeli.

Özetle aslında gerçek hayatta mantıklı gelen ne varsa onun yazılıma aktarılmış şekli diyebiliriz. Bunun nedeni aslında yazılımın hayatımızın çok içinde olması, hayattaki sorunlara ışık tutması.

Sonraki makalede; OOP’nin temel prensiplerinde görüşmek üzere.. 🙂