Günlük hayatımızda karşımıza çıkan bazı sorunları bilgisayar üzerinden çözmek, sürekli yapılan işleri kolay hale getirmek için oluşturulan yazılımlardır. Farklı bir şekilde açıklamak gerekirse bilgisayarınızın herhangi bir işlevi rahatça yapması için hazırlanmış ve tasarlanmış komut zincirine verilen isimdir. Ayrıca program yazabilmek için donanım sahibi olmak ve bunun yanında program dilini de iyi bilmek gerekir.
Programlama Dili
Bilgisayar kullanırken karşınıza çıkan sorunların çözülmesi amacıyla oluşturulan belirli kurallara sahip bir tanım kümesidir.
Yazılım
Kullanıcıların iş sürelerini kısaltmak ve kullanıcıların verimliliği arttırmak için hazırlanan programlara yazılım deniyor. Günümüzde birçok ihtiyacımızı karşılamak üzere kullandığımız masaüstü, web ve mobil yazılımları bunlara örnek olarak gösterilebilir.
Nesne Tabanlı Programlama
Dönemin yazılım sıkıntıları sonucunda ortaya çıkan nesne tabanlı programlama yöntemi yazılım geliştirme alanında oldukça yaygın bir yöntemdir. Bu yöntem gerçek hayatımızda var olan araba, ev, radyo gibi nesneleri bilgisayar ortamına aktarmaya yarayan bir yöntemdir. Mesela radyonun üretim yılını ve özelliklerini bilgisayar ortamında görüntülemek nesne tabanlı programlama yöntemine örnek olarak verilebilir.
Günümüzde birbirinden farklı ve sayısı olukça fazla nesne tabanlı programlama dilleri de bulunuyor.
Nesne Yönelikli Programlanın Bizlere Sağladığı Faydalar
-Sınıfınızda herhangi bir nesne ürettikten sonra değiştirmek istiyorsanız nesne yönelikli program sayesinde tüm programda değişiklik yapmanıza gerek kalmıyor. Bunun için gerekli olan oluşturduğunuz nesneyi sınıf içinde değişiklik yapmaktır.
-Oluşturduğunuz nesneler birbirinden farklı ve bağımsız olduğu için bilgi gizleme olanağını artıyor. Buna örnek olarak X nesnesi Y nesnesinin özelliklerini kullanamıyor ve bu özelliklere erişemiyor.
-Gerçek dünyadaki nesnelerin tasarımlarını sınıf içerisinde yapabiliyorsunuz.
-Sınıflar oluşturarak daha az kod oluşturduktan sonra daha fazla iş yapıp kod tekrarını öğrenebilirsiniz.
-Nesneleri oluşturma işini bir sınıf içinde gerçekleştirebilir ve oluşturduğunuz bu kodları farklı projelerde de kullanabilirsiniz. Mesela bir proje için oluşturduğunuz X nesnesini başka bir projede kullanabilirsiniz.
-Kod Tekrarının önüne geçtiği için bu program geliştirme sürecinin verimliliğini arttırmaya yardımcı oluyor.
Nesne Yönelikli Programın İçerisinde Yer Alan Sınıf Kavramı Nedir?
Gerçek dünyadaki nesnelerin özelliklerinin ve davranışlarının aktarıldığı yere sınıf diyoruz. Bu nesnelerin sınıflara aktarılma işi belirli yöntemler doğrultusunda yapılıyor. Sınıf içerisinde tanımlanan bu yöntemleri sınıfın üyeleri olarak nitelendiriyoruz. Bu değişkenler genel olarak sizlere lazım olan ve kullandığınız bilgileri içeriyor. Mesela isim, soyisim, yaş gibi önemli bilgiler. Yöntemler ise, kullanıcı kaydı, dört sayısının toplamı gibi belirli bir görevi yerine getiren alt programlar olarak nitelendiriliyor. Ayrıca sınıf soyut bir kavramdır ve doğrudan kullanılamaz. Eğer sınıf oluşturmak istiyorsanız mutlaka bir nesneniz de olmalı.
Nesne Yönelikli Programın İçerisinde Yer Alan Nesne Nedir?
Nesne yönelikli programın içerisinde yer alan nesne kavramı içinde verileri saklayan ve bu verilerin üzerinde işlem yapabilecek olan metotları bulunduran bileşenlerdir. Ayrıca bu nesneler her uygulamada tekrar kullanılabildiği gibi nesne oluşturduğumuzda hafızada yer de kaplayabilir.
Nesne Yönelimli Programlama Özellikleri
Nesne yönelimli programlama özelliklerinin 4 temeli vardır. Bu 4 temel özellikten birini bile sağlamayan programlama dili nesne yönelikli programa dili olarak sayılmıyor. Peki bu 4 özellik nelerdir gelin hep beraber görelim.
1-Soyutlama (Abstraction)
2-Çok biçimlilik (Polymorphism)
3-Kapsülleme (Encapsulation)
4-Miras Alma (Inheritance)
Nesne Yönelikli Programın İçerisinde Yer Alan Özellikler
Soyutlama (Abstraction): Bir sınıftaki davranışların ve özelliklerin tanımlanması durumuna soyutlama denir. Buna örnek olarak araba sınıfında modeli, rengi, tekerlek sayısı, motor gücü, ses sistemi özelliklerindendir. Fakat hızlanması, durması, fren yapması, korna çalması davranışları arasında yer alıyor ve bunlar metotlarla tanımlanıyor.
Çok Biçimlilik (Polymorphism): Çok biçimlilik, farklı nesnelerin aynı mesaja farklı cevaplar verme durumudur. Bu özellik programlama konusunda bizlere gerçekten çok faydası dokunan özelliklerdendir.
-Her nesne sınıfı, kendi yöntemlerini paketlediğinden dolayı ve bu yöntemlerin program için kalan kısımlarının gizli olması farklı sınıfların aynı isimlerdeki bazı yöntemlere sahip olmasına sebep olabilirler.
Buna örnek olarak İŞLEM adını verdiğimiz bir sınıfımız olsun. Bu sınıfta TOPLAMA, ÇIKARMA ve ÇARPMA adında 3 adet alt sınıf türetmiş olalım. Bu alt sınıfların her biri kendi bulduğu örnekleri yazmak için YAZ yöntemine sahip olabilirler. Ancak, her bir alt sınıf için bu yöntemin aynı olması durumu, bu yöntemi devreye sokabilmek için gönderilecek olan geri bildiriden sonra alt sınıfa ait olan nesneler farklı bir işlem (yani kendini, yani bir çarpma, toplama veya çıkarma) yazmalarına yardımcı olacaktır.
Kapsülleme (Encapsulation): Kapsülleme, davranışların ve özelliklerin sınıftan soyutlanması verilen isimdir. Kapsülleme sayesinde hangi davranışların ve özelliklerin işe yarar olduğuna karar verir, bu davranış ve özelliklerin hangilerinin dışarıya sunulup sunulmayacağı durumuna karar veririz. Buna örnek olarak insan sınıfında uyuma alışkanlığı bizi ilgilendirmiyorsa bunu kapalı bir duruma getirip gizleriz. Fakat isim, soyisim, yaş, gibi önemli özellikler bizleri ilgilendirdiği için bunları açık bırakmamız gerekir. Yapılan tüm bu işleme Kapsülleme yani bilgi saklamada diyebiliriz. Bilgi saklama erişim belirteçlerine ise (public, private, protected) denir ve bunlar sayesinde bilgi saklama işlemi gerçekleştirilebilir.
Public: Herkesin kullanabileceği davranış ve özellikler public ismini alıyor.
Protected: Protected, sınıf içerisinde ve miras alınan alt sınıflarda kullanılabilen bir belirteçtir.
Private: Sadece kendi sınıfında kullanılan bilen davranış ve özelliklere sahip olan belirteç ise privatedir.
Kalıtım Nedir?
Davranışların ve özelliklerin aktarıldığı bu sınıflar birbirinde türeyebilirler. Bu durum alt sınıfın özelliklerini üst sınıfın almasına sebep olabilir. Buna örnek vermek gerekirse motor ve bisiklet sınıflarının ortak özellikleri olarak tekerlek sayısı, hızı … gibi özellikleri tekrar yazıp yorulmak yerine saydığımız bu özellikleri içeren yeni bir sınıf oluşturup miras alabiliriz ve böylelikle işimizi kolaylaştırmış oluruz. Ayrıca bir sınıftan birden fazla miras alırsak buna da çok kalıtım ismini veriyoruz.
Miras Alma (Inheritance): Nesneye yönelik olan programlarda bir nesne genellikle bir nesne sınıfına ait bir örnek arasında yer alıyor. Buna örnek olarak Thomas Edison, insan sınıfının bir örneğidir. Eğer bir nesne sınıfında alt nesneler oluşturabiliyorsa bu durumda anlıyoruz ki türetme özelliği kullanılmış. Buna örnek vermek gerekirse de insan sınıfının canlı sınıfının bir alt sınıfı olduğu örneğini verebiliriz.
-Miras almada kendisinden alt sınıf üretilen sınıfa, temel sınıf, ana sınıf veya süper sınıf isimleri veriliyor. Ayrıca super class yerine çoğunlukla child terimi de kullanılıyor.
– Alt sınıflara ait olan nesneler türetilme durumundan sonra temel sınıfın özellikleri alabiliyorsa bu durumda burada miras alma özelliği olduğunu söyleyebiliriz.
Günlük hayatta karşınıza çıkan sorunları bilgisayar üzerinden kolaylıkla halledebilmek, kendimize zaman kazandırmak, kendi programımızı yazabilmek ve daha bir sürü şeyi yapabilmek için öncelikle nesne tabanlı programın tüm özelliklerini öğrenip bu alanda kendinizi donanımlı hale getirmelisiniz. Eğer bunu yaparsanız hayatınızın ne kadar kolaylaşacağını kendiniz de göreceksiniz. Sizlere bir sürü nitelik kazandıracak ve bütün işlemlerinin nesneler halinde soyutlandığı bu programı mutlaka öğrenin ve bir an önce bu programın faydalarından yararlanmaya başlayın.