0% found this document useful (0 votes)
4 views24 pages

CPPL2 Intro Classes

Uploaded by

engineeringengtr
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views24 pages

CPPL2 Intro Classes

Uploaded by

engineeringengtr
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

BİL-142 Bilgisayar Programlama II

(C/C++)

Hazırlayan: [Link] Akcayol


Gazi Üniversitesi
Bilgisayar Mühendisliği Bölümü

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

1
Giriş
„ Bir program main() fonksiyonuyla bir veya daha
fazla sınıftan oluşabilir.
„ Her sınıf veri üyeleri ve fonksiyon üyelerine sahiptir
sahiptir.
„ Bir sınıf kendisiyle ilişkili tüm veriler ve fonksiyonları
içerir.

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

2
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Bir sınıf yapılan işlemleri fonksiyonları kullanılarak
gerçekleştirir.
„ Fonksiyonlar gerekirse veri üyelerini (data member)
kulanabilir.
„ Sınıf üzerinde çalışan kullanıcı fonksiyonların yaptığı
işin karmaşıklığından etkilenmez.
„ Kullanıcı bir sınıfın tanımlanmış arayüzüne (interface)
erişir
erişir.
„ Bir sınıftan birçok nesne (object) üretilebilir. Her nesne
kendisine ait özellikler ve fonksiyonlara sahip olur.

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

3
Sınıf ve Fonksiyon Üyeleri

Sınıf ve Fonksiyon Üyeleri


„ Satır 9-17 arasında GradeBook adlı bir sınıf
tanımlanıyor.
„ Satır 13-16 arasında ekrana mesaj yazan
dislayMessage() adlı bir fonksiyon tanımlanıyor.
„ main() fonksiyonu GradeBook sınıfından
myGradeBook adlı bir örnek (instance, object)
oluşturmaktadır.
„ myGradeBook nesnesinin displayMessage()
fonksiyonu çağırılarak ekrana mesaj yazdırılmaktadır.
„ public anahtar kelimesi (erişim belirleyicisi-access
specifier) bu üyeye herkes tarafından ulaşılacağını
ifade eder. (gelecek derslerde ayrıntılı görülecektir.)
8

4
Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları

10

5
Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları

11

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları

12

6
Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları

Ekran çıktısı

13

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları


„ Satır 15-40 arasında GradeBook adlı bir sınıf
tanımlanıyor.
„ public ve private olarak iki kısımdan oluşmaktadır.
oluşmaktadır
„ private üyelere sadece GradeBook sınıfının
fonksiyon üyeleri (setCourseName,
getCourseName, displayMessage) tarafından
erişilebilir.
„ Private bir üyeye dışarıdan erişmek istendiğinde
([Link]) aşağıdaki hata oluşur:
cannot access private member declared in class 'GradeBook'

„ Satır 45’teki string değişkeni <string> header


file içinde tanımlıdır.
14

7
Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Satır 54’teki getline fonksiyonu birden fazla boşluk
içeren girişleri almak için kullanılır. (cin ilk boşluğa
kadar alır. cin >> nameOfCourse)
„ Satır 19, setCourseName fonksiyonu courseName
değişkenine değer atar.
„ Satır 25, getCourseName fonksiyonu courseName
değişkeninin değerini geri döndürür.
„ Satır 31
31, displayMessage fonksiyonu ekrana mesaj
metni yazar.
„ Satır 36, endl satır sonu yapmak için kullanılır.

15

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

8
Nesneleri Başlatma ve Constructor Fonksiyonu
„ Bir sınıftan oluşturulan nesneye ilk tanımlandığında
başlangıç değeri atanabilir.
„ Başlangıç değeri atamak için kullanılan fonksiyonun
(constructor) adı sınıf adıyla aynıdır
„ Constuctor bir veya birden fazla data member veya
function member çağırabilir.

17

Nesneleri Başlatma ve Constructor Fonksiyonu

18

9
Nesneleri Başlatma ve Constructor Fonksiyonu

19

Nesneleri Başlatma ve Constructor Fonksiyonu

Ekran çıktısı

20

10
Nesneleri Başlatma ve Constructor Fonksiyonu
„ Satır 17-20 GradeBook sınıfının constructor’ını
tanılamaktadır.
„ Yeni bir nesne oluşturulduğunda constructor
constructor’da
da
belirlenen parametreler verilir (satır 49-50).
„ Constructor ‘lar herhangi bir değer döndürmezler. O
yüzden return kullanılmaz.

21

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

11
Sınıflar ve Ayrı Dosyalarda Kullanılması
„ Bir sınıfı, main() fonksiyonu ile birlikte
oluşturduğumuzda başka programlarda include
yaparak kullanamayız.
„ Derleyici iki tane main() fonksiyonu olduğu için hata
mesajı verir.
„ Header file tanımlayarak başka programlarda include
ederek kullanabiliriz.
„ Bir header file .h
h uzantılıdır ve main() fonksiyonu
bulundurmaz.
„ Bir header file run yapılmaya çalışılırsa derleyici hata
aşağıdaki gibi bir mesaj verir.
undefined reference to 'main' 23

