<aside> 💡 Başlamadan önce sunu söylemek istiyorum. Bu dökümantasyon ortalama bir yazılım bilgisi olan ancak “OOP nedir?”, “Class ve obje nedir neyin nesidir abi bu OOP” gibi sorulara cevap niteliğinde olacaktır.

</aside>

Şimdi OOP’ye girmeden önce C++ dilinde kullanılan “namespace” adında ki uzay boşluğumuzdan bahsedelim. Buraya Tıklayarak Gidebilirsin.

Dip not : Eğer bu sayfayı daha önce okuduysan sayfanın sonundaki Page Db sayfasından veya şuraya tıklayarak diğer alt konulara gidebilirsin.


Şimdi OOP’ nedemek?

Şöyle bir açıklama bulabilirisniz OOP hakkında.

Yazılım geliştirme için bir programlama paradigmasıdır. OOP'nin temel amacı, yazılımın organizasyonunu ve tasarımını, gerçek dünyadaki nesnelerin modellenmesine dayandırmaktır "Paradigma," genel olarak bir teori, model veya örüntü anlamına gelir. (burada model anlamında kullanılmaktadır.)

Şimdi OOP’de en çok duycağınız iki adet terim vardır.

  1. Nesne (Obje)
  2. Sınıf (Class)

Nedir bu Nesne ve Sınıf (Class)?

Nesne (Obje) 📦

Gerçek dünyadaki varlıkların (objelerin) yazılım tarafından temsil edilmesidir. Her nesne, veri (state) ve bu veri üzerinde işlem yapan metodları (behavior) içerir.

Class (Sınıf)

Sınıflar, nesnelerin tasarım şablonlarıdır. Belirli bir sınıftan oluşturulan nesneler, aynı özelliklere (veri) ve davranışlara (metodlar) sahip olacaktır. Sınıflar, nesnelerin nasıl oluşturulacağını ve nasıl davranacaklarını tanımlar.

Yani şimdi bu terimsel açıklamayı şöyle bir örnek verelim hem de class oluşturmayı görelim.

/* Şimdi bir proje grubu oluşturucağımızı düşünelim ve bu gruba katılmak için
adayların bulunduğunu düşünelim.

Bu adayların özellikleri ne olur?
İsim, Yaş, Cinsiyet, Meslek, Uzman oldukları konu.

Bu Adaylar katılmak için mülakata geldiğinde ne yaparlar?
Kendilerini tanıtırlar, Hangi alanda iyi olduklarını söylerler.

Şimdi Classlar bizim için bir nesnenin şablonları ise nesnenin özellikleri 
üye değişkenlerimiz olur.

Yaptıkları şey ise üye methodlarımız olur.

Şimdi Class yapımızı oluşturalım */

class Aday {
	private :
		std::string isim;
		int yas;
		std::string cinsiyet;
		std::string meslek;
		std::string uzman_alan;
	public :
		Aday(std::string isim, int yas, std::string cinsiyet, std::string meslek, std::string uzman_alan);
		void kendini_tanit();
		void uzman_alanin();
};

//Dip not : Aday methodu ve Private ve Public kısmına takılmayın onları
//birazcık ileride anlatacağım. Şuan önemli olan ana şablona ve konuya odaklanın :)

Şimdi bu gördüğünüz bizim için örnek bir class (sınıf). Bundan üreteceğimiz bir değişkene nesne diyoruz.