C++’da Nesne Kavramı C++’da Nesne Kavramı 1.Nesne Nesneye yönelik çözümleme ve tasarım yöntemi de bir dizi tanım, gösterim şekli ve yordam kullanılmaktadır. Bunlar , kullanılan araç veya dile göre küçük farklılıklar gösterseler de temelde aynıdırlar. En önemli ortak özellik olan nesne gerçek dünyadaki varlıkların yazılım alanına uyarlamasında kullanılır. En basit anlamıyla nesne, mantıksal bir varlıktır. Örneğin; kendimizi bir nesne olarak düşünelim. Boyumuz, kilomuz, ten rengimiz, göz rengimiz ve daha bir çok özellik fiziksel görünüşümüzü belirler. İşte bu fiziksel görünüşümüzü belirleyen verilere (değişkenlere) özellik diyoruz. Konuşma, yürüme, koşma gibi eylemler ise yapabildiğimiz işleri metodlarımız belirler. Yazılımda kullanılan nesne ise verileri ve bu veriler üzerinde işlem yapmaya yarayan program kodunu içeren bir varlıktır. Programlama açısından nesneler birer kara kutu niteliğindedir. Her nesnenin bir arayüzü, bir veri yapısı ve bir dizi işlemi vardır. 1.1. Nesne Sınıflandırma Nesnelerin birbirleri arasında ilişki kurmak, ortak özeliklerini belirlemek ve tekrar kullanımı destekleyebilmek için nesnelerin sınıflandırılmasında fayda vardır. Nesneleri kullanıldıkları yerlere ve kullanım amaçlarına göre şu şekilde sınıflandırmak mümkündür: Denetim Nesneler bir yazılım biriminin, yani programın, normal akışı sırasında bilgi işleme denetim unsuru olarak görev yapabilirler. Bilgisayar sistemi, yazılım içinde bir nesne ile gösterilir ve sistemi denetimi bu nesnenin sağladığı arayüz yordamları ile sağlanır. Uygulama Bir yazılım içinde belirli amaçların gerçekleştirilmesi için nesneler kullanılabilir. Çeşitli varlıkların bilgisayar ortamında gösterimi nesnelerle yapılarak soyutlama (abstraction) ve kapsama (encapsulation) sağlanır. Veri Yönetimi Üzerinde işlem yapılacak veriler birer nesne haline getirilir ve bu nesneler üzerinde yapılan yordamlar (method) tanımlanır. Nesneye yönelik veri tabanı yönetim sistemi buna bir örnektir. Arayüz Kullanıcı ile uygulama arasındaki arayüzü de nesnelerle sağlamak mümkündür. Bu da her iki düzey arasında bağımsızlık oluşturduğundan herhangi birinde yapılacak değişiklik veya gelişim diğerini fazla etki etmez. 1.2. Nesne Yapıları Bir nesnenin ana yapısında iki önemli kısım vardır : Öznitelik (attribute) ve işlem (operation). Öznitelikler çözümleme sırasında dikkate alınmak üzere seçilen nesneyi tanımlar ve uygulama alanında anlam taşıyan nesne kavramını oluştururlar. Nesnelerin özniteliklerini değiştirmek ve nesneye bir iş yaptırmak için de işlemler kullanılır. Bu işlemlere yordam ya da metot adı verilmektedir. Öznitelik ve yordamların belirlenmesi nesneye yönelik çözümlemenin temelini oluşturur. Özniteliklerin belirlenmesi, çözümleyicinin nesneleri belirlemede kullandığı yönteme benzer şekilde, problem tanımını anlatan metnin tekrar incelenmesiyle başlar. Nesneye ait olabilecek her şey, genellikle isimler işaretlenir. Hangilerinin birer veri öğesi olabileceği belirlenir. Bileşik tipte olan veri öğeleri de tekil öğeler şeklinde tanımlanır. Bu şekilde bir öznitelik listesi oluşturulur. Yordamlar, nesnenin içinde tutulan bir ya da daha fazla özniteliği değiştirebilirler. Bir kısım yordam yalnızca değişiklik yapabilirken, bir kısım yordam da hesaplama yapabilir. Bazıları da nesnenin iç yapısı hakkında kullanıcısına bilgi sağlar. Yordamlarda öznitelikler gibi problemi anlatan metin içinden çıkartılır. Bir nesneyle ilişkisi olabilecek fiiller, yani eylemler, işaretlenir, seçilir ve listelenir. Yordamların bir kısmı da nesneler arası iletişimi kurmak için kullanılır. Bu amaçla oluşturulan tek ya da çift yönlü düzeneğe ileti, yani mesaj denir. Nesneler bu iletileri birbirlerine aktararak haberleşirler. Gönderici nesneler alıcı nesnelerin ne yapmaları gerektiğini bu iletilerle bildirirler. Çözümleme sırasında, iletişimi sağlayan gönderici ve alıcı nesnelere ait işlemler de belirlenir. Nesnelerin tanımlanmasındaki son aşama nesnelerin yaşam süreleriyle ilgilidir. Nesneler yaratılır, öznitelikleri değiştirilir, belli bir iş yaparlar, işleri bitince de silinirler. Bu amaçla, kullanımı o an için öngörülmese dahi uygun yapıcı ve yokedici işlemlerin de belirlenmesinde fayda vardır. 1.3. Nesne Gösterimi Nesneler birbirleriyle ilişkili veri ve işlemleri bir arada tutarak kapsama (cncapsula- tion) ve iyi tanımlanmış bir arayüz ile modülerlik (modularity) ilkelerini desteklerler. Nesnenin genel kısmı herkese açık ve paylaşılır verileri içerirken özel kısmında yalnızca kendisi tarafından kullanılan veriler bulunur. Böylelikle de bilgi gizleme (information hiding) ilkesi desteklenmiş olur. Program Dilleri Özellikleri? ve Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tek tipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 2500’den fazla programlama dili yapılmıştır Programlama dilleri insanların algılamasına yakın olmasına göre 3 gruba ayrılır. Alt seviye programlama dilleri: Makine koduna oldukça yakın programlama dilleridir. Makine hakimiyeti oldukça gelişmiştir.Bu programlama dillerini bilen kişilerin mikro işlemciler hakkında bilgi sahibi olması gereklidir.(Assembly programlama dili gibi) Orta seviye programlama dilleri: Oldukça esnek olan bu diller hem üst hem alt seviye programlama yapabilirler. Alt seviye dillere oranla biraz daha anlaşılırdır. (C programlama dili gibi.) Üst seviye programlama dilleri: Olay tabanlı programlama dilleri olarak da adlandırılırlar yalnız bu programlama dilleri sadece belirli fonksiyonlar etrafında çalışırlar ve programlama hakimiyetini azaltırlar. En hızlı ve en etkili programlama dilleri bu kategoridedir. (visual basic ve pic basic pro gibi) Diğer programlama dillerine kıyasla daha kolay öğrenildiği ve uygulandığı için yeni başlayanlara en uygun diller üst seviye programlama dilleridir. Aşağıda Bazı Program Dillerin tanımlarını yapacağız. C Dili: AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi‘ ni geliştirebilmek amacıyla B dilinden türetilmiş yapısal bir programlama dilidir. Geliştirilme tarihi 1972 olmasına rağmen yayılıp yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan “C Programlama Dili” kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin (Microsoft Windows, GNU/Linux, *BSD, Minix) yapımında %95′ lere varan oranda kullanılmış, halen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir C++ Dili: C++, Bell Laboratuvarlarından Bjarne Stroustrup tarafından 1979 yılından itibaren geliştirilmeye başlanmış, C‘yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir. İlk olarak C With Classes (Sınıflarla C) olarak adlandırılmış, 1983 yılında ismi C++ olarak değiştirilmiştir. Donanım ve yazılımın bir veya daha fazla yapılandırması o programı çalıştırmak için bir tür yol sağlar. Programlama dili uygulamasında iki yaklaşım vardır: Derleme ve yorumlama. Herhangi bir tekniği kullanarak bir programlama dili uygulamak mümkündür. C# Dili: C# Microsoft tarafından geliştirilmiş olan bir programlama dilidir. C++ ve Java dillerine oldukça benzer, ancak C#’ın bu dillere benzerliği yanında farkları da vardır. Örneğin C#, C++’dan farklı olarak % 100 nesne yönelim tekniğine sahiptir. Java’dan farklı olarak ise C#’ta gösterici (pointer) kullanılabilir. Böylelikle eski yazılım bileşenleriyle uyumlu bir şekilde çalışılabilir. C# kodları, C++ veya Visual Basic’ten farklı olarak direkt makine koduna derlenmez. Önce IL dediğimiz bir ara koda derlenir. C#’la şunları yapabilirsiniz: Konsol uygulaması geliştirme Windows uygulaması geliştirme ASP.NET uygulaması geliştirme Web servisleri yazma Mobil uygulama geliştirme (PDA, cep telefonları vb. için) DLL yazma(Dll:Dinamic Link Library(DLL dosyalarının görevi, programların ortaklaşa yaptıkları görevi koordine etmektir.) JAVA: Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen (yorumlanan-interpreted) bir dildir. Java ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir düzlem dili olarak düşünülmüştü. Ancak düzlem bağımsızlığı özelliği ve tekbiçim kütüphane desteği C ve C++‘tan çok daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunduğundan, hemen her yerde kullanılmaya başlanmıştır. Şu anda özellikle kurumsal alanda ve mobil cihazlarda son derece popüler olan Java özellikle J2SE 1.4 ve 5 sürümü ile başlamıştır PYTHON: masaüstü Python, yorumlamalı, etkileşimli uygulamalarda nesne da yaygınlaşmaya yönelimli, birimsel (modüler) ve yüksek seviyeli bir programlama dilidir. Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır. Modüler yapısı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen her türlü platformda çalışabilir. (Unix , Linux, Mac, Windows, Amiga, Symbian) Python ile sistem programlama, kullanıcı arabirimi programlama, ağ programlama, uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir. PHP: İnternet için üretilmiş, sunucu taraflı, çok geniş kullanımlı, genel .amaçlı, HTML içerisine gömülebilen betik ve programlama dilidir. PHP kodları PHP işleme modülü bulunan bir web sunucusu tarafından yorumlanır ve çıktı olarak web sayfası üretilir. Bu kodlar veriyi işlemek üzere harici bir dosyaya kaydedilerek çağırılabildiği gibi doğrudan HTML kodunun içine de gömülebilir. PHP zaman içinde bir komut satırı arayüzü sunacak şekilde evrilmiştir, PHP özgür bir yazılım olup PHP Lisansı ile dağıtılmaktadır. PHP tüm web sunuculara ve hemen hemen tüm işletim sistemi ve platforma ücretsiz olarak yüklenebilir PHP, özellikle mysql veritabanıyla birlikte ve Linux işletim sistemi altında iyi bir performans sergilemektedir. C/C++ diline olan benzerliği nedeniyle bu dili önceden bilenlerin PHP öğrenmesi oldukça kolaydı kaynaklar:http://www.godoro.com/Divisions/Ehil/Mecmua/Magazine s/Articles/txt/html/article_ProgrammingAndLanguage.html http://www.robotiksistem.com/programlama_dilleri_ozellikleri.h tml https://tr.wikipedia.org/wiki/PHP Rifai KUÇİ