Birleştirilmiş Modelleme Dili Sınıf Diyagramı (UML Class Diagram)
Birleştirilmiş Modelleme Dili, yazılım geliştiricileri tarafından nesne yönelimli sistemlerini temsil etmek için kullanılan standartlaştırılmış bir grafik dilidir. Birleştirilmiş Modelleme Dilinde her sınıf üç bölmeli bir dikdörtgen olarak modellenir. Sınıfın adı en üste kalın ve ortalanmış şekilde yazılır. Orta kısımda veri üyelerine karşılık gelen özellikleri yazılır. (Class attributes) Alt kısımda ise sınıfa ait fonksiyonlar fonksiyon ismi ve sonuna parantez getirilerek yazılır. (Memberfunctions) Fonksiyonun başına artı (+) işareti koyulması fonksiyonun genel (public) bir fonksiyon olduğunu gösterir.
Geçen ders son yaptığımız örneğe göre bir UML örneği ekleyecek olursak;
Burada sınıfımızın adı NotDefteriydi. Sınıfımıza ait özellik yoktu ve sınıfımızın mesajiGoster isimli public bir fonksiyonu vardı.
Geçen ders son yaptığımız örneğe göre bir UML örneği ekleyecek olursak;
Burada sınıfımızın adı NotDefteriydi. Sınıfımıza ait özellik yoktu ve sınıfımızın mesajiGoster isimli public bir fonksiyonu vardı.
Not: Ek bilgi eklenmesi gerektiğinde fonksiyonun parantezlerinin arasına eklenebilir. Örn; fonksiyonun parametreleri gibi.
Fonksiyonları Parametre ile Tanımlama
Bir banka hesabına para yatırmak için bir fonksiyonumuz olsun. Burada fonksiyona dışarıdan bir veri, değer girmemiz gerekir ki fonksiyonun içinde bu veriyi kullanıp sonuç elde edelim. Bunu sağlamak için parametreleri kullanıyoruz. Bir fonksiyon bir veya birden fazla parametre içerebilir. Basitçe, fonksiyonun görevini yerine getirebilmesi için dışarıdan ihtiyaç duyduğu verilerdir. Örneğin hesabınıza paraYatır fonksiyonu ile 20tl yatıracaksınız. Ancak, paraYatır fonksiyonu ne kadar yatıracağınızı bilmiyor. Burada veriye ihtiyaç duyuyor ve biz 20 değerini parametre olarak belirlenmiş yere yazacağız. Örn; paraYatır(20)
Daha iyi anlamak için geçen dersteki notDefteri örneğimize devam edelim. Ancak, bu sefer giriş mesajında kullanıcıdan veri alsın ve daha sonra girilen veriyi parametre olarak kullanarak yazdırsın.
Daha iyi anlamak için geçen dersteki notDefteri örneğimize devam edelim. Ancak, bu sefer giriş mesajında kullanıcıdan veri alsın ve daha sonra girilen veriyi parametre olarak kullanarak yazdırsın.
Kod:
[SIZE=3]// Bir parametre alan bir üye işlevi olan sınıf NotDefterini tanımlayın; [/SIZE]
[SIZE=3]// Bir NotDefteri nesnesi oluşturun ve mesajiGoster işlevini çağırın. [/SIZE]
[SIZE=3]#include <iostream>[/SIZE]
[SIZE=3]#include <string> // program C++'ın standart string sınıfını kullanıyor. [/SIZE]
[SIZE=3]using namespace std; [/SIZE]
[SIZE=3]// NotDefteri sınıfının tanımlanması [/SIZE]
[SIZE=3]class NotDefteri [/SIZE]
[SIZE=3]{ [/SIZE]
[SIZE=3]public: [/SIZE]
[SIZE=3] // Kullanıcıya mesajı gösterecek olan fonksiyon [/SIZE]
[SIZE=3] **** mesajiGoster( string hazirlayan ) [/SIZE]
[SIZE=3] { [/SIZE]
[SIZE=3] cout << "Hoşgeldiniz, bu NotDefteri " << hazirlayan << " tarafından hazırlanmıştır!" << endl; [/SIZE]
[SIZE=3] } // mesajiGoster fonksiyonunun sonu [/SIZE]
[SIZE=3]}; // NotDefteri sınıfının sonu [/SIZE]
[SIZE=3]// Main fonksiyonun başlangıcı [/SIZE]
[SIZE=3]int main() [/SIZE]
[SIZE=3]{ [/SIZE]
[SIZE=3] string hazirlayan; // hazirlayanin adını saklayacak olan string veri tipi [/SIZE]
[SIZE=3] NotDefteri benimNotDefterim; // benimNotDefterim isimli bir NotDefteri oluşturulması [/SIZE]
[SIZE=3] // Hazırlayanın adının girilmesi için komut istemi ve veri girişi [/SIZE]
[SIZE=3] cout << "Lütfen hazırlayanın adını giriniz." << endl; [/SIZE]
[SIZE=3] getline( cin, hazirlayan); // hazirlayanın adının okunması [/SIZE]
[SIZE=3] cout << endl; // boş bir satır çıktısı[/SIZE]
[SIZE=3] // benimNotDefterimin mesajiGoster fonksiyonunun çağırılması [/SIZE]
[SIZE=3] // ve hazırlayanın parametre olarak girilmesi [/SIZE]
[SIZE=3] benimNotDefterim.mesajiGoster( hazirlayan); [/SIZE]
[SIZE=3]} // Main fonksiyonun sonu[/SIZE]
Burada string sınıfına ait getline fonksiyonu input( veri girişi) almamızı sağlar. Entera basana kadar ki yazdığımız kısmı alır ve hazirlayan parametresine atar. Aslında bakarsanız burada da getline fonksiyonun da iki adet parametre kullanılmış. Birinci parametre cin yani veri almak için kullandığımız komut, ikincisi ise hazirlayan yani girdiğimiz string değerinin adı.
Burada bilmemiz gerekenler, parametreli bir fonksiyon tanımlarken parametrenin veri tipini ve değişkenin adını girmemiz gerekiyor. Örneğin, string hazirlayan; eğer birden fazla parametremiz var ise aralarına virgül koyarak devam edebiliriz. Örneğin, string hazirlayan, string isim, string soyisim vb.
Parametreli bir fonksiyonu kullanırken, gireceğimiz veriler tanımladığımız sırada girilmeli ve parantez içine yazılmalı. Bir parametre için örnek; mesajiGoster( ratio); birden fazla parametre için örnek; mesajiGoster( ratio, TurkHackTeam, THT)
Not: Fonksiyonun sonuna noktalı virgül koyulması syntax hatasına yol açar.
Not: Fonksiyonun içinde parametreyi tekrar tanımlamaya çalışmak derleme hatasına yol açar.
Not: Fonksiyonun içinde veya parametrede aynı isimde değişkenler kullanamazsınız.
Not: Parametre ve değişkenlerin isimlerinin anlamlı olması kodunuzun okunabilirliğini arttırır.
NotDefteri Sınıfı için güncellenmiş UML Diyagramı
Burada bilmemiz gerekenler, parametreli bir fonksiyon tanımlarken parametrenin veri tipini ve değişkenin adını girmemiz gerekiyor. Örneğin, string hazirlayan; eğer birden fazla parametremiz var ise aralarına virgül koyarak devam edebiliriz. Örneğin, string hazirlayan, string isim, string soyisim vb.
Parametreli bir fonksiyonu kullanırken, gireceğimiz veriler tanımladığımız sırada girilmeli ve parantez içine yazılmalı. Bir parametre için örnek; mesajiGoster( ratio); birden fazla parametre için örnek; mesajiGoster( ratio, TurkHackTeam, THT)
Not: Fonksiyonun sonuna noktalı virgül koyulması syntax hatasına yol açar.
Not: Fonksiyonun içinde parametreyi tekrar tanımlamaya çalışmak derleme hatasına yol açar.
Not: Fonksiyonun içinde veya parametrede aynı isimde değişkenler kullanamazsınız.
Not: Parametre ve değişkenlerin isimlerinin anlamlı olması kodunuzun okunabilirliğini arttırır.
NotDefteri Sınıfı için güncellenmiş UML Diyagramı
Son düzenleme: