PHP Nesne Yönelimli Programlama

PHP, Nesne Yönelimli Programlama, OOP kavramları, php ile oop, php oop, php extends nedir, php protected, php private, php public


PHP dahil birçok modern programlama dili tarafından kullanılan popüler bir programlama paradigmasıdır ve bu makalede, size PHP'de OOP'nin temellerini anlatacağım.

1. Adım: Sınıfları ve Nesneleri Anlamak

PHP'deki OOP'nin merkezinde sınıflar ve nesneler bulunur. Bir sınıf, nesneler oluşturmak için bir plan iken, bir nesne bir sınıfın örneğidir.

Örneğin, isim, yaş ve cinsiyet özelliklerine sahip Kişi adında bir sınıf oluşturmak istediğimizi varsayalım. Sınıfımızı şöyle tanımlayabiliriz:

<?php

class Person {
    public $name;
    public $age;
    public $gender;
}
-

Kişi türünde bir nesne oluşturmak için sadece new anahtar sözcüğünü kullanırız:

$person = new Person();

Daha sonra Person nesnemizin özelliklerini şu şekilde ayarlayabiliriz:

$person->name = 'John';
$person->age = 30;
$person->gender = 'male';

Adım 2: Yöntemleri Tanımlama

Özelliklere ek olarak sınıflar, belirli bir sınıfla ilişkilendirilmiş işlevler olan yöntemlere de sahip olabilir.

Örneğin, Person sınıfımıza, ekrana bir karşılama mesajı yazdıran greet adlı bir yöntem eklemek istediğimizi varsayalım. Metodumuzu şu şekilde tanımlayabiliriz:

<?php

class Person {
    public $name;
    public $age;
    public $gender;

    public function greet() {
        echo 'Hello, my name is ' . $this->name . ' and I am ' . $this->age . ' years old.';
    }
}

Daha sonra, Person nesnemizde greet yöntemimizi şu şekilde çağırabiliriz:

$person->greet();

Bu, aşağıdaki mesajı ekrana yazdıracaktır:

Hello, my name is John and I am 30 years old.

Adım 3: Kapsülleme

OOP'nin temel ilkelerinden biri, veri ve yöntemlerin dış erişimden gizlenmesi gerektiği anlamına gelen kapsüllemedir. PHP'de genel, özel ve korumalı gibi erişim değiştiricileri kullanarak kapsülleme elde edebiliriz:

  • public: Özelliğe veya yönteme, sınıfın dışında bile herhangi bir yerden erişilebilir.
  • private (özel): Özelliğe veya yönteme yalnızca sınıfın içinden erişilebilir.
  • protected (korumalı): Özelliğe veya yönteme yalnızca sınıfın kendisinden ve herhangi bir alt sınıftan erişilebilir.

Örneğin, age özelliğini private yapmak için Person sınıfımızı değiştirmek istediğimizi varsayalım. Bunu şu şekilde yapabiliriz:

<?php

class Person {
    public $name;
    private $age;
    public $gender;

    public function getAge() {
        return $this->age;
    }

    public function setAge($age) {
        if ($age < 0 || $age > 120) {
            throw new Exception('Invalid age');
        }
        $this->age = $age;
    }
}

Bu örnekte, age özelliği için alıcı ve ayarlayıcı yöntemleri ekledik. Getter yöntemi, age özelliğinin değerini almamıza izin verirken, setter yöntemi, age özelliğinin değerini doğruladıktan sonra ayarlamamıza izin verir.

4. Adım: Miras

OOP'nin bir başka temel ilkesi, mevcut bir sınıfa dayalı olarak yeni bir sınıf oluşturmamıza izin veren kalıtımdır.

PHP'de, extends anahtar sözcüğünü kullanarak bir alt sınıf oluşturabiliriz. Alt sınıf, üst sınıfın tüm özelliklerini ve yöntemlerini devralır ve ayrıca yeni özellik ve yöntemleri geçersiz kılabilir veya ekleyebilir.

Örneğin, Person sınıfımızın StudentId için ek bir özelliği olan Student adlı bir alt sınıfını oluşturmak istediğimizi varsayalım. Student sınıfımızı şöyle tanımlayabiliriz:

<?php

class Student extends Person {
    public $studentId;
}

Artık Student türündeki herhangi bir nesne, StudentId özelliğinin yanı sıra Person sınıfının tüm özelliklerine ve yöntemlerine erişebilecek.