← Back to list

Object Oriented Programming (Nesne Yönelimli Programlama) nedir?

Herkese merhaba,

Ali Cem Duran · 2024-08-04 18:00 · 1 claps · 3.6 min read
#oop #nesne-tabanlı-programlama #class #sınıf #object-oriented
Open on Medium ↗
Wiki topics: 💻 · Programming

#1) Object Oriented Programming (Nesne Yönelimli Programlama) nedir?

Herkese merhaba,

Bu yazıda sizlere Nesne Yönelimli Programlama’nın ne olduğunu, örneklerle birlikte dilim döndüğünce anlatmaya çalışacağım. Medium’da ilk yazı deneyimim olduğu için eksiklerim olabilir, lütfen mazur görünüz :)

Nesne Yönelimli Programlama Nedir?

Nesne yönelimli programlama (OOP), yazılım geliştirmede karmaşık sistemleri daha yönetilebilir ve modüler hale getirmek amacıyla kullanılan bir programlama paradigmasıdır. OOP, programları nesneler ve bu nesneler arasındaki etkileşimler etrafında yapılandırır.

Örnek verecek olursak, bir fabrika gibi hammaddeye belirli özellikler veririz ve kalıplar çıkarırız. Sonrasında bu kalıpları kullanarak yeni nesneler üretiriz. işte OOP’de de bizim ürettiğimiz kalıplar yani nesneler vardır. Biz bu kalıpları kullanarak gerekirse bazı özelliklerini değiştirip yeni nesneler üretiriz.

Neden OOP kullanırız?

  1. Verimlilik: Kalıtım ve polimorfizm sayesinde, bir kez yazılan kod farklı sınıflar ve nesneler tarafından tekrar kullanılabilir. Bu yönü sayesinde bizi ciddi iş yükünden kurtararak verimli bir geliştirme süreci geçirmemize olanak tanır.
  2. Kolay Anlaşılabilirlik: OOP, yazılımı nesneler etrafında organize eder ve bu nesneler belirli görevleri yerine getiren bağımsız modüller olarak işlev görür. Sınıflar ve nesneler, yazılımın işleyişini ve yapısını daha net bir şekilde ifade eder.
  3. Bakım ve Güncelleme Kolaylığı: OOP, kodun daha okunabilir ve anlaşılır olmasını sağlar, bu da bakım ve güncelleme süreçlerini kolaylaştırır. Hatalar daha kolay tespit edilir ve düzeltilir. Ayrıca, bir sınıfın içeriğini değiştirmek, o sınıfı kullanan diğer sınıfların çalışmasını etkilemez.

Class (Sınıf) nedir?

Bir class, OOP’ nin temel yapı taşlarından biridir ve nesnelerin oluşturulması için bir şablon görevi görür. Sınıflar, nesnelerin hangi özelliklere ve hangi davranışlara sahip olacağını tanımlar. Sınıflar, genellikle bir yazılım sistemindeki gerçek dünya nesnelerini veya kavramlarını modellemek için kullanılır.

Sınıfın Temel Unsurları

  1. Properties (Özellikler): Özellikler, sınıfın veri üyeleridir ve nesnelerin sahip olacağı verileri tanımlar. Örneğin, bir ‘Araba’ sınıfı için ‘Marka’, ‘Model’ ve ‘Hız’ gibi özellikler tanımlanabilir.
  2. Methods (Yöntemler): Yöntemler, sınıfın davranışlarını tanımlar ve sınıf üzerinde gerçekleştirilebilecek işlemleri belirtir. Örneğin, bir ‘Araba’ sınıfı için ‘Hizlan’ ve ‘Yavasla’ gibi yöntemler tanımlanabilir.

Class Nasıl Tanımlanır?

Aşağıda, C# dilinde bir ‘Araba’ sınıfı ve bu sınıfın özelliklerini ve yöntemlerini tanımladım.

public class Araba
{
    // Özellikler (Properties)
    public string Marka { get; set; }
    public string Model { get; set; }
    public int Hiz { get; set; }

    // Yapıcı Metot (Constructor)
    public Araba(string marka, string model)
    {
        Marka = marka;
        Model = model;
        Hiz = 0;
    }

    // Yöntemler (Methods)
    public void Hizlan()
    {
        Hiz += 10;
        Console.WriteLine("Araba hızlandı. Mevcut hız: " + Hiz);
    }

    public void Yavasla()
    {
        Hiz -= 10;
        Console.WriteLine("Araba yavaşladı. Mevcut hız: " + Hiz);
    }
}

Örneği incelerken “Bu yapıcı metot ne ya?” dediğinizi duyar gibiyim. O zaman açıklayalım.

Constructor (Yapıcı Metot) nedir?

