Genel

OOP- Sınıflar Nesneler

Nesne tabanlı programlama (OOP), bir programlama paradigmadır ve birçok modern programlama dilinde kullanılır. OOP, gerçek dünyadaki nesneleri modellemek ve bu nesneler arasındaki ilişkileri yönetmek için bir yaklaşım sunar. Nesne tabanlı programlama, kodun daha modüler, esnek ve yeniden kullanılabilir olmasını sağlar. Ayrıca, gerçek dünyadaki karmaşık sistemleri daha iyi modelleyebilir ve yönetebilir. OOP, büyük ölçekli yazılım projelerinde genellikle tercih edilen bir yaklaşımdır. OOP’nin temelinde üç ana kavram vardır: sınıflar, nesneler ve ilişkiler.

  1. Sınıflar (Classes): Bir sınıf, benzer niteliklere ve davranışlara sahip nesnelerin bir şablonudur. Örneğin, bir “Araba” sınıfı, araba nesnelerinin nasıl oluşturulacağını ve davranacağını tanımlar. Sınıflar, nitelikler (özellikler) ve metotlar (işlevler) içerebilir.
  2. Nesneler (Objects): Bir nesne, bir sınıfın örneğidir. Bir sınıftan birden fazla nesne oluşturulabilir. Örneğin, bir “Toyota Corolla” nesnesi, “Araba” sınıfının bir örneğidir. Her nesne kendi durumunu (niteliklerini) taşır ve sınıfın metotlarını çağırarak belirli işlemleri gerçekleştirir.
  3. İlişkiler (Relationships): OOP’de sınıflar arasında farklı ilişki türleri kurulabilir. En yaygın ilişki türleri miras (inheritance), bileşim (composition), ve bağımlılık (dependency)dir. Miras, bir sınıfın diğer bir sınıftan özelliklerini ve davranışlarını miras alması anlamına gelir. Bileşim, bir sınıfın diğer sınıfları içermesi anlamına gelir. Bağımlılık ise bir sınıfın diğer bir sınıfa bağımlı olması, yani onun özelliklerini veya metotlarını kullanmasıdır.

Özetle:

  • Sınıf, bir grup nesnenin ortak özellik ve davranışlarını içeren tanımdır.
  • Nesne ise bu tanıma göre oluşturulmuş fiziksel bir varlıktır.
  • NYP ise bir nesnenin başka bir nesneye ileti göndermesi, iletiyi alan nesnenin bu iletiye uygun davranışı sergileyerek kendi durumunda bir değişiklik yapmasıdır.

Örnek

// Araba sınıfı tanımı
class Araba {
    // Özellikler (alanlar)
    String marka; // Arabanın markası
    String model; // Arabanın modeli
    int uretimYili; // Arabanın üretim yılı

    // Kurucu method (constructor)
    public Araba(String marka, String model, int uretimYili) {
        this.marka = marka; // Parametre olarak gelen marka değerini sınıfın marka özelliğine atar.
        this.model = model; // Parametre olarak gelen model değerini sınıfın model özelliğine atar.
        this.uretimYili = uretimYili; // Parametre olarak gelen üretim yılı değerini sınıfın üretimYili özelliğine atar.
    }

    // Metodlar
    void bilgileriGoster() {
        // Arabanın markası, modeli ve üretim yılı bilgilerini ekrana yazdırır.
        System.out.println("Araba markası: " + marka);
        System.out.println("Araba modeli: " + model);
        System.out.println("Üretim yılı: " + uretimYili);
    }
}

// Ana sınıf
public class JavaApplication10 {
    public static void main(String[] args) {
        // Araba nesnelerini oluşturma
        Araba araba1 = new Araba("Toyota", "Corolla", 2020); // Araba sınıfından bir nesne oluşturur ve değerleri girer.
        Araba araba2 = new Araba("Honda", "Civic", 2018); // Araba sınıfından bir nesne oluşturur ve değerleri girer.

        // Araba bilgilerini gösterme
        System.out.println("Araba 1:"); // Araba 1'in bilgilerini göstereceğimizi belirtir.
        araba1.bilgileriGoster(); // Araba 1'in bilgilerini göstermek için sınıfın bilgileriGoster metodu çağrılır.

        System.out.println("\nAraba 2:"); // Araba 2'nin bilgilerini göstereceğimizi belirtir.
        araba2.bilgileriGoster(); // Araba 2'nin bilgilerini göstermek için sınıfın bilgileriGoster metodu çağrılır.
    }
}

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir