SlideShare uma empresa Scribd logo
1 de 36
OOP’nin Temel İlkeleri ,[object Object]
Sarmalama(Encapsulation)
Çok-Şekillilik(Polymorphism)
Miras Alma/Kalıtım(Inheritance),[object Object]
2. Bölüm SARMALAMA Bir nesnenin içerisindeki bazı özel üyeleri kullanıcılardan gizleyebilme özelliğidir. Programcıyı ilgilendirmeyen veya belirli arabirimler üzerinden erişilmesi istenen alanları saklamaktır. Verilere dışarıdan gelebilecek bozulmalara, yanlış kullanımlara karşı korumaktır. Nesne içerisindeki yerel alanları, özelliklerle veya erişim belirleyicilerle sarmalarız.
2.1 Erişim Belirleyiciler public (Tüm erişimlere açık) private (Sadece üyesi olduğu sınıftan erişilebilir) protected (üyesi olduğu sınıftan ve bu sınıftan türetilmiş sınıflardan ulaşılır) internal (aynı program (assembly) içerisindeki sınıflardan erişilebilir)
private Yerel üye Dışarıdan hatta bu sınıftan türetilmiş sınıflardan bile erişilemeyeceği anlamına gelir.
public Bu üyeye her yerden erişilebilir.
Örnekte GetOrderDetail() fonksiyonu ve StoreId değişkeni publictir, CalTotal() yordamı ve Total değişkeni privatedir. Ana fonksiyonda                               IslemobjIslem=newIslem();            objIslem.                                                                                           dediğimizde public üyeler görünür, private üyeler görünmez.
protected Kendi sınıfının diğer üyeleri tarafından erişilebildiği gibi sınıfından türetilmiş sınıflardan da erişilebilir. Kendi sınıfında private, türetildiği sürece publictir.
internal Sadece aynı uygulama içerisinde olan sınıflar tarafından erişilmeyi sağlar. Sözkonusu üye, kendisiyle birlikte derlenmiş kodlar tarafından erişilir.
protectedinternal ,[object Object],[object Object]
3. Bölüm ÇOK-ŞEKİLLİLİK Aynı isimdeki yordamların  duruma göre farklı işlemler yapmasıdır. Bu biçim değişikliği bazen nesnelere göre bazen yordamlara gönderilen parametreler göre gerçekleştirilir. Bu işlemi iki şekilde sağlayabilir. Arabirim ve kalıtım yoluyla. Bu bölümde arabirime değineceğiz. Kalıtım yoluyla olanı sonraki konuda işlenecek.
3.1 Yeniden yükleme (overloading)  Aynı sınıf içerisinde parametre sayısı ve türü farklı olmak koşuluyla aynı isimde birden çok yordam tanımlanabilir. Derleyici hangi yordamı çalıştıracağını signature işlemiyle anlar. Bir yordamın signature bilgisi yordamın adı, parametre türü, parametre sırası ve paremetre erişim niceleyicisidir. Parametre ismi veya yordamın geri dönüş türü signature bilgisini etkilemez.
Yapıcı yordamlar da yeniden yüklenebilir. İlgili sınıftan bir nesne oluşturulmaya çalışılırken, yapıcı yordama ne sayıda veya ne türde parametre gönderildiği önem kazanır.
Son örnekte; overload edilmiş yordamların parametreleri, birbirine dönüştürülebilir ise CLR otomatik olarak en üst tipi seçer. Byte türü integer’e, float türü double türüne dönüştürülmesi gibi.
3.2 Arabirimler Sınıf ve struct gibi türler için oluşturulmuş modele arabirim denir. Arabirimler bir sınıfın temelde hangi üyelerden oluşacağını belirleyen şablonlardır. Bu şablonlar oluşturulacakları sınıflara öncülük eder. İçermeleri gereken üyelerin tanımlamaları için yol gösterir. .NET Framework, çoklu kalıtımı sınıflarla değil arabirimlerle destekler. Bir sınıf birden fazla arabirimden farklı ögeler alarak yetenekli hale gelebilir.
Amacı hem sınıflar tanımlanırken daha önce tanımlanmış üyelerin o sınıf için oluşturulmasını garanti etmek hem de farklı sınıflar için aynı şablonları kullanmaktır. Arabirimler üyelerin içeriklerini, yani gerçekleştireceklerini içermeyip sadece tanımlamalarını  boş hallerini içerir. Arabirimler interface sözcüğüyle tanımlanır.
Alanların kodları ve ne yapacakları sınıf içerisinde belirtilmiştir. Yapıcı yordam, yıkıcı yordam ve alanlar arabirimler içerisinde tanımlanamazlar. Arabirimlerin üyeleri private olarak tanımlanamaz, public olarak tanımlandı kabul edilir. Arabirimi uygulayan sınıf, arabirimin tüm üyelerini kullanmak zorundadır. Bununla birlikte sınıf kendine ait üyelere de sahip olabilir. Bir arabirim yapı veya sınıftan türetilemez; ama başka bir arabirimden türetilebilir.
Burada karşımıza şöyle bir sorun çıkabilir. Gerçekten Uye sınıfı Icanlı ve  Iboyut arabirimlerine dönüştürülebilecek yeteneğe sahip mi? Durumu Buna izin veriyor mu? Bunu is operatörüyle kontrol edebiliriz
3.3 Soyut Sınıf Sınıfların örnek alacağı ana sınıf şablonunu temsil eder. Soyut sınıfta, sınıflarda olması gereken öğeler tanımlanıyor ve bundan türeyecek sınıflarda bu öğelerin kullanılmasına imkan veriliyor. Arabirim ile soyut sınıf arasındaki en önemli fark, arabirim, öğelerin sadece tanımlamalarını içerirken soyut sınıf, öğelerin hem tanımlamalarını hem de içeriklerini içerir. abstract sözcüğüyle tanımlanan soyut sınıflar doğrudan kullanılamazlar. Bir sınıfın kendilerinden türetilmelerini beklerler.
Örnekte görüldüğü gibi Arac sınıfı FreneBas() yordamını kendisi gerçekleştirmiş,  Ancak Genislik özelliğini kendisini kullanacak sınıf tarafından gerçekleştirmesini istemiştir. Eğer araba sınıfında Genislik özelliğini düzenlemezsek derleyici hata verir.

