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

Bu blogdaki popüler yayınlar

VLSI Devre Tasarımı

Yapay Sinir Ağlarına Giriş

İnsan Bilgisayar Etkileşimi