nesne tabanlı programlama dilleri hangileridir / Nesneye Yönelik Programlama (Object Oriented Programming) | Geleceği Yazanlar

Nesne Tabanlı Programlama Dilleri Hangileridir

nesne tabanlı programlama dilleri hangileridir

kaynağı değiştir]

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[değiştir

Nesne Yönelimli Programlama (OOP) Nedir?

Karmaşık gerçek yaşam gereksinimlerinin, bilgisayarın anlaması için talimatlara modellenmesi gerekir. İşlemsel Programlama, Nesne yönelimli programlama, İşlevsel Programlama vb. gibi iş gereksinimlerini bilgisayar programlarına modellemeye yardımcı olabilecek birkaç paradigmamız var. Nesne yönelimli programlama adı verilen böyle bir paradigmayı öğreneceğiz. Nesne Yönelimli Programlama (OOP) bir felsefedir ve dilden bağımsızdır.

Nesne Yönelimli Programlamanın temel direkleri olarak hareket eden dört konsepte bir göz atacağız.

  • Soyutlama (Abstraction)
  • Kapsülleme (Encapsulation)
  • Miras (Inheritance)
  • Polimorfizm (Polymorphism)

Nesneye Yönelik Programlama Nedir?

COBOL ve C gibi daha eski programlama dilleri, Prosedürel Programlama yaklaşımını izledi. Bu diller kullanılarak yazılan program, bir dizi adım adım talimattan ibaretti. Programı modüler hale getirmek için prosedürlerden/alt programlardan yararlandılar. Bu programlama paradigması, veriden çok mantığa ve her ikisini bir araya getirmek için kullanılan programa odaklandı.

Java, C# vb. gibi modern programlama dilleri Nesne Yönelimli yaklaşımı izler. Nesne yönelimli programlamada, sadece bir görevi tamamlamak için talimatlar yazmak yerine verilere önem verilir. Nesne, programınızda modellemek istediğiniz bir şey veya fikirdir. Bir nesne herhangi bir şey olabilir, örneğin, çalışan, banka hesabı, araba vb.

Sınıf (Class), Nesne (Object) nedir?

Nesne yönelimli programlamaya başlamak için sınıf ve nesnenin ne olduğunu ve aralarındaki farkı bilmemiz gerekir. Sınıf, bir nesne oluşturmak için bir plandır. Bir evin mavi baskısına benzer. Bir sınıf, nitelikleri ve davranışı tanımlar.

class-ve-object-nedir

Uygulamamızda bir arabayı modelleyeceksek, o arabanın model, yakıt, marka gibi niteliklerini ve kalkış, fren, hızlanma vb. davranışları tanımlayabiliriz. Dikkat ederseniz, belirttiğimiz nitelikler ve davranışlar değil. sadece bir araba modeline özel. Programımızda modelleyeceğimiz arabanın bu sayıda özellik ve davranışa sahip olacağını söyleyerek bir arabayı genelleştirmeye çalışıyoruz. Başkaları da olabilir ama bizim iş gereksinimine olan ilgimiz ve kapsamımız bu özelliklerle sınırlıdır. Bu, arabanın mavi bir baskısını oluşturmamıza yardımcı olur ve daha sonra bu sınıfı nesneler oluşturmak için kullanırken belirli ayrıntılara sahip araba nesneleri oluştururuz.

car-class

Örnek olarak, aynı sınıf "Araba"yı kullanarak, aynı ortak davranışa sahipken model (_model), yakıt türü (_fuelType) ve yıl bakımından farklılık gösteren farklı nesneler oluşturabiliriz.

Bu şekilde, Nesne yönelimli programlama, gerçek dünyadaki karmaşık sistem davranışını kolayca modellemenize olanak tanır. OOP ile veriler ve işlevler (öznitelikler ve yöntemler) nesne içinde bir araya toplanır. Bu, nesne yönelimli ve prosedürel yaklaşımlar arasındaki temel fark olan OOP ile herhangi bir paylaşılan veya global veri ihtiyacını önler.

1. Soyutlama (Abstraction)

Soyutlama, nesnenin nasıl yapıldığı yerine ne yaptığına odaklanmanızı sağlar. Soyutlamanın arkasındaki fikir, bir şeyi yüksek düzeyde bilmektir. Soyutlama, birbirleriyle bir şekilde etkileşime girebilen bağımsız modüller oluşturmaya yardımcı olur. Bağımsız modüller ayrıca bakımı kolaylaştırır.

Soyutlama, arka plan uygulamasını veya dahili çalışma detayını detaylandırmadan temel özelliği temsil etmek anlamına gelir.

Yalnızca bizim için veya programlama durumunda modülümüz için önemli olan şeylere seçici olarak odaklanmaya çalışıyoruz. Bağımsız bir modülün değiştirilmesi diğer modülleri etkilemez. Bir kişinin bilmesi gereken tek bilgi, bir modülün size verdiği şeydir. Bu modülü kullanan kişinin, görevin nasıl başarıldığı veya arka planda tam olarak ne olduğu hakkında endişelenmesine gerek yoktur.

Soyutlama her yerdedir. Kullandığımız günlük nesnelerin çeşitli düzeylerde uygulanan soyutlamaları vardır. Bir örnek, arabanızda veya bisikletinizde molalar vermektir. Fren sistemi soyutlanmış ve size aracınızı durdurmak için bir kürek verilmiştir. Hızlanma sisteminde değişiklik yapmak, bağımsız oldukları fren sistemini etkilemez. Ayrıca frenlerin dahili çalışması ile uğraşmanıza gerek yok, sadece fren pedalına basmanız yeterli ve ister disk fren ister kampana fren olsun araç duruyor.

2. Kapsülleme (Encapsulation)

İkinci kavram Kapsülleme, Soyutlama ile yakından ilgilidir. Kapsülleme, tüketicinin sorun alanını tam olarak anlamasını gerektirmeden bir soruna bir çözüm sunmakla ilgilidir. Kapsülleme, verileri ve davranışları tek bir birimde birbirine bağlamaktır. Bu, istemcinin veya modülün kullanıcısının, soyutlama davranışının uygulandığı iç görünüm hakkında bilgi sahibi olmasını engeller.

oop-encapsulation

Verilere doğrudan erişilmez. Açıktaki işlevler aracılığıyla erişilir. Nesnenin dahili bilgilerinin gizlenmesi, kullanıcıların bileşenin dahili verilerini geçersiz veya tutarsız bir duruma getirmelerini engelleyerek bütünlüğünü korur.

Kapsülleme, yalnızca karmaşıklığı gizlemekle kalmaz, tersine karmaşıklığı hatasız bir şekilde açığa çıkarır.

3. Miras (Inheritance)

Kalıtım, Nesne yönelimli programlama dillerinin güçlü bir özelliğidir. Kalıtım, sınıfları bir hiyerarşide düzenlemeye ve bu sınıfların, hiyerarşide yukarıdaki sınıflardan nitelikleri ve davranışları devralmasını sağlamaya yardımcı olur.
Kalıtım bir “IS A ilişkisini” tanımlar. Gerçek dünyada böyle konuşuyoruz. Örnek. Papağan bir kuştur. ABD Doları bir para birimi türüdür. Ancak Banka bir banka hesabıdır deyimi doğru değildir. Bu ilişki, verilen iş/sorun ifadesinde bazı varlıkları tanımlamaya çalıştığınızda açıktır. Kalıtım ile ortak bir uygulama/davranış tanımlayabilir ve daha sonra özel sınıflar için bunu değiştirebilir veya özel bir şeye dönüştürebilirsiniz. Kalıtım geriye doğru çalışmaz. Ebeveyn, türetilmiş sınıfın özelliklerine sahip olmayacaktır.

Miras, kodun yeniden kullanımı için bir mekanizmadır ve kodun tekrarını azaltmaya yardımcı olabilir.

Mirası zorlamayın. Sadece gereksiz kod yazıyorsunuz. Gereksinimi modellemeye çalışırken birden fazla kalıtım düzeyi eklemediğini belirtmek önemlidir. Bu gerekli değil. Modellediğiniz varlıklardaki ortak öznitelikleri ve davranışı belirlemeye çalışmanız gerekir ve buna dayanarak uygun bir üst sınıf tanımlayan kodu yeniden faktörlendirmeye devam edebilirsiniz. Ortak uygulama daha sonra bu sınıfa taşınabilir.

4. Polimorfizm

Polimorfizm, yürütülebilir bir birimin birçok farklı uygulamasının olabileceği ve aradaki farkın, arayanın farkındalığı olmadan sahnenin arkasında gerçekleştiği kavramıdır. Polimorfizm, bilgisayar sistemlerinin, oluşturulan yeni özel nesnelerle genişletilmesine izin verirken, sistemin mevcut bölümünün yeni nesnelerin belirli özellikleriyle ilgilenmeden yeni bir nesneyle etkileşime girmesine izin verir.

Örneğin, bir kağıda bir mesaj yazmanız gerekiyorsa, bir tükenmez kalem, kurşun kalem, keçeli kalem veya hatta bir mum boya kullanabilirsiniz. Sadece kullandığınız eşyanın elinize sığabilmesi ve kağıda bastırıldığında iz bırakabilmesi yeterli. Dolayısıyla yazma eylemi, kağıt üzerinde bir işaret yapmanıza yardımcı olur ve hangi işaretlemenin veya yazma aracının kullanılacağı bir karar meselesidir. Başka bir örnek, bir uçak ve uzay mekiğidir, her ikisi de Uçan nesneler olarak adlandırılabilir. Ancak her ikisinin de uçma şekli farklıdır, yani uygulamada bir fark vardır. Ancak bir izleyicinin bakış açısından her iki nesne de uçabilir.

Kalıtım, devralınan sınıfta tanımlanan davranışın, yöntemin özel bir uygulaması yazılarak geçersiz kılınabildiği polimorfizm elde etmenin bir yoludur. Buna, Çalışma Zamanı polimorfizmi olarak da bilinen yöntem geçersiz kılma denir. Ayrıca, kalıtımın resme girmediği, yöntem aşırı yüklemesi adı verilen bir polimorfizm türü daha vardır. Yöntem adı aynıdır ancak yöntemdeki argümanlar farklıdır.

nest...

çamaşır makinesi ses çıkarması topuz modelleri kapalı huawei hoparlör cızırtı hususi otomobil fiat doblo kurbağalıdere parkı ecele sitem melih gokcek jelibon 9 sınıf 2 dönem 2 yazılı almanca 150 rakı fiyatı 2020 parkour 2d en iyi uçlu kalem markası hangisi doğduğun gün ayın görüntüsü hey ram vasundhara das istanbul anadolu 20 icra dairesi iletişim silifke anamur otobüs grinin 50 tonu türkçe altyazılı bir peri masalı 6. bölüm izle sarayönü imsakiye hamile birinin ruyada bebek emzirdigini gormek eşkiya dünyaya hükümdar olmaz 29 bölüm atv emirgan sahili bordo bereli vs sat akbulut inşaat pendik satılık daire atlas park avm mağazalar bursa erenler hava durumu galleria avm kuaför bandırma edirne arası kaç km prof dr ali akyüz kimdir venom zehirli öfke türkçe dublaj izle 2018 indir a101 cafex kahve beyazlatıcı rize 3 asliye hukuk mahkemesi münazara hakkında bilgi 120 milyon doz diyanet mahrem açıklaması honda cr v modifiye aksesuarları ören örtur evleri iyi akşamlar elle abiye ayakkabı ekmek paparası nasıl yapılır tekirdağ çerkezköy 3 zırhlı tugay dört elle sarılmak anlamı sarayhan çiftehan otel bolu ocakbaşı iletişim kumaş ne ile yapışır başak kar maydonoz destesiyem mp3 indir eklips 3 in 1 fırça seti prof cüneyt özek istanbul kütahya yol güzergahı aski memnu soundtrack selçuk psikoloji taban puanları senfonilerle ilahiler adana mut otobüs gülben ergen hürrem rüyada sakız görmek diyanet pupui petek dinçöz mat ruj tenvin harfleri istanbul kocaeli haritası kolay starbucks kurabiyesi 10 sınıf polinom test pdf arçelik tezgah üstü su arıtma cihazı fiyatları şafi mezhebi cuma namazı nasıl kılınır ruhsal bozukluk için dua pvc iç kapı fiyatları işcep kartsız para çekme vga scart çevirici duyarsızlık sözleri samsung whatsapp konuşarak yazma palio şanzıman arızası