Mais conteúdo relacionado

Mais procurados

Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
Alphorm
 
Inheritance
InheritanceInheritance
Inheritance
Tech_MX
 
4_Session 1- Universal ZTNA.pptx
4_Session 1- Universal ZTNA.pptx4_Session 1- Universal ZTNA.pptx
4_Session 1- Universal ZTNA.pptx
aungyekhant1
 

Mais procurados (20)

Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
Alphorm.com Formation Active Directory 2019 : Optimisation et Sécurisation av...
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
Alphorm.com Formation Hacking et Sécurité 2020 (1/3) : Méthodologies de Pente...
Alphorm.com Formation Hacking et Sécurité 2020 (1/3) : Méthodologies de Pente...Alphorm.com Formation Hacking et Sécurité 2020 (1/3) : Méthodologies de Pente...
Alphorm.com Formation Hacking et Sécurité 2020 (1/3) : Méthodologies de Pente...
 
Corso Organizzazione aziendale lezione 12 - mintzberg
Corso Organizzazione aziendale  lezione 12 - mintzbergCorso Organizzazione aziendale  lezione 12 - mintzberg
Corso Organizzazione aziendale lezione 12 - mintzberg
 
Organized and disorganized complexity
Organized and disorganized complexityOrganized and disorganized complexity
Organized and disorganized complexity
 
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıZararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
 
Inheritance
InheritanceInheritance
Inheritance
 
Srs example
Srs exampleSrs example
Srs example
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot net
 
Alt Ağlar
Alt AğlarAlt Ağlar
Alt Ağlar
 
data abstraction ,encapsulation,A.D.T
data abstraction ,encapsulation,A.D.Tdata abstraction ,encapsulation,A.D.T
data abstraction ,encapsulation,A.D.T
 
