Nesne tabanlı programlama aslında bir yaklaşımdır. Nesne tabanlı programlama yaklaşımına geçmeden önce yaklaşım nedir önce ona bir bakmalıyız.
“Yaklaşım”, bir konuya veya bir duruma karşı takınılan tutum, davranış veya yöntemdir. Genel olarak, bir problemi çözmek, bir konuyu anlamak veya bir hedefe ulaşmak için kullanılan bir plan veya stratejiyi ifade eder. Örneğin, bir sorunu çözmek için bilimsel bir yaklaşım kullanabilirsiniz, yani sorunu analiz edip hipotezler geliştirerek ve deneyler yaparak çözüm arayabilirsiniz. Başka bir örnek olarak, insanlarla iletişim kurarken empatik bir yaklaşım benimseyebilirsiniz, yani onların duygularını anlamaya ve onlara destek olmaya odaklanabilirsiniz. Bu terim genellikle bir konuyu ele alış biçimini veya bir sorunu çözme şeklini ifade etmek için kullanılır.
Nesne tabanlı programlama (OOP)
Nesne tabanlı programlama (OOP), her şeyi nesne olarak gören bir yaklaşımdır. OOP’nin temel fikri, gerçek dünyadaki nesnelerin ve ilişkilerin yazılım tarafından modellemesidir. Bu yaklaşım, veriyi ve işlevleri bir araya getirerek nesneleri oluşturur ve bu nesneler arasındaki etkileşimleri sağlar.
Bir programcı, nesne tabanlı programlama kullanırken, gerçek dünyadaki nesneleri (araba, insan, banka hesabı vb.) yazılım nesneleri olarak temsil eder. Her nesne, veri (özellikler veya alanlar) ve işlevsellik (metodlar veya işlevler) içerir. Örneğin, bir araba nesnesi, hızı, rengi ve modeli gibi özelliklere sahip olabilir ve sürmek veya durdurmak gibi işlevleri gerçekleştirebilir.
Bu yaklaşım, yazılımı modüler ve esnek hale getirir. Nesnelerin yeniden kullanılabilir olması, kodun daha az tekrar etmesini sağlar ve bakımını ve genişletilmesini kolaylaştırır. Ayrıca, nesne tabanlı programlama, bir problemi daha doğal bir şekilde modellemeye yardımcı olur ve yazılımın daha anlaşılır ve bakımı daha kolay hale gelir.
Destekleyen programlama dilleri?
Java, C++ , python,C#, JavaScript gibi bir çok dil nesne tabanlı programlamaya izin verir. Bunlar sadece OOP’yi destekleyen bazı popüler programlama dilleridir. Ancak, nesne tabanlı programlama kavramını destekleyen birçok başka dil de bulunmaktadır.
Nesnenin anatomisi
Bir nesnenin anatomisi, nesne tabanlı programlama (OOP) paradigmında, bir nesnenin yapısal unsurlarını ve bileşenlerini ifade eder. Bir nesnenin anatomisi genellikle şu unsurları içerir:
- Alanlar (Properties veya Fields): Bir nesnenin durumunu veya özelliklerini temsil eden veri parçalarıdır. Örneğin, bir araba nesnesinin hızı, rengi, modeli gibi özellikleri alanlar aracılığıyla temsil edilir.
- Metodlar (Methods): Bir nesnenin davranışlarını veya işlevselliğini temsil eden işlevlerdir. Bir araba nesnesinin sürmek, durdurmak gibi işlevleri metodlar aracılığıyla temsil edilir.
- Kurucu Metod (Constructor): Bir nesne oluşturulurken çağrılan özel bir metoddur. Nesnenin başlangıç durumunu ayarlamak için kullanılır.
- Yıkıcı Metod (Destructor): Bir nesne bellekten silinirken çağrılan özel bir metoddur. Bellekten silinmeden önce yapılması gereken temizlik işlemleri için kullanılır.
- Kalıtım (Inheritance): Bir nesnenin başka bir nesneden türetilmesine izin veren bir özelliktir. Bu, bir nesnenin başka bir nesnenin özelliklerini ve davranışlarını miras almasını sağlar.
- Sınıflar (Classes): Nesnelerin şablonlarını temsil eden yapısal unsurlardır. Sınıflar, bir nesnenin özelliklerini ve davranışlarını tanımlar.
Gerçek hayatı simüle etmeye çalışıyoruz.
“Nesne” kavramı, nesnellik felsefesine dayanan bir yaklaşımla gerçek hayatı simüle etmeye çalışır. Nesnellik felsefesi, nesnelerin gerçeklikte bağımsız olarak var olduğunu ve insan zihninden bağımsız olarak varlıklarını sürdürdüklerini savunur. Bu felsefi bakış açısı, nesnelerin objektif bir gerçeklik olduğunu ve insan deneyimi veya algısından bağımsız olarak var olduklarını öne sürer.
Nesne tabanlı programlama (OOP), bu felsefi prensibe dayanarak gerçek dünyadaki nesnelerin modellenmesini sağlar. Örneğin, bir yazılım uygulaması geliştirirken, bir araba, bir kişi veya bir banka hesabı gibi gerçek dünyadaki varlıkları yazılım nesneleri olarak temsil edebiliriz. Her bir nesne, gerçek dünyadaki karşılığıyla benzer özelliklere (alanlar) ve davranışlara (metodlar) sahip olur.
Bu yaklaşım, gerçek hayattaki karmaşık sistemleri ve ilişkileri daha iyi modellememizi sağlar. Ayrıca, yazılım geliştirme sürecinde daha modüler, esnek ve yeniden kullanılabilir kodlar oluşturmamıza yardımcı olur. Sonuç olarak, nesne tabanlı programlama, gerçek hayatı daha doğru bir şekilde simüle etmeyi ve yazılımı insanlar için daha anlaşılır hale getirmeyi amaçlar.
Programlama dillerinde kullanılan türler
Nesneler, programlama dillerinde iki türe ayrılır: değer türleri ve referans türleri.
- Değer Tipleri (Value Types): Değer tipleri, veriyi doğrudan içerir ve bellekte kendi alanlarında saklanır. Bu tiplerin örneği olan değişkenler, gerçek veriyi içerir ve bellekte doğrudan bu değerlerle saklanır. Örnek olarak, int, float, char gibi basit veri tipleri ve struct yapıları değer tiplerine örnektir.
- Referans Tipleri (Reference Types): Referans tipleri, bellekteki bir nesnenin konumunu işaret eden bir referansı içerir. Bu tiplerin örneği olan değişkenler, bellekte gerçek veriyi değil, bellekteki bu verinin konumunu gösteren bir referansı saklarlar. Örnek olarak, sınıflar, diziler, arayüzler ve delegeler referans tiplerine örnektir.
Ram yapısı

