Nesne Yönelimli Programlama (Object Oriented Programming)

Nesne Yönelimli Programlama(Object Oriented Programming)

Nesne yönelimli programlama (Object oriented programming) nesnelere önem veren, nesneler yaratıp onların birbirleriyle olan bağlantılarını kullanarak program yazmamızı sağlar. Nesneler birbiriyle etkileşim içindedir. Kabaca bir örnek vermek gerekirse, diyelim ki oop ile bir hastane sistemi programı yapıyoruz. Bu pogramda doktor nesnesi, hasta nesnesi oluştururuz ve hasta ile doktor nesneleri birbirleri ile bağlantılı programlanabilir. Nesne yönelimli programlamada nesneler ve sınıflar büyük önem taşır. Her nesne, alakalı sınıfın içerisinde oluşturulur ve o sınıfın özelliklerini taşır.

nesne yönelimli programlanın konseptleri
Nesne Yönelimli Programlama(Object Oriented Programming) Konseptleri

Nesne (Object) ve Sınıf (Class) Kavramları

OOP’de her bir nesnenin sınıfların içinde yaratıldığını ve o sınıfın özelliğini aldığından bahsetmiştim. Sınıf dediğimiz şey, içinde programa yaptırmak istediğimiz metotları yazdığımız ve değişkenleri tanımladığımız şeydir. Hastane sisteminden örnek vermiştim, onunla devam edeyim. Gelin size basit bir sınıf ve değişkenler nasıl oluşturulur onu göstereyim.

public class Doktor {
        private string name:
        private string lastname;
        private int age;
        private AnaDal anadal;

        public Doktor(String name, String lastname, int age, AnaDal anadal{
              this.name=name;
              this.lastname=lastname;
              this.age=age;
              this.anadal=new AnaDal();
        }
}

Yukarıdaki kod parçasında ben bir Doktor sınıfı oluşturdum ve bu sınıfta doktora ait birkaç özellik tanımladım: isim, soyisim, yaş ve anadal. Fark ettiyseniz anadalı tanımlarken diğerleri gibi string yapmadım. AnaDal diye bir sınıfımız var ve ben Doktor sınıfında bir AnaDal nesnesi oluşturdum. Anadal sınıfının içinde de örneğin kalp doktoru, cilt doktoru, çocuk doktoru şeklinde bilgi olduğunu düşünün. Daha sonra Doktor sınıfının constructor’ında yani yapıcısında Doktor nesnesini oluşturma işlemlerini başlatmış oldum. Ben şimdi herhangi bir sınıfta aşağıdaki kodu yazdığım zaman Öykü Andaç isminde 21 yaşında bir kalp doktoru nesnesi yaratmış olacağım:

Doktor doktor = new Doktor("Öykü","Andaç",21,kalp doktoru);

Çok basit bir hastane öğreniyle size sınıf ve obje kavramlarını açıklamaya çalıştım. Umarım anlaşılır olmuştur. Şimdi ise sıra nesne yönelimli programlamanın konseptlerine geldi.

Nesne Yönelimli Programlama(Object Oriented Programming) Konseptleri
Nesne Yönelimli Programlama(Object Oriented Programming) Konseptleri

Nesne Yönelimli Programlama(Object Oriented Programming) Konseptleri

Nesne yönelimli programlama çalışan herkesin bilmesi ve öğrenmesi gereken 4 tane konsept vardır. Bu 4 konsept, oop’nin olmazsa olmazıdır. Eğer bunların hepsi kullanılmıyorsa o program object oriented değil demektir.

  • Inheritance: Inheritance, türkçeye çevirirsek kalıtım demektir. Yani nesneler arasındaki kalıtım ilişkisini anlatır. Böyle söyleyince kulağınıza çok saçma gelmesin. Şöyle ki, bir Öğretmen class’ımız olduğunu düşünelim. Bu class, sınıf öğretmeni, matematik öğretmeni gibi bütün öğretmenlerin ana class’ıdır. Öğretmen class’ındaki isim, soyisim,yaş gibi özellikler diğer öğretmenlerde de bulunur ancak mesela sınıf öğretmeninin ekstradan başka özellikleri de olabilir. Kalıtım yapılan class, bir üst class’ı “extend” eder:
public class Öğretmen{
     private String name;
     private String lastname;
}

public class SınıfÖğretmeni extends Öğretmen{
     private school;
}

SınıfÖğretmeni class’ında Öğretmen class’ının özelliklerini tekrar yazmamıza gerek yok çünkü onlara zaten sahip, sadece yeni özellikler eklemek isterseniz onu eklemeniz gerekir.

  • Encapsulation: Encapsulation, Oop’nin temel kavramlarındandır. Encapsulation bizim tanımladığımız verilerin herkese görünebilir, görünemez olmasını sağlar. Dikkat ettiyseniz ben yukarıdaki kodlarda değişkenleri hep private olarak tanımladım. Çünkü çok ekstrem bir durum olmadığı sürece oop’de değişkenlerin dışardan ulaşılamaz olmasını isteriz private olarak tanımlarız. private, public ve protected şeklinde değişkenlerimizin türünü belirleyebiliriz.
  • Polymorphism: Polymorphism kavramı ise, tek bir metod ile farklı class’lara ait nesnelerin çağrılmasına denir. Örneğin ben hem Doktor hem de Öğretmen class’larında print() diye bir metot oluşturursam, iki nesne için de print() fonksiyonunu yani aynı fonksiyonu çağırabilirim. Sadece override yapmam gerekir. Buna da polymorphism, yani çok çeşitlilik denir.
public class Doktor{
         public void printObject(){
              System.out.println(........)
         }
}
public class Öğretmen{
         @override
         public void printObject(){
              System.out.println(........)
         }
}
  • Abstraction: Abstraction kelimesinin türkçesi de soyutlama dır. Abstract class’lardan bir nesne oluşturulamaz ancak üst sınıfının özelliklerini taşır. Bu kavram da yine oop’nin olmazsa olmaz temel konseptlerinden biridir.

Nesne Yönelimli Programlama Dilleri

Son olarak da nesne yönelimli programlama dillerinden bahsedeceğim ve yazıyı bitireceğim. Başlıca nesne yönelimli programlama dilleri

  • Java
  • Python
  • C++
  • C#
  • Ruby
  • Php
  • Javascript
  • Perl’dir.

Object Oriented Programlama ile ilgili daha fazla örnek kod görmek isterseniz Oracle Java sitesinden ulaşabilirsiniz. Buraya kadar okuduysanız eğer umarım faydalı olmuştur diyor ve teşekkür ederek bu yazıyı noktalıyorum. İyi nesne yönelimli programlamalar! 🙂

İlgili konu: Java Exception Handling(Hata Fırlatma)

Takipçilerinizle Bu Yazıyı Paylaşın!

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir