Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Nesneye Yönelik Programlama (5. Sunu). Nesneye Yönelik Programlama (Object Oriented Programming – OOP)

Benzer bir sunumlar


... konulu sunumlar: "Nesneye Yönelik Programlama (5. Sunu). Nesneye Yönelik Programlama (Object Oriented Programming – OOP)"— Sunum transkripti:

1 Nesneye Yönelik Programlama (5. Sunu)

2 Nesneye Yönelik Programlama (Object Oriented Programming – OOP)

3 Temel Kavramlar Nesneye Yönelik Programlama (Object-Oriented Design-OOD) (Sadece int, double yeterli mi?) Sınıf (Class)(Kullanıcı Tanımlı Veri Tipi) (User-defined Data Type) ( Deniz a;)  Üye Değişkenler (Data Members) (Attributes)  Üye Fonksiyonlar (Member Functions) (Behaviors) Nesne (Object) ( Bir fabrikada üretilen aynı otomobiller ) İçerik Gizleme (Information Hiding)  Tanım (Definition-header file) ve Uygulama (Implementation) Dosyalarının Birbirinden Ayrılması Yapıcılar (Constructors) Yıkıcılar (Destructors)

4 Temel Kavramlar Üyelere Ulaşım Belirteçleri (Member Access Specifiers) (public ve private) Üyelere Ulaşım Operatörleri (Member Access Operators) (nokta – dot (.) ve ok – arrow (->) Operatörleri) #ifndef, #define ve #endif Önişlemci Direktifleri Kapsam Belirleme Operatörü (Scope Resolution Operator, ::)

5 3 Dosyaya İhtiyaç Var Başlık (Header) Dosyası veya Sınıfın Tanım Dosyası (Definition-Declaration) Zaman.h Zaman.cpp Yurutucu.cpp #include "Zaman.h" Sınıfın Uygulama Dosyası (Implementation) #include "Zaman.h" İçerisinde main fonksiyonu bulunan ve sınıfın nesnelerinin kullanılabildiği veya sınıfın test edildiği işletme dosyası Zamanı Bir Sınıf Olarak Nasıl Temsil Edebiliriz?

6 Zaman.h Tanım Dosyası (Definition) Tanım dosyası içerisinde private üye değişkenlerin deklarasyonu ile public/private üye fonksiyonların prototipleri yer alır. ifndef, define ve endif önişlemci direktifleri Zaman Sınıfı tanımının projenin birden fazla dosyası içerisinde kullanımının nesne kodu (object code) bünyesinde tekrarını engeller.

7 Zaman.cppUygulama Dosyası (Implementation) cout<

8 Yurutucu.cpp İçinde main Olan ve Sınıfın Nesnesinin Kullanıldığı, Sınıfın Test Edildiği Dosya

9 Microsoft Visual Studio programının intellisense özelliğine dikkat ediniz.

10 Herhangi Bir Müşteriye Ait Bir Banka Hesabını Bir Sınıf Kullanarak Nasıl Temsil Edersiniz? Hangi Üye Değişkenleri ve Üye Fonksiyonları Kullanırsınız?

11

12

13

14 Tanımlanan “Sınıf” lar Nasıl Kullanılırlar? (Bir Sınıfın Nesnesi Nasıl Oluşturulur?) Zaman Sınıfı Örneği Zaman gunBatimi; Zaman dizi[5]; Zaman *zamanPtr=&gunBatimi;

15 Sınıf Aidiyet Kavramı ve Üyelere Erişim Bir sınıfın faaliyet alanında (sıkopunda):  Üye Değişkenler - Nitelikler (Data Members) Sınıf tanımında (definition) deklare edilen değişkenlerdir.  Üye Fonksiyonlar - Davranışlar (Member Functions) Sınıf tanımında (definition) deklare edilen ve “üye değişkenler” i manipule etmek için kullanılan fonksiyonlardır. Bu fonksiyonların tanımı.cpp dosyası içerisinde verilir.

16 Sınıf Aidiyet Kavramı ve Üyelere Erişim (Devam) Bir sınıfın faaliyet alanı içerisinde “Üye Değişkenler” bütün üye fonksiyonların erişimine açıktır. Bir sınıfın nesneleri sınıfın bütün public üye değişkenlerine ve public üye fonksiyonlarına kısıtlamasız erişebilirler. Bir sınıfın nesneleri sınıfın private üye değişkenlerine ve üye fonksiyonlarına ERİŞEMEZLER. private üye değişkenlerine ve private üye fonksiyonlarına sadece sınıf içerisinden ulaşılabilir.

17

18 private bir Üye Fonksiyon Olabilir mi? Cevap: Evet. Bu tür fonksiyonlara yardımcı fonksiyonlar (helper or utility functions) denir ve public üye fonksiyonların işlerini kolaylaştırmak için kullanılırlar. Böyle bir fonksiyona sınıfın nesneleri ulaşamazlar.

19 Nokta (Dot) Üyelere Erişim Operatorü (. )  Bir nesnenin, ait olduğu sınıfın public üyelerine ulaşabilmesine imkan tanır. Ok (Arrow) Üyelere Erişim Operatorü ( -> )  Bir nesneye işaret eden pointer ın, ait olduğu sınıfın public üyelerine ulaşabilmesine imkan tanır. Sınıf Aidiyet Kavramı ve Üyelere Erişim (Devam)

20 Sınıf Tanımının (Definition) ve Uygulamasının (Implementation) Birbirinden Ayrılması (İçerik Gizleme – Information Hiding) Programların modifiye edilmesini kolaylaştırır.  Uygulama dosyasında yapılan herhangi bir değişiklik sınıfın arayüzü (interface) değişmediği müddetçe sınıf kullanıcısını etkilemez.

21 Programlama Pratiği Bir sınıfın kullanıcıları sınıfın uygulama dosyasındaki kodu bilmek zorunda değildirler. Bununla birlikte bu sınıfı kullanabilmek için sınıfın object code una (yani uygulama dosyasının derlenmiş versiyonuna) ulaşabilmelidirler. Bu sayede bağımsız yazılım firmaları sınıf kütüphaneleri yazıp satabilirler. Bu tür firmalar sadece sınıfın başlık (header) dosyasını ve object modüllerini kullanıcıya verirler.

22 Yapıcı (Constructor) Sınıf ile aynı ada sahip, sınıfın üye değişkenlerine belirli bir ilk değer atamak için kullanılan ve geriye hiçbir değer döndürmeyen özel bir üye fonksiyonudur. Bir sınıf birden fazla yapıcıya sahip olabilir. (Fonksiyonların Aşırı Yüklenmesi?) Kendilerine hiçbir argüman almayan yapıcılar varsayılan (default) yapıcılar olarak adlandırılırlar.

23 Yıkıcı (Destructor) Özel bir üye fonksiyonudur. Sınıf ile aynı ada sahiptir ama isminin önünde tilda karakteri ( ~ ) bulunur. Örneğin : ~Zaman Bir nesne kapsam dışına çıktığında yok edilir ve bu işlemi perde arkasından yapan (dolaylı) yıkıcıdır. Yıkıcılar hiçbir argüman almazlar ve geriye hiçbir şey döndürmezler. (void bile kullanılmaz.) Bir sınıf sadece bir yıkıcıya sahip olabilir. Eğer kullanıcı bir yıkıcı tanımlamazsa derleyici boş bir yıkıcı tanımlar.

24 Yapıcısı 2 integer parametre kullanan MatematikselIslemler adında bir C++ sınıfı oluşturunuz ve bu sınıfın bir nesnesini main içerisinde deklare ediniz. Sınıfın bu nesnesi, yapıcısına aktaracağı integer parametreleri yine main içerisinde kullanıcıdan klavye aracılığıyla temin etmelidir. MatematikselIslemler sınıfının public tanımlayacağınız EkokuYazdir ve EbobuYazdir adındaki üye fonksiyonları ise, sırasıyla sınıfa yapıcı vasıtasıyla aktarılan integer sayıların en küçük ortak katını ve en büyük ortak bölenini bularak ekrana yazdıran parametresiz iki void fonksiyon olmalıdır. Uygulama

25 MatematikselIslemler.h

26 MatematikselIslemler.cpp

27

28 Yurutucu.cpp


"Nesneye Yönelik Programlama (5. Sunu). Nesneye Yönelik Programlama (Object Oriented Programming – OOP)" indir ppt

Benzer bir sunumlar


Google Reklamları