Nesneye Yönelik Programlama (OOP) 7.Hafta

Benzer belgeler
BTEP243 Ders 3. class Yazım Kuralı:

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

C++ Dersi: Nesne Tabanlı Programlama

BİL-141 Bilgisayar Programlama I (Java)

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

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

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

Sunum İçeriği. Programlamaya Giriş

C++ ile Nesneye Dayalı Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

YZM 2105 Nesneye Yönelik Programlama

ELN1001 BİLGİSAYAR PROGRAMLAMA I

NESNE MODELLERİ : SINIFLAR

Yrd. Doç. Dr. Caner ÖZCAN

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

1 PROGRAMLAMAYA GİRİŞ

BİL-142 Bilgisayar Programlama II

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

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

Nesne Yönelimli Programlama

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

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

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

public static int Toplam int x, int y

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Kalıtım (Inheritance)

C++ Dersi: Nesne Tabanlı Programlama

Nesneye Dayalı Programlama

Göstericiler (Pointers)

Operatörlerin Aşırı Yüklenmesi

NESNEYE YÖNELİK 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

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

Nesne Yönelimli Programlama

Ders 8: Metotlar. barisgokce.com

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

İç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.

YZM 2105 Nesneye Yönelik Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

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

Operator Aşırı Yükleme (Operator OverLoading)

NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ

Örnek1: #include <iostream> #include <string> using namespace std;

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Yrd. Doç. Dr. Caner ÖZCAN

Diziler İndisli Değişkenler

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Genel Programlama II

C++ Dersi: Nesne Tabanlı Programlama

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

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

BMH-303 Nesneye Yönelik Programlama

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

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir.

Pointer Kavramı. Veri Yapıları

Yazılım Kodlama ve İ simlendirme Standartları v1.0

YZM 2105 Nesneye Yönelik Programlama

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

YZM 2105 Nesneye Yönelik Programlama

Nesne Tabanlı Programlama

Lambda İfadeleri (Lambda Expressions)

Pointers (İşaretçiler)

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

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

B05.11 Faaliyet Alanı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Nesne Yönelimli Programlama

8. İŞARETCİLER (POINTERS)

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

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

MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI

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

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

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

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Kurucu Fonksiyonlar (Constructors)

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

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

Nesneye Dayalı Programlama

PASCAL PROGRAMLAMA DİLİ YAPISI

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

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

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.

NESNEYE YÖNELİK PROGRAMLAMA

Öğr. Gör. Serkan AKSU 1

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Transkript:

Nesneye Yönelik Programlama (OOP) 7.Hafta

Örnek :

Yapılar vs Sınıflar Yapılar ve sınıflar büyük oranda benzerlik gösterirler. Yapıların sakladığı veriler her zaman public yani erişime açıktır. Sınıflarda ise verileri public, private veya protected olarak tanımlayabilirsiniz. Veri saklama/gizleme 'nin önem taşıdığı noktalarda sınıf kullanılmalıdır.

C++ programlama dilince sınıflar class anahtar sözcüğü ile tanımlanır. class sınıf_adı{ private: //Private veri ve fonksiyonlar public: //Public veri ve fonksiyonlar } proteted: //Protected veri ve fonksiyonlar

Bir sınıf içerisinde tanımlanın veri veya fonksiyonun programın diğer bölümleri tarafından erişilmesi isteniyorsa public anahtar kelimesi mutlaka belirtilmelidir. Herhangi bir tanımlama yapılmazsa program içerisinde belirtilen tüm bölgelerin private olduğu varsayılır. Yani sadece o sınıfın üyesi fonksiyonlar tarafından kullanılabilir. Bir sınıf nesnesi yoluyla nokta operatörü kullanılarak o sınıfın private ve protected olan bölümlerine erişelemez. Bu olay kapsülleme olarak bilinir. Kapsülleme, herhangi bir nesnenin metolarını, verilerini diğer nesnelerden saklayarak veya kullanımını sınıflandırarak yanlış kullanımlardan koruyan bir konsepttir.

Sınıf İçinde Yerel Fonksiyonların Tanımlanması

Sınıf içinde yerel fonksiyon tanımlanırken class anahtar sözcüğü ile başlayan sınıf tanımı içerisine yerleştirilir.

Sınıf İçinde Genel Fonksiyonların Tanımlanması

Sınıf içinde genel fonksiyon tanımlanırken fonksiyon sınıf bildiriminin dışına taşınır. Bu durumda sınıf tanımı içinde fonksiyonun bir prototipine yer verilir. Üye fonksiyonun hangi sınıfın üyesi olduğunu bildirmek için :: kullanılır.

Kurucu (Constructor) ve Yok Edici (Destructor) Fonksiyonlar Kurucu fonksiyon, sınıf adı ile aynı isme sahip olan, herhangi bir geri dönüş tipi olmayan fonksiyondur ve nesne bildirimi gerçekleştirildiği anda otomatik olarak çağırılır. Örneğin, sınıf içindeki değişkenlere ilk değer ataması yapılmak isteniyorsa bu işlem kurucu fonksiyon içerisinde yapılmalıdır.

Nesnenin yok edilmesi esnasında ise yok edici fonksiyon çalıştırılır. Böylece nesnenin bellekte işgal ettiği alan boşaltılmış olur. Yok edici fonksiyon da sınıf adı ile aynı isme sahiptir ancak fonksiyon isminin başında ~ işareti bulunur.

Önemli Not : Eğer sınıf içerisinde herhangi bir işaretçi tanımlanmışsa yok edici (destructor) fonksiyonu çağırıldığında işaretçinin hafızada kapladığı alan serbest bırakılmaz. Eğer sınıftan bir nesne örneği new operatörü ile aşağıdaki şekilde oluşturulmuşsa yok edici fonksiyon çağırıldığında nesnenin hafızada kapladığı alan serbest bırakılmaz. kure *kure1 = new kure; Bu durumda program sonlandığında işaretçilerin hafızada kapladığı alanın boşaltılması için delete operatörü kullanılmalıdır. delete kure1;

Nesne new operatörü ile oluşturulduğundan yok edici fonksiyon program sonunda çalıştırılmadı. Bu nedenle test çıktısını üreten satır çalıştırılmadı. Böylece nesnenin hafızada kapladığı alanın serbest bırakılmadığını anlayabiliriz.

delete kure1; satırı kure sınıfının yok edici fonksiyonunu çalıştırdı. test ekran çıktısını üreten satır çalıştı. Böylece nesnenin hafızada kapladığı alan serbest bırakıldı.