RAM (Random Access Memory), bilgisayarın çalışma belleğini temsil eder. RAM, bilgisayarın işletim sistemi ve çalışan programlar tarafından geçici olarak kullanılan bellek alanını sağlar. Programlar çalışırken, işlemci tarafından işlenen ve geçici olarak saklanan veriler burada tutulur. RAM belleği, bilgisayarın hızlı bir şekilde veriye erişmesini sağlar.
Stack ve heap, RAM içinde farklı bellek bölgelerini ifade eder:
- Stack: Stack bellekte, yerel değişkenlerin, fonksiyon çağrılarının ve geçici verilerin saklandığı bölgedir. OOP’de, bir nesne referansı (yani bir referans türü değişkeni) stack bellekte saklanır. Bu referans, aslında nesnenin bellekteki konumunu gösterir. Dolayısıyla, nesnenin kendisi değil, sadece bir referans (adres) stack bellekte saklanır. Bu referansın boyutu, tipik olarak bir adresin boyutu kadardır ve sabittir.
- Heap: Gerçek nesne verisi (yani nesnenin özellikleri ve içeriği), heap bellekte saklanır. Nesnenin verisi, bellek tahsis edilirken heap belleğinde oluşturulur. Referans türü değişken stack bellekte saklanırken, nesnenin verisi heap bellekte saklanır. Bu nedenle, bir nesne oluşturulduğunda, bellek heap’te ayrılır ve nesne verisi burada saklanır.
Oop deki oluşturduğumuz nesneler ram’de nerde tutulur?
OOP’de oluşturulan nesnelerin referansları (adresleri) stack bellekte saklanırken, nesnenin kendisi (verisi) heap bellekte saklanır. Bu bellek yönetimi modeli, nesnelerin ömürlerini ve erişimlerini kontrol etmeyi sağlar ve programcılara esneklik sağlar.
Yorum Yap