Identity Management for the 21st Century IT Mission
Identity Management for the 21st Century IT MissionIdentity Management for the 21st Century IT Mission
Identity Management for the 21st Century IT Mission
 
Unit 3 Java
Unit 3 JavaUnit 3 Java
Unit 3 Java
 
3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?
 
ATAM
ATAMATAM
ATAM
 
resilient_training_labs v12 copy.pptx
resilient_training_labs v12 copy.pptxresilient_training_labs v12 copy.pptx
resilient_training_labs v12 copy.pptx
 
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı HazırlamakZararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
 
4_Session 1- Universal ZTNA.pptx
4_Session 1- Universal ZTNA.pptx4_Session 1- Universal ZTNA.pptx
4_Session 1- Universal ZTNA.pptx
 
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi SunumuBilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
 
Pentest rapor örnek
Pentest rapor örnekPentest rapor örnek
Pentest rapor örnek
 

Semelhante a Oop’nin temel ilkeleri (7)

OOP & SOLID
OOP & SOLIDOOP & SOLID
OOP & SOLID
 
Typescript
TypescriptTypescript
Typescript
 
ıLıas
ıLıasıLıas
ıLıas
 
ıLıas
ıLıasıLıas
ıLıas
 
Base presentation
Base presentationBase presentation
Base presentation
 
Ozgur web-gunleri-sunum
Ozgur web-gunleri-sunumOzgur web-gunleri-sunum
Ozgur web-gunleri-sunum
 
Yazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check ListYazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check List
 

