top of page

BİLGİSAYAR BİLİMİ KUR 1 - 2. DÖNEM 11. HAFTA - NESNE YÖNELİMLİ PROG. - KAPSÜLLEME - ENCAPSULATİON

Güncelleme tarihi: 30 Oca

ÜNİTE:


1.3. PROGRAMLAMA


KAZANIMLAR:


1.3.4.1. Örnek bir dosyanın içeriğini okuyup ekrana yazdıran programı geliştirir.





PYTHON - OOP - Encapsulation (Kapsülleme)


Encapsulation (kapsülleme), Nesne Yönelimli Programlama'da (OOP) bir sınıfın (class) verilerini ve yöntemlerini dış dünyadan gizlemeyi ve erişimi kontrol etmeyi sağlayan bir prensiptir. Python'da bu konsepti öğretirken şu başlıkları ele alabilirsiniz:


1. Kapsüllemenin Amacı


  • Veri Güvenliği: Kapsülleme, bir sınıfın iç verilerinin yalnızca ilgili metotlar aracılığıyla erişilmesini sağlar.

  • Karmaşıklığı Azaltma: Dış dünyaya gereksiz detayları gizler ve yalnızca gerekli olanları sunar.

  • Esneklik: Kodun bakımını ve geliştirilmesini kolaylaştırır.



2. Python'da Gizlilik Seviyeleri


  • Public (Genel): Bir _ veya özel bir işaret eklemeden tanımlanan değişken ve yöntemlere dışarıdan erişilebilir.



Protected (Korunan): _ ile başlayan değişkenler, bir uyarıdır. Dışarıdan erişim mümkündür ancak önerilmez.



Private (Özel): __ ile başlayan değişkenler tamamen gizlenir. Doğrudan erişim engellenir.












3. Getter ve Setter Metotları


Kapsülleme ile veriyi kontrol etmek için getter ve setter metotları kullanılır:


  • Getter: Bir özelliğin değerini almak için kullanılan bir yöntemdir. Genellikle get kelimesi ile başlar. Sınıfın özelliğine doğrudan erişimi engelleyerek, bu özelliği okuma işlemi yapmak için getter kullanılır.


  • Setter: Bir özelliğin değerini değiştirmek için kullanılan bir yöntemdir. Genellikle set kelimesi ile başlar. Bu yöntem, değerlerin sınıf içinde belirli kurallara göre değişmesini sağlar.














4. Örnek Uygulama


Bir banka hesabı uygulaması tasarlayabilirsiniz:


  • Veriler: Hesap numarası, bakiye

  • Yöntemler: Para yatırma, para çekme (limit kontrolü ile)

















OOP - Encapsulation (Kapsülleme) Özet Video:
















OOP - Encapsulation (Kapsülleme) Alıştırması:


Alıştırma 1: Öğrenci Yönetim Sistemi


Bir sınıf oluşturun: Ogrenci. Bu sınıf aşağıdaki özellikleri ve yöntemleri içermelidir:


Özellikler (Attributes):


  1. isim: Öğrencinin adı (private).

  2. soyisim: Öğrencinin soyadı (private).

  3. notlar: Öğrencinin notlarını (liste) tutan bir özellik (private).


Yöntemler (Methods):


  1. not_ekle(miktar): Yeni bir not ekler. Eğer not 0 ile 100 arasında değilse eklemeyi reddeder ve kullanıcıya bir hata mesajı döndürür.

  2. ortalama_hesapla(): Notların ortalamasını döndürür.

  3. bilgi_al(): Öğrencinin adını, soyadını ve notlarının ortalamasını kullanıcıya gösterir.



Görevler:


  1. Sınıfı yazın. Yukarıdaki özellikler ve yöntemleri tanımlayın.

  2. Test edin. Bir öğrenci oluşturun ve birkaç not ekleyerek sistemin doğru çalışıp çalışmadığını kontrol edin.

  3. Hataları deneyin. 100'den büyük veya 0'dan küçük not eklemeyi deneyin ve mesajın doğru gösterildiğinden emin olun.



Beklenen Çıktı:





Örnek Kod:



Kod Açıklaması:


  1. init Yöntemi:


    • Öğrenci adını, soyadını ve not listesini tanımladık.

    • Tüm özellikler private olarak tanımlandı.


  2. not_ekle Metodu:


    • Notun 0-100 arasında olup olmadığını kontrol ediyor.

    • Uygun olmayan değer için kullanıcıya hata mesajı gösteriyor.


  3. ortalama_hesapla Metodu:

    • Notların ortalamasını hesaplıyor. Eğer not listesi boşsa 0 döndürüyor.


  4. bilgi_al Metodu:


    • Öğrencinin adını, soyadını ve notlarının ortalamasını formatlı bir metin olarak döndürüyor.














Alıştırma 2 : Araba Sınıfı


Bir Araba sınıfı oluşturun ve aşağıdaki gereksinimlere uygun şekilde kapsülleme uygulayın.


Gereksinimler:


  1. Öznitelikler (Attributes):

    • __hiz (gizli değişken, başlangıç değeri 0 olmalı)

    • __maksimum_hiz (gizli değişken, nesne oluşturulurken belirlenmeli)

  2. Metotlar (Methods):

    • hiz_arttir(miktar): Girilen miktar kadar hızı artırır. Ancak hız, maksimum hızı aşamaz.

    • hiz_azalt(miktar): Girilen miktar kadar hızı azaltır. Hız 0’ın altına inemez.

    • hiz_goruntule(): Güncel hızı döndürür.


Kurallar:

  • hiz ve maksimum_hiz değişkenlerini doğrudan erişime kapatın.

  • hiz_arttir ve hiz_azalt metodlarında gerekli sınır kontrollerini yapın.




Çözüm:



Bu sınıf:


Kapsülleme kullanarak hiz ve maksimum_hiz değişkenlerini gizler.


Metotlar aracılığıyla hız değişimini güvenli hale getirir.


Maksimum hız ve minimum hız kontrollerini yapar.















OOP - Encapsulation (Kapsülleme) Alıştırma Çözümü Özet Video:


















Ödev:


Öğrenci Yönetim Sistemi


Bir sınıf oluşturun: Ogrenci. Bu sınıf aşağıdaki özellikleri ve yöntemleri içermelidir:


Özellikler (Attributes):


  1. isim: Öğrencinin adı (private).

  2. soyisim: Öğrencinin soyadı (private).

  3. notlar: Öğrencinin notlarını (liste) tutan bir özellik (private).


Yöntemler (Methods):


  1. not_ekle(miktar): Yeni bir not ekler. Eğer not 0 ile 100 arasında değilse eklemeyi reddeder ve kullanıcıya bir hata mesajı döndürür.

  2. ortalama_hesapla(): Notların ortalamasını döndürür.

  3. bilgi_al(): Öğrencinin adını, soyadını ve notlarının ortalamasını kullanıcıya gösterir.



Görevler:


  1. Sınıfı yazın. Yukarıdaki özellikler ve yöntemleri tanımlayın.

  2. Test edin. Bir öğrenci oluşturun ve birkaç not ekleyerek sistemin doğru çalışıp çalışmadığını kontrol edin.

  3. Hataları deneyin. 100'den büyük veya 0'dan küçük not eklemeyi deneyin ve mesajın doğru gösterildiğinden emin olun.


Oluşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.


Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.


egitimdebil@gmail.com


Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)


Bilişim Teknolojileri Öğretmeni: İshak BEZCİ


Son gün ve saat : Pazar gece 12.00








Comments


bottom of page