Kalıtım (Inheritance)

Benzer belgeler
Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

BTEP243 Ders 3. class Yazım Kuralı:

BİL-141 Bilgisayar Programlama I (Java)

YZM 2105 Nesneye Yönelik Programlama

Nesne Yönelimli Programlama

NESNEYE YÖNELİK PROGRAMLAMA

C++ ile Nesneye Dayalı Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

NESNEYE YÖNELİK PROGRAMLAMA

Ders 8 Konu Özeti ve Problemler

C++ Dersi: Nesne Tabanlı Programlama

NESNE TABANLI PROGRAMLAMA

C++ Dersi: Nesne Tabanlı Programlama

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Operatörlerin Aşırı Yüklenmesi

YZM 2105 Nesneye Yönelik Programlama

Erişim konusunda iki taraf vardır:

1 PROGRAMLAMAYA GİRİŞ

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

YZM 2105 Nesneye Yönelik Programlama

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

YZM 2108 Yazılım Mimarisi ve Tasarımı

Nesneye Yönelik Programlama (OOP) 7.Hafta

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Bölüm 12. Nesne yönelimli programlama desteği

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

C++ Dersi: Nesne Tabanlı Programlama

public static int Toplam int x, int y

Nesneye Dayalı Programlama

Nesne Yönelimli Programlama ve Kalıtım

Programlama Dillerinde Kullanılan Veri Tipleri

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

NESNE MODELLERİ : SINIFLAR

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Inheritance. Inheritance (turetim)

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Nesne Tabanlı Programlama

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

7. HAFTA. Erişim Belirleyiciler

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

YZM 2105 Nesneye Yönelik Programlama

C++ Dersi: Nesne Tabanlı Programlama

Nesneye Yönelik Programlamaya Giriş (MATH247) Ders Detayları

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN 16/04/2009

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Object-Oriented Programming Lab Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi.

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Java Programlama (COMPE 438) Ders Detayları

Çok Şekillilik (Polymorphism)

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Görsel Programlama-I (Visual Programming) 2.Hafta

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Sunum İçeriği. Programlamaya Giriş

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Öğr. Gör. Serkan AKSU 1

Görsel Programlama-I (Visual Programming) 1.Hafta

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

Object-Oriented Programming Laboratuvar 11

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

BİL-142 Bilgisayar Programlama II

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

1. SINIFLAR Sınıf (Class) Mantığı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

3. NESNE TABANLI PROGRAMLAMANIN PRENSİPLERİ

HSancak Nesne Tabanlı Programlama I Ders Notları

Üst Düzey Programlama

Java Programlama Güz Dönemi CLASS YAPISI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

YZM 2105 Nesneye Yönelik Programlama

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Java Dersi. Altuğ Bilgin Altıntaş

C# Metotlar ve Metot Tanımlama

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

Üst Düzey Programlama

Görsel Programlama (Visual Programming) 2.Hafta

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

NESNE TABANLI PROGRAMLAMA

Transkript:

Kalıtım (Inheritance) Kocaeli Üniversitesi

Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir. Yeni değişken ve fonksiyonlar eklenebilir. Türetilmiş sınıf (Derived class) Temel Sınıfın (base class) özelliklerini miras alır 2

Kalıtım (Inheritance) 3

Kalıtım (Inheritance) 4

Kalıtım (Inheritance) 5

Kalıtım (Inheritance) Sayici.cpp 6

Kalıtım ve Erişim Düzeyleri (public kalıtım) Erişim public protected private Sınıf Üyeleri X X X Türerilmiş Sınıf Üyeleri X X Gizli Üye Olmayanlar X Gizli Gizli Türetilmiş sınıf üyeleri temel sınıfın private üyelerine doğrudan erişemezler. 7

Türetilmiş sınıfta temel sınıf üye erişilebilirliği Türetilmiş sınıf üyeleri tarafından doğrudan erişilebilir. Türetilmiş sınıf üyeleri tarafından doğrudan erişilemez. Temel sınıfın public ve protected üyeleri kullanılarak erişilir. 8

Nesneler Arası İlişki (Association) 1. Kalıtım 2 ya da daha fazla sınıf farklı olmakla birlikte benzer özelliklere sahip ise, ortak özelliklerini içeren temel sınıf tanımlanarak diğer sınıflar bu sınıftan türetilir. is a ilişkisi ( kind of ) kalıtım türetilmiş sınıf nesnesi temel sınıf nesnesi gibidir araba is a araç Kalıtım Örnekler Temel Sınıf : Türetilmiş Sınıf Dörtgen : Kare, Dikdörtgen, Paralel Kenar Araç : Araba, Kamyon, Tır, Tren Personel: Kadrolu, Sözleşmeli, Mevsimlik 2. Association uses a has a ilişkisi owns a is part of ( whole/part ) bileşim (kalıtımla ilgisi yoktur) Nesneler diğer sınıfların nesnelerini üye olarak içerirler. araba gaz pedalı, direksiyon, vites kutusu den oluşur 9