Sınıflar ve Ayrı Dosyalarda Kullanılması

24

12
Sınıflar ve Ayrı Dosyalarda Kullanılması

// Header file tanımı sonu.

25

Sınıflar ve Ayrı Dosyalarda Kullanılması

26

13
Sınıflar ve Ayrı Dosyalarda Kullanılması
„ Header file <> yerine “” ile gösterilir.
„ Header file satırına geldiğinde derleyici önce
programın source code’unun
code unun bulunduğu dizine bakar
bakar.
Orda yoksa library file (<> ile gösterilen) dizinine
bakar.
„ Header file’ların program kaynak koduyla aynı dizinde
olması veya library file dizininde yer almalıdır.
„ Header file kullanımı ile reusability artmaktadır.
artmaktadır

27

Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

14
Interface ve Implementation
„ Header file sadece bir sınıfın prototipini belirleyebilir.
„ Sınıfın tüm fonksiyon üyelerinin kodu ayrı bir kaynak
kodu ile oluşturulabilir.
oluşturulabilir
„ Header file interface, diğer kaynak kod ise
implementation kısmını oluşturur.
„ Kaynak kodun adı ile header file’ın adı aynıdır, uzantısı
farklıdır (.h, .cpp).

29

Interface ve Implementation
„ Prototip sınıf tanımlaması fonksiyonların yaptığı işlerin
farklı kullanıcılar tarafından değiştirilmesine olanak
sağlar.
„ Prototip içinde fonksiyon tanımlamaları sonuna ;
konulur.
„ Prototip sınıf tanımlamalarında fonksiyonların değişken
adlarının yazılması opsiyoneldir.

30

15
Interface ve Implementation
Prototip sınıf tanımlaması

31

Interface ve Implementation
Fonksiyon üyelerin tanımlaması - 1

32

16
Interface ve Implementation
Fonksiyon üyelerin tanımlaması - 2

33

Interface ve Implementation
Tanımlanan sınıfın kullanılması

34

17
Interface ve Implementation
Ekran çıktısı

35

Compile ve link işlemi

36

18
Konular

„ Giriş
„ Sınıflar Nesneler
Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri
„ Sınıf ve Fonksiyon Üyeleri
„ Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları
„ Nesneleri Başlatma ve Constructor Fonksiyonu
„ Sınıflar ve Ayrı
y Dosyalarda
y Kullanılması
„ Interface ve Implementation
„ Set Fonksiyonuyla Veri Geçerleme

Set Fonksiyonuyla Veri Geçerleme


„ Bir sınıfın data üyelerinin değerlerinin geçerliliği set
fonksiyonları tarafından yapılabilir (validation).
„ Atama işlemi yapılırken istenen şartlar kontrol edilir.
edilir
„ İstenen şartlar sağlanmıyorsa kullanıcıya mesajla uyarı
verilebilir.

38

19
Set Fonksiyonuyla Veri Geçerleme
Sınıf prototip tanımı

39

Set Fonksiyonuyla Veri Geçerleme


Sınıf fonksiyonlarının tanımı - 1

40

20
Set Fonksiyonuyla Veri Geçerleme
Sınıf fonksiyonlarının tanımı - 2

41

Set Fonksiyonuyla Veri Geçerleme


Sınıf fonksiyonlarının tanımı - 3

42

21
Set Fonksiyonuyla Veri Geçerleme
„ length() fonksiyonu bir string içindeki karakter
sayısını verir.
„ substr() fonksiyonu bir string içinden bir kısmı
almak için kullanılır.
„ setCourseName() fonksiyonu name değişkeninin
karakter sayısını kontrol eder.
„ name değişkeninin karakter sayısı 25’ten büyükse ilke
25 karakteri alır
alır.
„ Aşağıdaki satırla karakter sayısı 25’ten büyükse
kullanıcıya mesaj verilir.

43

Set Fonksiyonuyla Veri Geçerleme


Tanımlanan sınıfın kullanılması - 1

44

22
Set Fonksiyonuyla Veri Geçerleme
Tanımlanan sınıfın kullanılması - 2

45

Set Fonksiyonuyla Veri Geçerleme


Ekran çıktısı

46

23
Ödev
„ Bir hesap makinesi sınıfı oluşturunuz.
„ Hesap makinesi sınıfını prototip ve kaynak kodla geliştiriniz.
„ Bir program ile include yaparak çalıştırınız.
„ Hesap makinesi
ki i toplama,
l çıkarma,
k çarpma ve böl
bölme işlemleri
i l l i yapacaktır.
k
„ İşlemler aşağıdaki gibi ardarda girilen iki sayı kullanılarak yapılacaktır.
[Link]ıyı giriniz:20
[Link]ıyı giriniz:10
„ İki sayı girildikten sonra ekrana aşağıdaki işlem menüsü gelecek ve yapılan
girişe göre işlem yapılarak sonuç ekrana yazılacaktır.
1- Toplama
1
2- Çıkarma
3- Çarpma
4- Bölme
İşlem türünü seçiniz (1,2,3,4) : 2

İşlem sonucu = 10 47

24

You might also like