Oop’nin temel ilkeleri

  • 1.
  • 4.
  • 5. 2. Bölüm SARMALAMA Bir nesnenin içerisindeki bazı özel üyeleri kullanıcılardan gizleyebilme özelliğidir. Programcıyı ilgilendirmeyen veya belirli arabirimler üzerinden erişilmesi istenen alanları saklamaktır. Verilere dışarıdan gelebilecek bozulmalara, yanlış kullanımlara karşı korumaktır. Nesne içerisindeki yerel alanları, özelliklerle veya erişim belirleyicilerle sarmalarız.
  • 6. 2.1 Erişim Belirleyiciler public (Tüm erişimlere açık) private (Sadece üyesi olduğu sınıftan erişilebilir) protected (üyesi olduğu sınıftan ve bu sınıftan türetilmiş sınıflardan ulaşılır) internal (aynı program (assembly) içerisindeki sınıflardan erişilebilir)
  • 7. private Yerel üye Dışarıdan hatta bu sınıftan türetilmiş sınıflardan bile erişilemeyeceği anlamına gelir.
  • 8. public Bu üyeye her yerden erişilebilir.
  • 9. Örnekte GetOrderDetail() fonksiyonu ve StoreId değişkeni publictir, CalTotal() yordamı ve Total değişkeni privatedir. Ana fonksiyonda IslemobjIslem=newIslem(); objIslem. dediğimizde public üyeler görünür, private üyeler görünmez.
  • 10. protected Kendi sınıfının diğer üyeleri tarafından erişilebildiği gibi sınıfından türetilmiş sınıflardan da erişilebilir. Kendi sınıfında private, türetildiği sürece publictir.
  • 11. internal Sadece aynı uygulama içerisinde olan sınıflar tarafından erişilmeyi sağlar. Sözkonusu üye, kendisiyle birlikte derlenmiş kodlar tarafından erişilir.
  • 12.
  • 13.
  • 14.
  • 15. 3. Bölüm ÇOK-ŞEKİLLİLİK Aynı isimdeki yordamların duruma göre farklı işlemler yapmasıdır. Bu biçim değişikliği bazen nesnelere göre bazen yordamlara gönderilen parametreler göre gerçekleştirilir. Bu işlemi iki şekilde sağlayabilir. Arabirim ve kalıtım yoluyla. Bu bölümde arabirime değineceğiz. Kalıtım yoluyla olanı sonraki konuda işlenecek.
  • 16. 3.1 Yeniden yükleme (overloading) Aynı sınıf içerisinde parametre sayısı ve türü farklı olmak koşuluyla aynı isimde birden çok yordam tanımlanabilir. Derleyici hangi yordamı çalıştıracağını signature işlemiyle anlar. Bir yordamın signature bilgisi yordamın adı, parametre türü, parametre sırası ve paremetre erişim niceleyicisidir. Parametre ismi veya yordamın geri dönüş türü signature bilgisini etkilemez.
  • 17.
  • 18.
  • 19. Yapıcı yordamlar da yeniden yüklenebilir. İlgili sınıftan bir nesne oluşturulmaya çalışılırken, yapıcı yordama ne sayıda veya ne türde parametre gönderildiği önem kazanır.
  • 20.
  • 21.
  • 22.
  • 23. Son örnekte; overload edilmiş yordamların parametreleri, birbirine dönüştürülebilir ise CLR otomatik olarak en üst tipi seçer. Byte türü integer’e, float türü double türüne dönüştürülmesi gibi.
  • 24. 3.2 Arabirimler Sınıf ve struct gibi türler için oluşturulmuş modele arabirim denir. Arabirimler bir sınıfın temelde hangi üyelerden oluşacağını belirleyen şablonlardır. Bu şablonlar oluşturulacakları sınıflara öncülük eder. İçermeleri gereken üyelerin tanımlamaları için yol gösterir. .NET Framework, çoklu kalıtımı sınıflarla değil arabirimlerle destekler. Bir sınıf birden fazla arabirimden farklı ögeler alarak yetenekli hale gelebilir.
  • 25. Amacı hem sınıflar tanımlanırken daha önce tanımlanmış üyelerin o sınıf için oluşturulmasını garanti etmek hem de farklı sınıflar için aynı şablonları kullanmaktır. Arabirimler üyelerin içeriklerini, yani gerçekleştireceklerini içermeyip sadece tanımlamalarını boş hallerini içerir. Arabirimler interface sözcüğüyle tanımlanır.
  • 26.
  • 27.
  • 28. Alanların kodları ve ne yapacakları sınıf içerisinde belirtilmiştir. Yapıcı yordam, yıkıcı yordam ve alanlar arabirimler içerisinde tanımlanamazlar. Arabirimlerin üyeleri private olarak tanımlanamaz, public olarak tanımlandı kabul edilir. Arabirimi uygulayan sınıf, arabirimin tüm üyelerini kullanmak zorundadır. Bununla birlikte sınıf kendine ait üyelere de sahip olabilir. Bir arabirim yapı veya sınıftan türetilemez; ama başka bir arabirimden türetilebilir.
  • 29.
  • 30. Burada karşımıza şöyle bir sorun çıkabilir. Gerçekten Uye sınıfı Icanlı ve Iboyut arabirimlerine dönüştürülebilecek yeteneğe sahip mi? Durumu Buna izin veriyor mu? Bunu is operatörüyle kontrol edebiliriz
  • 31.
  • 32.
  • 33. 3.3 Soyut Sınıf Sınıfların örnek alacağı ana sınıf şablonunu temsil eder. Soyut sınıfta, sınıflarda olması gereken öğeler tanımlanıyor ve bundan türeyecek sınıflarda bu öğelerin kullanılmasına imkan veriliyor. Arabirim ile soyut sınıf arasındaki en önemli fark, arabirim, öğelerin sadece tanımlamalarını içerirken soyut sınıf, öğelerin hem tanımlamalarını hem de içeriklerini içerir. abstract sözcüğüyle tanımlanan soyut sınıflar doğrudan kullanılamazlar. Bir sınıfın kendilerinden türetilmelerini beklerler.
  • 34.
  • 35. Örnekte görüldüğü gibi Arac sınıfı FreneBas() yordamını kendisi gerçekleştirmiş, Ancak Genislik özelliğini kendisini kullanacak sınıf tarafından gerçekleştirmesini istemiştir. Eğer araba sınıfında Genislik özelliğini düzenlemezsek derleyici hata verir.
  • 36.