Yapıcı metot, bir sınıftan yeni bir nesne oluşturulduğunda çağrılan özel bir yöntemdir. Yapıcı metot, nesnenin başlangıç durumunu ayarlamak için kullanılır ve genellikle sınıfın field’larını (ne olduğunu aşağı kısımda anlattım.)başlatır. Yapıcı metotlar, genellikle sınıf adıyla aynı ada sahip olmalı (Bazı yazılım dillerinde farklılık gösterebilir. Örneğin python da: def init) ve geri dönüş tipi belirtilmemelidir.

Constructor (Yapıcı Metot) Özellikleri

  1. Sınıf adıyla aynı isme sahip olmalıdır.
  2. Geri dönüş tipi belirtilmez.
  3. Yeni bir nesne oluşturulduğunda otomatik olarak çağrılır.
  4. Bir sınıfta birden fazla yapıcı metot tanımlanabilir, ancak her biri farklı parametre listelerine sahip olmalıdır.

Field nedir?

Bir “field” (alan), bir sınıfın veya yapının veri üyelerinden biridir ve o sınıfın her bir nesnesi için saklanan verileri temsil eder. Field’lar, genellikle sınıfın özel (private) verilerini tutar ve bu verilere doğrudan erişim sağlanmasını engeller. Bunun yerine, field’lara erişim ve bu field’ların değiştirilmesi genellikle özellikler (properties) ve yöntemler (methods) aracılığıyla yapılır.

Field ve Property Farkı

  • Field: Doğrudan veri depolama alanıdır. Genellikle sınıf içinde özel (private) olarak tanımlanır.
  • Property: Field’lara kontrollü erişim sağlar. Genellikle get ve set erişimcileri ile tanımlanır ve bu sayede veri doğrulama, hesaplama veya diğer işlemler yapılabilir.
public class Araba
{
    // field tanımlama
    private string marka;
    private string model;
    private int hiz;

    // Property'ler aracılığıyla field'lara erişim
    public string Marka
    {
        get { return marka; }
        set { marka = value; }
    }
}

Object (Nesne) nedir?

Gelelim OOP’nin diğer yapı taşı olan nesneye.. Nesne, sınıflardan üretilir ve belirli varlıkları temsil eder. Bir nesne, belirli özelliklere ve davranışlara (yöntemler ve fonksiyonlar) sahip olan bir varlıktır. Nesneler, sınıfların somut örnekleridir ve sınıf tanımına göre belirli verilere ve işlevselliklere sahip olurlar.

Nesnenin Özellikleri

  1. Durum (State): Nesnenin sahip olduğu veriler veya özellikler. Bu veriler, nesnenin durumunu belirler. Örneğin, bir ‘Araba’ nesnesinin ‘marka’, ‘model’ve ‘hiz’ gibi özellikleri vardır.
  2. Davranış (Behavior): Nesnenin gerçekleştirebileceği işlemler veya yöntemler. Bu yöntemler, nesnenin nasıl davrandığını tanımlar. Örneğin, bir ‘Araba’ nesnesinin ‘hizlan’ve ‘yavasla’ gibi yöntemleri olabilir.
  3. Kimlik (Identity): Her nesne, diğer nesnelerden bağımsız olarak kendi kimliğine sahiptir. İki nesne aynı sınıftan türetilmiş ve aynı verilere sahip olsa bile farklı kimliklere sahiptir.

Nesne nasıl oluşturulur?

Yukarıda oluşturmuş olduğum Araba sınıfına ait bir nesne oluşturalım:

public class Program
{
    public static void Main()
    {
        // Araba sınıfından bir nesne oluşturma
        Araba benimArabam = new Araba("Toyota", "Corolla");

        // Nesne özelliklerine erişim ve yöntemlerin kullanımı
        Console.WriteLine("Marka: " + benimArabam.Marka); // Çıktı: Toyota
        Console.WriteLine("Model: " + benimArabam.Model); // Çıktı: Corolla

        benimArabam.Hizlan(); // Çıktı: Araba hızlandı. Mevcut hız: 10
        benimArabam.Hizlan(); // Çıktı: Araba hızlandı. Mevcut hız: 20
        benimArabam.Yavasla(); // Çıktı: Araba yavaşladı. Mevcut hız: 10
    }
}

Bu yazımda sizlere Nesne Yönelimli Programlama’nın ne olduğunu, yapı taşları olan sınıf ve nesne üzerinden anlatmaya çalıştım. Sonraki yazılarımda görüşmek dileğiyle..


메타데이터
post_id
f2f8fb3da14c
slug
object-oriented-programming-nesne-yönelimli-programlama-nedir-f2f8fb3da14c
url
https://medium.com/@alcmdrn7/object-oriented-programming-nesne-y%C3%B6nelimli-programlama-nedir-f2f8fb3da14c
canonical_url
https://medium.com/@alcmdrn7/object-oriented-programming-nesne-y%C3%B6nelimli-programlama-nedir-f2f8fb3da14c
author_url
https://medium.com/@alcmdrn7
status
ok
fetched_at
2026-08-06 10:34:58