Bu maddenin içeriğinin Türkçeleştirilmesi veya doğrultusunda düzeltilmesi gerekmektedir. Bu maddedeki yazım ve noktalama yanlışları ya da anlatım bozuklukları giderilmelidir. (Yabancı sözcükler yerine Türkçe karşılıklarının kullanılması, karakter hatalarının düzeltilmesi, dilbilgisi hatalarının düzeltilmesi vs.) Düzenleme yapıldıktan sonra bu şablon kaldırılmalıdır. |
Nesne yönelimli programlama veya kısaca NYP (İngilizce: Object - Oriented Programming, Kısaltma: OOP), Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.
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 (modularity) benimsemesidir. NYP ayrıca, bilgi gizleme (information hiding), veri soyutlama (data abstraction), çok biçimlilik (polymorphism) ve kalıtım (inheritance) 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.
NYP'nin altında yatan birimselliğin ana fikri, her bilgisayar programının (izlence), etkileşim içerisinde olan birimler veya nesneler kümesinden oluştuğu varsayımıdır. Bu nesnelerin her biri, kendi içerisinde veri işleyebilir ve diğer nesneler ile çift yönlü veri alışverişinde bulunabilir. Hâlbuki NYP'den önce var olan tek yaklaşımda (Yordamsal programlama), programlar sadece bir komut dizisi veya birer işlev (fonksiyon) kümesi olarak görülmektedirler.
Günümüzde çok çeşitli nesne tabanlı programlama dilleri olmasıyla beraber, en popüler diller sınıflar üzerine kurulmuşlardır (class-based). Bu dillerde nesneler sınıfların birer üyesidir ve nesnelerin tipini de bu sınıflar belirlerler.
En yaygın NYP dillerinden bazıları, Python, , Objective-C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby ve PHP' dir.
Nesne yönelimli programlama dilleri yukarıda adı geçen tüm ögelere sahip olurken, Ada, JavaScript, Visual Basic gibi nesne tabanlı programlama dilleri birkaçından yoksundur, bu dillerin başlıca yoksunluğu kalıtıma sahip olmamalarıdır.
Nesneler ve sınıflar
NYP'yi destekleyen programlama dilleri genellikle tekrar kullanım ve genişletilebilirlik açısından, prototipler ve sınıflar şeklinde kod kalıtımına sahiptirler ve NYP deki nesneler kimi zaman gerçek dünyada bulunan şeylere karşılık gelebilir. Mesela bir grafik programı "kare", "üçgen" ve "yuvarlak" gibi nesnelere sahip olabilir. Bazen nesneler daha soyut şeyleri de temsil edebilirler, mesela bir hesap makinesi programı logaritma almanızı ya da metreyi fite çevirmenizi sağlayacak nesnelere sahip olabilir. İşte bu bahsi geçen nesneler belli sınıflar altında bulunurlar, mesela "Kasım" adında bir nesne Aylar sınıfının bir üyesi olabilir ya da "Faktöriyel" olarak isimlendirilmiş bir nesne Fonksiyonlar sınıfında yer alıyor olabilir.
Tarih
Nesne yönelimli programı, 1960 yılında Norveç’li Norsk Resgnesentral tarafından icat edildi. Resgnesentral, ilk nesle odaklı dili olan Simula’yi üretti. 1961 yılında Simula l sınıflandırması ve sınıfların kullandığı nesneleri kullanılmaya başladı. 1967’de Ole-Johan Dahl ve Kristen Nygaard Simula 67’yi keşfetti. Simula 67, nesne yönelimlin ilk dili olarak kabul edildi ve nesne yönelimli olma kriterlerini karşılıyor. Algo 60 temelini Simula’yi olusturmak icin kullanılmışteır. Simula üniversite dışında pek ilgi görmedi.
1970 yılındaki yazılım krizinde modülerleştirmede yeni doğan dillerde nesne yönelimli olmasa da ona gerekli olan veri türü kavramını içeriyordu. Bu diller sayesinde, nesne yönelimli programlar geliştirildi.
1980 yılında ise yeni nesne yönelimli diller üretildi, örneğin Objective-C, ve Eiffel. Nesne yönelimli diller üretildiğinde nesne yönelim yeri yazılımda sağlama alindi. 1990’larda nesne yönelimli programlama yaygınlaştı bunun sebebi ise doksanlarda grafik kullanıcı arayüzlerinin popülerliğinin artmasıydı.
Son zamanlarda, nesne yönelimli programların değeri daha’da artti, çünkü nesne yönelimli programların verimli ve bakımını kolay elde etmek icin büyük katkıda bulunyor. Günümüzde yaygin olan Python ve Ruby dilleri, prosedürel programlama dilleri ile uyumludur. Ticari açıdan ise muhtemelen en önemli programa dili ise Java’dır. Java’nin kurucusu Sun Microsystems ayni zamanda C# ve Visual Basic.NET’in (VB.NET olarak da bilinir) kurucusudur.
Ayrıca bakınız
Dış bağlantılar
- İTÜ Ninova Açık Ders Malzemeleri 13 Ocak 2010 tarihinde Wayback Machine sitesinde ., Nesne Yönelimli Programlama
- (Türkçe)
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bu maddenin iceriginin Turkcelestirilmesi veya Turkce dilbilgisi ve kurallari dogrultusunda duzeltilmesi gerekmektedir Bu maddedeki yazim ve noktalama yanlislari ya da anlatim bozukluklari giderilmelidir Yabanci sozcukler yerine Turkce karsiliklarinin kullanilmasi karakter hatalarinin duzeltilmesi dilbilgisi hatalarinin duzeltilmesi vs Duzenleme yapildiktan sonra bu sablon kaldirilmalidir Nesne yonelimli programlama veya kisaca NYP Ingilizce Object Oriented Programming Kisaltma OOP Her islevin nesneler olarak soyutlandigi bir programlama yaklasimidir NYP destekleyen programlama dilleri yuksek seviye diller olarak adlandirilir NYP den onceki uygulamalarin bakim maliyeti ve karmasiklik iliskisi 1960 li yillarin sonuna dogru ortaya cikan bu yaklasim o donemin yazilim dunyasinda beliren bir bunalimin sonucudur Yazilimlarin karmasikligi ve boyutlari surekli artiyor ancak belli bir nitelik duzeyi korumak icin gereken bakimin maliyeti zaman ve caba olarak daha da hizli artiyordu NYP yi bu soruna karsi bir cozum haline getiren baslica ozelligi yazilimda birimselligi modularity benimsemesidir NYP ayrica bilgi gizleme information hiding veri soyutlama data abstraction cok bicimlilik polymorphism ve kalitim inheritance gibi yazilimin bakimini ve ayni yazilim uzerinde birden fazla kisinin calismasini kolaylastiran kavramlari da yazilim literaturune kazandirmistir Sagladigi bu avantajlardan dolayi NYP gunumuzde genis capli yazilim projelerinde yaygin olarak kullanilmaktadir NYP nin altinda yatan birimselligin ana fikri her bilgisayar programinin izlence etkilesim icerisinde olan birimler veya nesneler kumesinden olustugu varsayimidir Bu nesnelerin her biri kendi icerisinde veri isleyebilir ve diger nesneler ile cift yonlu veri alisverisinde bulunabilir Halbuki NYP den once var olan tek yaklasimda Yordamsal programlama programlar sadece bir komut dizisi veya birer islev fonksiyon kumesi olarak gorulmektedirler Gunumuzde cok cesitli nesne tabanli programlama dilleri olmasiyla beraber en populer diller siniflar uzerine kurulmuslardir class based Bu dillerde nesneler siniflarin birer uyesidir ve nesnelerin tipini de bu siniflar belirlerler En yaygin NYP dillerinden bazilari Python C Objective C Smalltalk Delphi Java Swift C Perl Ruby ve PHP dir Nesne yonelimli programlama dilleri yukarida adi gecen tum ogelere sahip olurken Ada JavaScript Visual Basic gibi nesne tabanli programlama dilleri birkacindan yoksundur bu dillerin baslica yoksunlugu kalitima sahip olmamalaridir Nesneler ve siniflarNYP yi destekleyen programlama dilleri genellikle tekrar kullanim ve genisletilebilirlik acisindan prototipler ve siniflar seklinde kod kalitimina sahiptirler ve NYP deki nesneler kimi zaman gercek dunyada bulunan seylere karsilik gelebilir Mesela bir grafik programi kare ucgen ve yuvarlak gibi nesnelere sahip olabilir Bazen nesneler daha soyut seyleri de temsil edebilirler mesela bir hesap makinesi programi logaritma almanizi ya da metreyi fite cevirmenizi saglayacak nesnelere sahip olabilir Iste bu bahsi gecen nesneler belli siniflar altinda bulunurlar mesela Kasim adinda bir nesne Aylar sinifinin bir uyesi olabilir ya da Faktoriyel olarak isimlendirilmis bir nesne Fonksiyonlar sinifinda yer aliyor olabilir TarihNesne yonelimli programi 1960 yilinda Norvec li Norsk Resgnesentral tarafindan icat edildi Resgnesentral ilk nesle odakli dili olan Simula yi uretti 1961 yilinda Simula l siniflandirmasi ve siniflarin kullandigi nesneleri kullanilmaya basladi 1967 de Ole Johan Dahl ve Kristen Nygaard Simula 67 yi kesfetti Simula 67 nesne yonelimlin ilk dili olarak kabul edildi ve nesne yonelimli olma kriterlerini karsiliyor Algo 60 temelini Simula yi olusturmak icin kullanilmisteir Simula universite disinda pek ilgi gormedi 1970 yilindaki yazilim krizinde modulerlestirmede yeni dogan dillerde nesne yonelimli olmasa da ona gerekli olan veri turu kavramini iceriyordu Bu diller sayesinde nesne yonelimli programlar gelistirildi 1980 yilinda ise yeni nesne yonelimli diller uretildi ornegin Objective C C ve Eiffel Nesne yonelimli diller uretildiginde nesne yonelim yeri yazilimda saglama alindi 1990 larda nesne yonelimli programlama yayginlasti bunun sebebi ise doksanlarda grafik kullanici arayuzlerinin populerliginin artmasiydi Son zamanlarda nesne yonelimli programlarin degeri daha da artti cunku nesne yonelimli programlarin verimli ve bakimini kolay elde etmek icin buyuk katkida bulunyor Gunumuzde yaygin olan Python ve Ruby dilleri prosedurel programlama dilleri ile uyumludur Ticari acidan ise muhtemelen en onemli programa dili ise Java dir Java nin kurucusu Sun Microsystems ayni zamanda C ve Visual Basic NET in VB NET olarak da bilinir kurucusudur Ayrica bakinizCORBA Nesne tabanli programlama dili Nesne Yonelimli Cozumleme ve Tasarim Sarma Bilgisayar Bilimleri Soyutlama Bilgisayar Bilimleri Tasarim sablonlariDis baglantilarITU Ninova Acik Ders Malzemeleri 13 Ocak 2010 tarihinde Wayback Machine sitesinde Nesne Yonelimli Programlama Turkce