3
Most read
4
Most read
9
Most read
C# ile Nesne Yönelimli Programlama
Object Oriented Programming
Sinan BOZKUŞ
sinan.bozkus@bilgeadam.com
- Nesne ve Sınıflardan oluşur.
- İlişkili parçalardan meydana gelir.
- Esnek ve genişletilebilir bir yapı sağlar.
- Tekrar kullanılabilirdir, kod tekrarını önler.
- Yönetimi ve bakımı kolaydır, kodlar düzen içerisindedir.
- Ekip halinde çalışmalar için avantaj sağlar.
- Günümüzde bir çok popüler dil tarafından kullanılır. (C#, Java, Php, Phyton…)
- SOLID İlkeleri
Nesne Yönelimli Programlama
- İçerisinde metotlar ve alanlar barındırabilirler.
- Yapıcı ve Yıkıcı Metotları vardır.
- Sınıflar aynı zamanda birer nesnedir.
- Erişim belirleyiciler (Access Modifiers) ile
istenilen düzeyde erişim sağlanabilir.
- Sınıflar içerisinde tanımlanan değişkenlere field
(alan) adı verilir. Her bir alan nesnenin bir
özelliğidir (property)
Class (Sınıf)
- “New” anahtar sözcüğü ile kullanılır.
- Bir nesneden (class) istenilen sayıda türetilebilir.
- Türetme işlemi yapılırken yapıcı metoda parametre
gönderilebilir.
Instance (Türetmek)
Method (Metot)
- Değer döndüren ve döndürmeyen olmak üzere ikiye
ayrılırlar.
- Metot tanımlamak için sırasıyla erişim belirleyici, dönüş
tipi, metot adı ve aldığı parametler yazılacak şekilde
tanımlanır.
- Metot geriye bir değer döndürmüyorsa dönüş tipi olarak
“void” anahtar sözcüğü, değer döndürüyorsa ilgili tip
yazılır.
- Değer döndürme işlemi metot içerisinde kullanılan
“return” anahtar sözcüğü ile yapılır.
- Metotlar istenilen sayıda ve tipte parameter alabilir. Her bir
parametre virgül ile ayrılarak yazılır.
- Aynı isimde birden fazla overload (aşırı yükleme) metot
tanımlanabilir.
Access Modifiers (Erişim Belirleyiciler)
Özel bir durum olmadıkça
varsayılan olarak değişkenler
ve metotlar private,
classlar ise internal dır.
Constructor (Yapıcı Metot)
- Sanal bellek (RAM) üzerinde nesneyi türeten metottur.
- Sınıf ile aynı isimde tanımlanır.
- Metot olmasına rağmen geriye dönüş tipi olmayan tek
metottur.
- Eğer bir yapıcı metot tanımlanırsa varsayılan yapıcı metot
iptal olur, tanımlanan varsayılan olur.
- Overload yapılabilir, yani birden fazla tanımlanabilir.
- Nesne üretilirken sınıfla ilgili yapılmasını istediğimiz bir
işlem varsa veya sınıfa parameter göndermemiz
gerekiyorsa yapıcı metotları kullanabiliriz.
- Tanımlanmazsa varsayılan olarak parameter almayan
default constructor geçerlidir.
Encapsulation (Kapsülleme)
- Nesne tabanlı programlamanın temel ilkelerinden bir
tanesidir.
- Kapsülleme ile veriye dışarıdan direkt erişimi
engelleyebiliriz. (private)
- Başka kod veya sınıflar tarafından doğrudan
kullanılmaması için bariyer görevi görür. Bu sayede
nesneler bilinçsiz kullanımdan korunabilir.
- Veri değeri atanırken (set) veya çağırılırken (get)
istediğimiz iş kurallarını uygulayabiliriz.
Inheritance (Miras/Kalıtım)
- Bir sınıf üzerindeki özelliklerin bir diğer
sınıfa aktarılmasına yarar.
- Temel sınıftaki özellikler istenen sayıdaki
sınıflara katılım yoluyla dağıtılabilir.
- Ortak özellikler tek yerde toplanarak kod
tekrarı yapılmasına engel olur.
- Bir sınıftan miras alınırken gerekirse yapıcı
metotuna parameter göndererek sınıflar
arasında veri taşıyabiliriz.
Polymorphism (Çok Biçimlilik)
- Ana sınıftan başka bir sınıf türetildiğinde, türeyen sınıfın
ana sınıf içindeki üyeleri kendine göre farklı olarak
uygulamasıdır
- Ana sınıf, kendi içindeki bir üyenin (method, değişken,
event vs.)-, kendinden türeyen başka sınıflar tarafından
değiştirilebilmesini istiyorsa virtual anahtar kelimesi ile
tanımlanmalıdır.
- Türeyen sınıf, gerektiğinde ana sınıf içindeki üyeyi
değiştirmek istiyorsa override olarak yeniden
tanımlayabilir. (Örnek: Class ToString())
- Sınıflara (class) benzer yapıda olup daha basit
ve daha performanslıdır.
- Ram üzerinde daha az yer kaplar.
- Miras/katılım almaz, struct ile çok biçimlilik
(Polymorphism) kullanılamaz.
- Parametresiz yapıcı metot tanımlamazsınız.
- Sınıflardan eski bir geçmişe sahiptir, sınıflar bu
yapının üzerine geliştirilerek kurulmuşlardır.
- Örneğin Int struct, String ise sınıftır.
Struct
- Uygulama içerisinde sabit olan ve uygulama
boyunca hiç değişmeyen seçenekleri
tanımlamak için kullanılır.
- Kod yazarken seçeneklerin anlaşılır olmasını
sağlar.
Enum (=> Enumeration)
- Ram üzerinde bir kez tanımlanır, herkes için aynıdır.
- Türetme işlemi yapılmadan ulaşılan elemanlardır.
- Bir kez tanımlandığı için ram üzerinde az yer kaplar
ve performanslıdır.
- Herkes için aynı olduğundan web tabanlı yapılarda
kullanıcı değerleri gibi verilerin taşınması amaçlı
kullanılamaz.
- Metotlarda parametreye this anahtar kelimesi
verilerek extension method oluşturulabilir.
- Statik metotlara en güzel örnek
MessageBox.Show() dur.
Static (Statik)
- Abstract Sınıf, ortak özellikli Sınıflara Base(taban) Sınıf olma
görevini üstlenir
- Standart kalıtım gibi bir diğer sınıfın özelliklerini alırken aynı
zamanda da sınıf içerisinde oluşturulması gereken zorunlu
tanımlamaları (şablon) alır.
- Abstract sınıflar türetilemezler.
- Abstract method, sadece Abstract Class’ların içerisinde
tanımlanır ve Abstract Class’ı kalıtan sınıf tarafından override
edilmek zorundadır.
- Oluşturduğumuz Abstract Class içerisine, Abstract Method
yazılırken gövdesi yazılmaz ve daha sonra Abstract Class’ımızı
kalıtacağımız sınıfta Abstract Method’u override ederiz.
Abstract (Soyut)
- Diğer sınıflara rehberlik eden bir sınıftır.
- İşi diğer sınıflara rehberlik etmek olduğundan
sadece metot şablonları tanımlanır.
- Metot içerikleri Interface içerisinde yer almaz.
- Bir interface istenilen sayıda sınıf ile kullanılabilir.
- Interface kullanan sınıflar türetilirken interface
tipinde türetilebilir, bu sayede esnek yapılar
oluşturulabilir.
Interface (Arayüz/Şablon)
BilgeAdam Nesne Yönelimli Programlama

More Related Content

DOCX
documento arquitectura
PDF
Introduction to Git
PDF
Change Data Streaming Patterns for Microservices With Debezium
PDF
Git and Github slides.pdf
PDF
MariaDB Administrator 교육
PPTX
encapsulamiento
PDF
Crear una base de datos mysql con un script de sql
documento arquitectura
Introduction to Git
Change Data Streaming Patterns for Microservices With Debezium
Git and Github slides.pdf
MariaDB Administrator 교육
encapsulamiento
Crear una base de datos mysql con un script de sql

What's hot (6)

PPTX
Hbase hivepig
PDF
InnoDb Vs NDB Cluster
PPTX
How to upgrade like a boss to my sql 8.0?
PDF
Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...
PDF
11 Curso de POO en java - métodos constructores y toString()
PPT
Programación Orientada a Objetos
Hbase hivepig
InnoDb Vs NDB Cluster
How to upgrade like a boss to my sql 8.0?
Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...
11 Curso de POO en java - métodos constructores y toString()
Programación Orientada a Objetos
Ad

Viewers also liked (8)

PDF
Learn C# Programming - Variables & Constants
PPT
C# Variables and Operators
PPT
C# Sunusu - 1
PPT
Donanım Sunusu - 5
PDF
Learn C# Programming - Decision Making & Loops
PPT
Variables
PPT
Variables
PPT
Types of Variables
Learn C# Programming - Variables & Constants
C# Variables and Operators
C# Sunusu - 1
Donanım Sunusu - 5
Learn C# Programming - Decision Making & Loops
Variables
Variables
Types of Variables
Ad

Similar to BilgeAdam Nesne Yönelimli Programlama (17)

PDF
C# OOP
PPTX
Design Patterns - Tasarım Şablonları Sunumu
PPTX
PPTX
Typescript
PPTX
Oop’nin temel ilkeleri
ODP
Ozgur web-gunleri-sunum
PPTX
OOP & SOLID
PDF
Introduction to iOS Programming && About XMPPFramework
PPTX
Base presentation
PPTX
Yazılım Prensipleri ve Code Review Check List
PPTX
Clustering Analysis DBSCAN & SOM
PPTX
Effective Java - Madde 1: Yapılandırıcılar yerine statik fabrika(factory) met...
DOC
1. nesneye dayalı programlama giriş
PPT
007 Uml Modelleri Analiz Ve Tasarim [74 Slides]
PPTX
OSI Standartları-FurkanSimsek-21907040.pptx
ODP
Hackerspace PostgreSQL Atolyesi - 1
PPTX
Mobilya ve ev eşyalarının derin öğrenme ile 128 kategoride sınııflandırılması...
C# OOP
Design Patterns - Tasarım Şablonları Sunumu
Typescript
Oop’nin temel ilkeleri
Ozgur web-gunleri-sunum
OOP & SOLID
Introduction to iOS Programming && About XMPPFramework
Base presentation
Yazılım Prensipleri ve Code Review Check List
Clustering Analysis DBSCAN & SOM
Effective Java - Madde 1: Yapılandırıcılar yerine statik fabrika(factory) met...
1. nesneye dayalı programlama giriş
007 Uml Modelleri Analiz Ve Tasarim [74 Slides]
OSI Standartları-FurkanSimsek-21907040.pptx
Hackerspace PostgreSQL Atolyesi - 1
Mobilya ve ev eşyalarının derin öğrenme ile 128 kategoride sınııflandırılması...

BilgeAdam Nesne Yönelimli Programlama

  • 1. C# ile Nesne Yönelimli Programlama Object Oriented Programming Sinan BOZKUŞ sinan.bozkus@bilgeadam.com
  • 2. - Nesne ve Sınıflardan oluşur. - İlişkili parçalardan meydana gelir. - Esnek ve genişletilebilir bir yapı sağlar. - Tekrar kullanılabilirdir, kod tekrarını önler. - Yönetimi ve bakımı kolaydır, kodlar düzen içerisindedir. - Ekip halinde çalışmalar için avantaj sağlar. - Günümüzde bir çok popüler dil tarafından kullanılır. (C#, Java, Php, Phyton…) - SOLID İlkeleri Nesne Yönelimli Programlama
  • 3. - İçerisinde metotlar ve alanlar barındırabilirler. - Yapıcı ve Yıkıcı Metotları vardır. - Sınıflar aynı zamanda birer nesnedir. - Erişim belirleyiciler (Access Modifiers) ile istenilen düzeyde erişim sağlanabilir. - Sınıflar içerisinde tanımlanan değişkenlere field (alan) adı verilir. Her bir alan nesnenin bir özelliğidir (property) Class (Sınıf)
  • 4. - “New” anahtar sözcüğü ile kullanılır. - Bir nesneden (class) istenilen sayıda türetilebilir. - Türetme işlemi yapılırken yapıcı metoda parametre gönderilebilir. Instance (Türetmek)
  • 5. Method (Metot) - Değer döndüren ve döndürmeyen olmak üzere ikiye ayrılırlar. - Metot tanımlamak için sırasıyla erişim belirleyici, dönüş tipi, metot adı ve aldığı parametler yazılacak şekilde tanımlanır. - Metot geriye bir değer döndürmüyorsa dönüş tipi olarak “void” anahtar sözcüğü, değer döndürüyorsa ilgili tip yazılır. - Değer döndürme işlemi metot içerisinde kullanılan “return” anahtar sözcüğü ile yapılır. - Metotlar istenilen sayıda ve tipte parameter alabilir. Her bir parametre virgül ile ayrılarak yazılır. - Aynı isimde birden fazla overload (aşırı yükleme) metot tanımlanabilir.
  • 6. Access Modifiers (Erişim Belirleyiciler) Özel bir durum olmadıkça varsayılan olarak değişkenler ve metotlar private, classlar ise internal dır.
  • 7. Constructor (Yapıcı Metot) - Sanal bellek (RAM) üzerinde nesneyi türeten metottur. - Sınıf ile aynı isimde tanımlanır. - Metot olmasına rağmen geriye dönüş tipi olmayan tek metottur. - Eğer bir yapıcı metot tanımlanırsa varsayılan yapıcı metot iptal olur, tanımlanan varsayılan olur. - Overload yapılabilir, yani birden fazla tanımlanabilir. - Nesne üretilirken sınıfla ilgili yapılmasını istediğimiz bir işlem varsa veya sınıfa parameter göndermemiz gerekiyorsa yapıcı metotları kullanabiliriz. - Tanımlanmazsa varsayılan olarak parameter almayan default constructor geçerlidir.
  • 8. Encapsulation (Kapsülleme) - Nesne tabanlı programlamanın temel ilkelerinden bir tanesidir. - Kapsülleme ile veriye dışarıdan direkt erişimi engelleyebiliriz. (private) - Başka kod veya sınıflar tarafından doğrudan kullanılmaması için bariyer görevi görür. Bu sayede nesneler bilinçsiz kullanımdan korunabilir. - Veri değeri atanırken (set) veya çağırılırken (get) istediğimiz iş kurallarını uygulayabiliriz.
  • 9. Inheritance (Miras/Kalıtım) - Bir sınıf üzerindeki özelliklerin bir diğer sınıfa aktarılmasına yarar. - Temel sınıftaki özellikler istenen sayıdaki sınıflara katılım yoluyla dağıtılabilir. - Ortak özellikler tek yerde toplanarak kod tekrarı yapılmasına engel olur. - Bir sınıftan miras alınırken gerekirse yapıcı metotuna parameter göndererek sınıflar arasında veri taşıyabiliriz.
  • 10. Polymorphism (Çok Biçimlilik) - Ana sınıftan başka bir sınıf türetildiğinde, türeyen sınıfın ana sınıf içindeki üyeleri kendine göre farklı olarak uygulamasıdır - Ana sınıf, kendi içindeki bir üyenin (method, değişken, event vs.)-, kendinden türeyen başka sınıflar tarafından değiştirilebilmesini istiyorsa virtual anahtar kelimesi ile tanımlanmalıdır. - Türeyen sınıf, gerektiğinde ana sınıf içindeki üyeyi değiştirmek istiyorsa override olarak yeniden tanımlayabilir. (Örnek: Class ToString())
  • 11. - Sınıflara (class) benzer yapıda olup daha basit ve daha performanslıdır. - Ram üzerinde daha az yer kaplar. - Miras/katılım almaz, struct ile çok biçimlilik (Polymorphism) kullanılamaz. - Parametresiz yapıcı metot tanımlamazsınız. - Sınıflardan eski bir geçmişe sahiptir, sınıflar bu yapının üzerine geliştirilerek kurulmuşlardır. - Örneğin Int struct, String ise sınıftır. Struct
  • 12. - Uygulama içerisinde sabit olan ve uygulama boyunca hiç değişmeyen seçenekleri tanımlamak için kullanılır. - Kod yazarken seçeneklerin anlaşılır olmasını sağlar. Enum (=> Enumeration)
  • 13. - Ram üzerinde bir kez tanımlanır, herkes için aynıdır. - Türetme işlemi yapılmadan ulaşılan elemanlardır. - Bir kez tanımlandığı için ram üzerinde az yer kaplar ve performanslıdır. - Herkes için aynı olduğundan web tabanlı yapılarda kullanıcı değerleri gibi verilerin taşınması amaçlı kullanılamaz. - Metotlarda parametreye this anahtar kelimesi verilerek extension method oluşturulabilir. - Statik metotlara en güzel örnek MessageBox.Show() dur. Static (Statik)
  • 14. - Abstract Sınıf, ortak özellikli Sınıflara Base(taban) Sınıf olma görevini üstlenir - Standart kalıtım gibi bir diğer sınıfın özelliklerini alırken aynı zamanda da sınıf içerisinde oluşturulması gereken zorunlu tanımlamaları (şablon) alır. - Abstract sınıflar türetilemezler. - Abstract method, sadece Abstract Class’ların içerisinde tanımlanır ve Abstract Class’ı kalıtan sınıf tarafından override edilmek zorundadır. - Oluşturduğumuz Abstract Class içerisine, Abstract Method yazılırken gövdesi yazılmaz ve daha sonra Abstract Class’ımızı kalıtacağımız sınıfta Abstract Method’u override ederiz. Abstract (Soyut)
  • 15. - Diğer sınıflara rehberlik eden bir sınıftır. - İşi diğer sınıflara rehberlik etmek olduğundan sadece metot şablonları tanımlanır. - Metot içerikleri Interface içerisinde yer almaz. - Bir interface istenilen sayıda sınıf ile kullanılabilir. - Interface kullanan sınıflar türetilirken interface tipinde türetilebilir, bu sayede esnek yapılar oluşturulabilir. Interface (Arayüz/Şablon)