Nesneler Arası İlişki (Association) 2. Association uses a has a ilişkisi owns a is part of ( whole/part ) bileşim (kalıtımla ilgisi yoktur) Nesneler diğer sınıfların nesnelerini üye olarak içerirler. araba gaz pedalı, direksiyon, vites kutusu den oluşur 10

Kalıtım ve Yapıcılar 1. Türetilmiş sınıfa ait bir nesne oluşturulduğunda türetilmiş nesnesinin yapıcısı çağrılır. 2. Bu yapıcının komutları işletilmeden önce temel sınıf yapıcısı çalıştırılır. (Bu işlem kalıtım hiyerarşisinin en üst basamağına kadar yapılır). Türetilmiş sınıf içerisinde temel sınıf yapıcısı çağrılmamışsa varsayılan yapıcı, aksi takdire çağrılan yapıcı çalıştırılır. 3. Temel sınıf yapıcısının çalışması bittikten sonra türetilmiş sınıf yapıcısı çalıştırılır. 4. Türetilmiş sınıf içerisinde temel sınıf yapıcısı çağırmak için adını ve parametresini yazmak yeterlidir. 5. Son çalıştırılan yapıcı, ilk çağrılandır. Yapıcılar.cpp 11

Kalıtım ve Zorlanmış (Overridden) Fonksiyonlar Bir üye fonksiyonun hem temel sınıf hem de türetilmiş sınıf içerisinde tanımlanmasına denir. 1. Bir üye fonksiyon hem temel sınıf hem de türetilmiş sınıf içerisinde tanımlanırsa, türetilmiş sınıftan oluşturulan nesne türetilmiş sınıf içerisindeki fonksiyonu kullanır. 2. Türetilmiş sınıf içerisindeki üye fonksiyondan temel sınıfa ait üye fonksiyon çağrılabilir. Bunun için Temel Sınıf::Üye fonksiyon yapısı kullanılır. (Stack::push(12)) 3. Temel sınıfa ait bir nesne oluşturulursa bu nesne türetilmiş sınıf üyelerini kullanamaz. Staken.cpp 12

Personel Programı Personel.h Kadrolu.h, Saatli.h, PersonelUygulama.cpp 13

Kalıtım (Miras Alma, Inheritance) Üç düzeyli kalıtım hiyerarşisi Nokta Daire Silindir x-y koordinatları x-y koordinatları yarıcap x-y koordinatları yarıcap yukseklik 14

Çoklu Kalıtım A C B class A {. }; class B {. }; class C: public A, public B {. }; Örnek 15

Çoklu Kalıtım coklukalitimsorun.cpp 16

Çok Şekillilik (Polymorphism) ve Sanal Fonksiyonlar (Virtual Functions) Çok şekillilik bir nesnenin birden fazla şekil alabilmesidir. Bu ise kalıtım özelliğinin bir sonucudur. Kadrolu personel aynı zamanda personeldir Özellikle farklı nesneleri içeren veri toplulukları oluşturmak için kullanılabilir virtual void maasbilgigir() const = 0;// Pure virtual fonksiyon En az bir pure virtual fonksiyon içeren sınıf abstract (soyut) sınıf olarak adlandırılır. Soyut sınıftan yeni bir nesne oluşturulamaz (işaretçi ve referans kullanılabilir ) Türetilmiş sınıflarda pure virtual fonksiyonlar zorlanmalıdır Tamamen pure virtual fonksiyon içeren sınıflara interface (arayüz) denir Arayuzler bir sınıfın, davranışlarının nasıl olacağını değil, davranışlarının neler oldugunu tanımlar. Arayuzlerden yeni sınıflar turetip sanal fonksiyonların zorlanması gerekir Polymorphism/PersonelUygulama.cpp 17

18

19

20

21

22

23

24

25

Veritabanı Bağlantısı Gereksinimler Mysql sunucusu Mysql sunucuda çalışan bir veritabanı uygulaması Mysql C++ sürücüsü (kitaplık) 26

Kaynaklar Robert Lafore, Object Oriented Programming in C++, Macmillan Computer Publishing Deitel, C++ How To Program, Prentice Hall Binnur Kurt, http://www3.itu.edu.tr/~bkurt/courses/oop/polymorphism_v2.pdf Feza Buzluca, http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/21/blg-252e/ 27