Nesneye Yönelik Programlama
NESNEYE
YÖNELİK PROGRAMLAMA
Nesne Yönelimli
Programlama
Nesne Yönelimli Programlama, özetle bir bilgisayar
programlama yaklaşımıdır. Günümüzde pek çok çağdaş programlama dili tarafından
desteklenmektedir. 1960’lı yılların sonuna doğru ortaya çıkan bu yaklaşım, o
dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların
karmaşıklığı ve boyutları sürekli artıyor, ancak belli bir nitelik düzeyi
korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı
artıyordu. NYP ’yi bu soruna karşı bir çözüm haline getiren başlıca özelliği,
yazılımda birimselliği benimsemesidir. NYP ayrıca, bilgi gizleme, veri
soyutlama, çok biçimlilik ve kalıtım gibi yazılımın bakımını ve aynı yazılım
üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım
literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde
geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır.
Nesne Yönelimli
Çözümleme ve Tasarım
Nesne yönelimli çözümleme ve tasarım, bir sistemin/sistem
modülleri setinin/işletme biriminin gereksinimlerinin çözümlenmesinde ve uygun
bir çözümün tasarımında nesne ile modelleme tekniklerini kullanır. Modern nesne
yönelimli çözümleme ve tasarım yöntemlerinin çoğu, gereksinim, tasarım,
uygulama, test ve dağıtım süreçleri boyunca kullanım senaryoları üzerine
kuruludur. Kullanım senaryoları. Nesne yönelimli programlama ile birlikte
ortaya çıkmış olmasına rağmen yordamsal programlanan sistemlerde de işe
yaramaktadır. Nesne Yönelimli Çözümleme, problem alanını, nesne yönelimli bir
sistem geliştirerek modeller. Analiz işlemi için kullanılacak kaynaklar. Yazılı
gereksinimler ve kullanım senaryolarından oluşur. Sistemin nasıl kurulacağını
uygulama kısıtlamaları belirler. Nesne Yönelimli Tasarım, problemin mantıksal
çözümlerinin arandığı bir etkinlik olarak tanımlanabilir. Nesne yönelimli
tasarım, nesne yönelimli çözümlemenin çıktısı olan kavramsal modeli alır ve
tasarımın temeli olarak seçilen mimari birlikte ortamdan, programlama dilinden
ve seçilen araçlardan gelen uygulama kısıtlamalarını bu model üzerine uygular.
VERİ TİPLERİ,
DEĞİŞKENLER, DİZİLER
Veri Tipleri
Değişkenler, atandıkları tipe bağlı olarak bellekte
farklı biçimlerde tutulur ve bu tiler birbirlerinden farklı boyutlara sahiptir.
Yazılımlar, genel olarak veriyi işleyip kullanıcıya sonucu sunacak şekilde
tasarlanır. Bu süreçte, kullanıcıdan da veri talep edilebilir ya da işlemler
tamamen bellekte tutulan değerler üzerinden yapılabilir. Değişkenler, yani
veriler, RAM üzerinde kısa süreli olarak saklanır. Gerçek hayatta, veriler
sınıflandırılarak kullanılır. Sınıflandırma işlemi genellikle verilerin
türlerine göre yapılır.
Değişkenler
Değişkenler bilgisayarın geçici belleğinde bilginin
saklandığı gözlere verilen sembolik adlardır. Bir C programında, bir değişken
tanımlandığında bu değişken için bellekte bir yer ayrılır. Her değişkenin
tuttuğu değerin nasıl bir veri olduğunu gösteren bir veri tipi vardır. C
programlama dilinde, değişkenler ve sabitler programın başında bulunmalıdır.
Bazı uygulamalarda değişkenin bir başlangıç değerinin olması istenir. Böyle
durumlarda değişken bildirilirken başlangıç değeri verilebilir.
Değişkenin isimleri verirken bazı kurallara uymak
zorunludur.
Bunlar:
·
Değişken adları en fazla 32 karakterden
oluşabilir. 32 karakterden uzun değişken adları ilk 32 karakteri
değerlendirilir. Geriye kalan karakterler işleme tabi tutulmaz.
·
Değişken adları İngiliz alfabesinde bulunan
karakterler (A – Z) veya (a – z) ya da rakamlar (0 – 9) ile yazılmalıdır.
Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
·
Değişken adları herhangi bir rakam ile
başlayamaz. İlk karakter bir harf olmalıdır. Sonrakiler rakamlardan oluşabilir.
Diziler
Dizi bilgisayar bilimlerinde dizinle erişilen bir veri
öbeği oluşturmak için kullanılan bir veri yapısıdır. Çoğu programlama dilinde
bir dizinin tuttuğu bütün öğeler aynı veri türündedir ve dizi ardışık bellek
adresleriyle gösterilen konumlarda saklanır. Çoğu programlama dilinin İngilizce
array sözcüğüyle tanımlanan kendisine ait bir veri türü bulunur.
Operatörler
Operatörler değişkenler veya sabitler üzerinde
matematiksel ve karşılaştırma işlemlerini yapan simgelerdir. Yani bir operatör
bir veya daha fazla nesne üzerinde işlem yapan sembollerdir. Programlama
dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine
katkıda bulunan karakter ya da karakter toplulukları operatör diye
adlandırılır. Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand
denir. C#ta operatörlerin bazıları tek, bazıları çift, bazıları da üç operand
alır.
Döngüler
Programların en çok kullanılan özelliklerinden biri de
döngülerdir. Döngüler aracılığı ile belli şartlar gerçekleşinceye kadar veya
gerçekleştikçe bir komut parçasını çalıştırmak mümkündür. Genellikle bir
programlama dilinde birden fazla döngü çeşidi bulunmaktadır. Döngü çeşitleri
kullanım yerlerine göre kolaylıklar sağlamaktadır.
Sınıf Kavramı
Sınıf, nesne yönelimli programlama dillerinde nesnelerin
özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için
kullanılan şablonlara verilen addır. Bir sınıftan türetilmiş bir nesne ise o
sınıfın örneği olarak tanımlanır. Sınıflar genelde şahıs, yer ya da bir
nesnenin ismini temsil ederler. Sınıflar metotları ile nesnelerin
davranışlarını, değişkenleri ile ise nesnelerin durumlarını kapsül ederler.
Sınıflar hem veri yapısına hem de bir ara yüze sahiptirler. Sınıflar ile nasıl
etkileşime girileceği bu ara yüzler sayesinde sağlanır.
Nesne Kavramı
Programlama dizisinde nesne - yönelimli programlamada,
nesne, basit yapılı blok programları olarak kullanılan, işletim zamanı
verilerinin saklanması için oluşturulmuş özel birimidir. Programın işlemlerde
bir koleksiyon gibi veya programın bilgisayarda komutlar listesi gibi basitçe
göründüğü geleneksel bakış açısının tersine, bu nesneler birbiri üzerinde rol
oynar. Her nesne mesaj alımına, veriyi işlemeye ve diğer nesnelere veri
aktarımına yatkındır. Her nesne farklı rollerde ve sorumluluklarda yer alan
veya bağımsız küçük makineler olarak gözlemlenebilir.
Kalıtım (Miras) ve
Süper Deyimi
Kalıtım, bir sınıfın üst sınıftan miras almasına denir.
Pratikte karışıklıklara sebep olduğundan kimi programlama dilleri, ancak tekli
kalıtıma izin verirler. Bu dillerde çoklu kalıtım yerine interface denilen
nesnelerden faydalanılarak çoklu kalıtımın verdiği özellikler, yan etkileri
olmaksızın kullanılabilmektedir. Çoklu kalıtıma izin veren programlama
dillerindeyse doğrudan bir sınıfın birden fazla sınıftan miras alması
mümkündür.
Ara Yüzler
Nesne yönelimli programlama dillerinde ara yüz, değişik
sınıflardan nesnelerin kategorize edilmesini sağlayan bir soyut tür çeşitidir.
Tanımlanmakta olan kategorinin birbirleriyle alakasız sınıfları ortak bir çatı
altında toplaması nedeniyle, ara yüz tanımları, soyut sınıfların aksine, listeledikleri iletilerin gerçekleştirim
ayrıntısı olan herhangi bir bilgi içeremez. Bir başka açıdan bakarsak, ara yüz
tanımında yer alan programlama ögelerinin zaman içinde değişme olasılığı düşük
öğeler olması gerekir. Buna göre, ara yüz tanımları gerçekleştirimci ile
kullanıcının paylaştığı ve sabit olma özelliği bulunan altı yordam imzaları ile
simgesel sabit tanımlarını barındırabilir. Kullanılan programlama dili
tarafından doğrudan desteklenmediği durumlarda ara yüz kavramı, altı yordam
gövdeleri içermeyen ve alt alan barındırmayan bir soyut tanımı ile
benzetilebilir. Soyut sınıf kavramının doğrudan desteklenmediği yordamsal
dillerde ise, ara yüzde bulunması beklenen programlama öğelerinin başlık
dosyası benzeri bir dosyada toplanması sağlanarak ara yüz kavramına
öykünülebilir. Ancak, derleyici desteğinin bulunmaması nedeniyle, her iki
kullanımın da hataya açık olduğu unutulmamalıdır.
Soyut Sınıflar
Nesne tabanlı programlamada sınıf hiyerarşisi
oluşturulurken, bazen en tepede bulunan sınıf türünden nesneler programcılar
için anlamlı olmayabilir. Hiyerarşinin en tepesinde bulunan sınıfın kendisinden
türetilecek olan alt sınıflar için ortak bir ara yüz görevi yapması
istenebilir. Bunun için çözüm olarak oluşturulan metotlara ve sınıflara soyut
metot ya da soyut sınıf denir. Soyut sınıflar büyük projelerde kullanılırlar ve
kalıtım özelliğini kullanarak kod tekrarını azaltırlar. Soyut sınıflar diğer
sınıflara taban olmak için kullanılırlar. Nesne türetemezler.
Kullanırken Dikkat
Edilmesi Gerekenler:
·
Soyut sınıflar “abstract” türünden nesneler
tanımlamazlar.
·
Soyut sınıflar içerilerinde soyut olmayan
metotlar da barındırabilir ancak metotlar sadece soyut sınıflar içerisinde
bildirilebilir.
·
Soyut metotlar türeyen sınıfta mutlaka
bildirilmelidir.
·
Soyut metotlar override edilmek
zorundadırlar, aksi takdirde derleyici hatası alınır.
·
“Static” metotlar soyut olarak
tanımlanamazlar.
·
Soyut sınıflar “private” olarak
tanımlanamazlar ama “public” ve “protected” olarak tanımlanabilirler.
·
Soyut sınıflar “sealed” anahtar sözcüğü ile
ifade edilemezler.
Yorumlar
Yorum Gönder