Bu madde henüz onaylanmamıştır.
Nesne Yönelimli Programlama (NYP)
Temel Amacı | Kodun tekrar kullanımı ve sürdürülebilirlik | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Popüler Diller | Java, C++, C#, Python | ||||||||
İlk Ortaya Çıkış | 1960'lar (Simula) | ||||||||
Nesne yönelimli programlama (Object-Oriented Programming - OOP), bilgisayar programlarını nesneler (objects) ve bunların birbiriyle olan etkileşimleri üzerine kurgulayan bir programlama paradigmasıdır. Veriyi ve bu veri üzerinde işlem yapacak fonksiyonları tek bir yapı içerisinde birleştiren bu yaklaşım, yazılım geliştirme süreçlerinde kodun yeniden kullanılabilirliğini, sürdürülebilirliğini ve karmaşık sistemlerin daha kolay yönetilmesini sağlar. Geleneksel prosedürel programlamanın aksine, nesne yönelimli programlama "ne yapılacağı" sorusundan ziyade "üzerinde işlem yapılacak varlığın ne olduğu" sorusuna odaklanır.
Nesne yönelimli sistemlerin inşasında kullanılan iki temel yapı taşı sınıf ve nesnedir. Bu yapılar, yazılımın iskeletini oluşturur ve gerçek dünyadaki modellerin dijital ortama aktarılmasını sağlar.
Sınıf, bir nesnenin özelliklerini (attributes) ve davranışlarını (methods) tanımlayan soyut bir taslak veya şablondur. Teknik literatürde bir veri tipi olarak da nitelendirilebilen sınıflar, nesnelerin nasıl bir yapıya sahip olacağını belirler. Nesne ise, bir sınıftan türetilen ve bellekte yer kaplayan somut bir örnektir (instance). Örneğin, "Araba" bir sınıf iken, belirli bir plakaya ve renge sahip olan bir araç, o sınıfın bir nesnesidir.

Bir nesne örneği (İTÜ)
Nesne yönelimli programlamayı diğer metodolojilerden ayıran ve modern yazılım mimarisinin temellerini atan dört temel prensip bulunmaktadır.
Soyutlama, bir nesnenin sadece gerekli olan özelliklerini kullanıcıya sunarken, arka plandaki karmaşık uygulama detaylarını gizleme işlemidir. Bu sayede yazılımcı, bir sistemin nasıl çalıştığından ziyade ne iş yaptığına odaklanabilir. Karmaşıklığın azaltılması ve güvenliğin artırılması açısından kritik bir öneme sahiptir.
Kapsülleme, nesneye ait verilerin dış dünyadan doğrudan erişime kapatılarak korunmasıdır. Verilere ancak sınıf tarafından belirlenen metodlar (getter/setter) aracılığıyla erişilebilir. Bu prensip, veri bütünlüğünü sağlar ve hatalı veri girişlerinin önüne geçer.
Kalıtım, bir sınıfın (alt sınıf/subclass), başka bir sınıftan (üst sınıf/superclass) özellik ve metod devralmasıdır. Bu özellik, kodun tekrar yazılmasını engelleyerek hiyerarşik bir yapı oluşturulmasına imkan tanır. Örneğin, "Taşıt" sınıfındaki genel özellikler "Uçak" veya "Gemi" sınıflarına kalıtım yoluyla aktarılabilir.
Çok biçimlilik, bir metodun veya nesnenin farklı durumlarda farklı davranışlar sergileyebilme yeteneğidir. Özellikle kalıtım yoluyla gelen metodların, alt sınıflarda yeniden tanımlanması (overriding) ile gerçekleştirilir. Bu sayede aynı isimli bir fonksiyon, farklı nesne türlerinde kendine özgü sonuçlar üretebilir.

Polymorphizm örneği (İTÜ)
Moğulkoç, Yeşim. Nesne Yönelimli Programlamaya Giriş. Ankara: Ankara Üniversitesi Açık Ders Malzemeleri, t.y. Erişim tarihi: 29 Nisan 2026. https://acikders.ankara.edu.tr/pluginfile.php/110580/mod_resource/content/1/NYPeGiris.pdf.
“C# Object-Oriented Programming.” W3Schools. Erişim tarihi: 29 Nisan 2026. https://www.w3schools.com/cs/cs_oop.php.
“Nesne Yönelimli Programlama (Object-Oriented Programming).” İTÜ Bilgi İşlem Daire Başkanlığı – Seyir Defteri, 5 Şubat 2019. Erişim tarihi: 29 Nisan 2026. https://bidb.itu.edu.tr/seyir-defteri/blog/2019/02/05/object-oriented-programming.
Nesne Yönelimli Programlama (NYP)
Temel Amacı | Kodun tekrar kullanımı ve sürdürülebilirlik | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Popüler Diller | Java, C++, C#, Python | ||||||||
İlk Ortaya Çıkış | 1960'lar (Simula) | ||||||||
Henüz Tartışma Girilmemiştir
"Nesne Yönelimli Programlama" maddesi için tartışma başlatın
Nesne Yönelimli Programlamanın Temel Bileşenleri
Sınıf (Class) ve Nesne (Object) Kavramı
OOP Prensipleri: Dört Temel Direk
Soyutlama (Abstraction)
Kapsülleme (Encapsulation)
Kalıtım (Inheritance)
Çok Biçimlilik (Polymorphism)
Bu madde yapay zeka desteği ile üretilmiştir.