“Nesne Yönelimli” Programlama İsmini Nereden Aldı?

  • Lesley Fowler
  • 0
  • 866
  • 237
reklâm

Nesne odaklı programlama çevrelerinde duyduğunuz rastgele bir kelime değildir. İsmin arkasında bir sebep var - ama ne? Programlama kavramlarının temellerinden bazılarını araştırırken bana katılın ve sadece nesne yönelimli programlamanın teknolojiyi neden herhangi bir modern yazılımın arkasına sürdüğünü ve Prosedürel ve Mantık Tabanlı Programlama ile karşılaştırdığını açıklayın.

Prosedürel Programlamanın Tarihi

Bilgisayarlar ilk icat edildiğinde, basit talimatlarla açıkça programlanmaları gerekiyordu - ve “yazılım” sadece birlikte koşan dizilmiş bu son derece basit komutların bir koleksiyonuydu. sırayla.

Başlangıçta, bu gerekli makine kodunun yazılması gerekli - “bit” Bu bellekten bu konuma “ve” Bu bit, vb ile üzerinde operasyon - ama yeterince yakında bunlar BASIC kullanılarak daha üst bir seviyeye çıkarıldı.

Çoğunuzun okulda BASIC (Çok Başlayanlar Çok Amaçlı Sembolik Talimat Kodu) ile karşılaştığınızdan şüpheleniyorum. Prosedürel bir programlama dilinin mükemmel bir örneği. İlk programlama programım bile bir Amstrad CPC-64'te BASIC kullanıyordu. Her satır bir satır numarasıyla başlar, ardından okunabilir bir dilde basit bir talimat verilir..

Usul dilleri emirleri birbiri ardına takip ettiğinden, programda olanları takip etmek insanların gelişmesi genellikle kolaydır. Ancak, basit bir öğrenme alıştırmasının ötesinde bir şey yapmak da zor - bu bizi Nesneye Yönelik Programlamanın oluşturulmasına götürür.

Nesne odaklı?

Nesneye yönelik programlama ile, fikir ilgili değişkenleri ve işlevselliği bir çeşit karmaşık veri yapısını temsil eden bir nesnede gruplamaktır. Bu nesne daha sonra birçok kez tekrar kullanılabilir veya daha da karmaşık bir şey olarak genişletilebilir.

Örneğin, bir oyunda bir oyuncu nesnesi olabilir. Oyundaki her oyuncu nesnesi, hayali çok oyunculu çevrimiçi oyunda tek, benzersiz bir gerçek hayat oyuncusunu temsil ediyor. Her oyuncu nesnesinin bir takma adı, geçerli bir konumu, envanteri ve hareket oranı vardır. Her oyuncu benzersiz olsa da, aynı seviyedeki işlevselliği paylaşmalarını istiyoruz. Her oyuncunun bir hareket oyuncunun X kare sayısını ilerletmesine neden olan işlev. Her oyuncu farklı bir hareket hızına sahip olabilir, ancak oyuncuya bir komutla hareket etmesini söylediğimizde, kendi İnternet mekaniğine göre nasıl tepki vereceğini bilecektir..

Bu neden faydalıdır? Daha gerçekçi bir örnek alarak - modern grafiksel kullanıcı arayüzleri nesneler olmadan imkansız olacağından - tüm işletim sistemleri bir Window nesnesi sağlar. Bu nedenle yeni bir ürüne sahip olmak kolaydır. “pencere” yakın ve tam ekran düğmeleri ve etrafta dolaşma yeteneği ile tamamlayın - kendiniz programlamak zorunda kalmadan. Yapmanız gereken tek şey söylemek. pencere oluştur.

Aslında, modern yazılım binlerce pencereden oluşur - yalnızca pencerelerden değil, düğmeler ve form alanları ve alarm kutuları da (bunlar kendileri için özel bir pencere nesnesidir) - ve sadece düzenlenme biçimleri ve mantık aralarında bu yazılımı başkalarından farklı kılan etkileşimler. Bu, programcıların ve yazılım tasarımcılarının, her seferinde tekerleği yeniden icat etmek zorunda kalmadan programlarının çekirdek mekaniğini yapmaya odaklanmakta özgür oldukları anlamına gelir..

Nesneye yönelik tasarıma bir başka avantaj, işlevselliğin birbirinden ayrılması ve görünmez olmasıdır. Yani oyuncu oyunumuzda ileri tuşuna bastığında, aramalar taşıma işlevi içinde oyuncu nesnesi. Yürütmek yerine zıplamak gibi - oynatıcı nesnesi içinde bu hareketin tam olarak nasıl yapıldığına dair küçük bir değişiklik yaparsak, klavye-dinleyiciyi ayarlamamız gerekmez. Hala çağırıyor “hareket” Oynatıcı nesnesinde dahili olarak ne olduğuna bakmaksızın - diğer her şeyi bozmadan işlevselliğini değiştirebiliriz.

Aynı şey işletim sistemlerinde de geçerlidir - eğer kullanıcı aniden pencere rengini kırmızıya çevirmeye karar verirse, bunu algılamanıza ve Pencereyi de kırmızı hale getirmeye karar verirseniz - hepsi pencere nesnesine yerleştirilmiştir..

miras

Nesnelere sahip olduktan sonra, farklı davranış veya ek işlevlere sahip daha yararlı nesneler üretmeleri için onları genişletip devralabiliriz. Sen kutu tekerleği yeniden icat - istersen. Oyuncu örneğimizde, belki bir “Süpermen” nesne. Süpermen hala bir oyuncu, herkes gibi aynı - bir takma ad istiyor ve aynı oyuncu lider tahtalarında listelenmek istiyor - ancak oyuncu nesnesini X boşluklarını öne çıkaran standart hamle eylemi yerine istiyoruz Bunun yerine uçmak - herhangi bir nesnenin üstünden bir seferde 10 kare hareket ettirin. Temel oyuncu nesnesini genişleterek “miras almak” Tüm bu kullanışlı işlevsellik hepsini tekrar yazmak zorunda kalmadan - ama yine de yapabiliriz “geçersiz kılma” özel süpermen uçan hamle ile hareket fonksiyonu!

Nesne yönelimli programlama, sadece hiç usule dayalı programlama deneyimi yaşadıysanız mutlak bir vahiydir ve şahsen, lisede basit bir OOP dili türünün öğretilmemesi bir utançtır..

Son Bir Şey: Mantık Tabanlı Programlama Dilleri

Yapay Zeka ile ilgili herhangi bir şey için genellikle en faydalı oldukları için bunlar benim için özellikle ilgi çekicidir. Prolog gibi mantık tabanlı programlama dilleri, geleneksel anlamda komutları ve talimatları kullanmaz. Bunun yerine, bir takım kural ve koşullar verilen bir sorunu çözeceklerdir..

Aileniz için ev sahipliği yaptığınız bir akşam yemeği partisini düşünün. Teyzen amcanın yanına oturamaz, çünkü tartışacaklar; iki çocuğun birlikte oturmasını istemiyorsunuz, çünkü onlar biraz alçakça olacaklar; Kesinlikle iki çocuğun arasında oturmak istemiyorsun. İşte orada - Prolog programınız yazılmıştır. Şimdi, partiye gelen çocukların ve yetişkinlerin bir listesini verin ve olası oturma önerileri listesini çıkartacaktır.!

Umarım bu başlangıç ​​seviyesindeki programlama kavramlarına giriş yapmışsınızdır. Üzgünüm, daha fazla ayrıntıya giremedim ve tabii ki dokunmadığım bir milyon şey var. Daha fazla bilgi edinmek istiyorsanız, yorumlarda bana bildirin. Belki de yeterince ilgi duyulursa, çeşitli diller için bir dizi acemi nesne yönelimli programlama dersi yapabiliriz? Programlama ile ilgili arşivlerimizi de incelediğinizden emin olun, çeşitli araçlar ve programlama web siteleri içerir..

Resim Kredisi: ShutterStock




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.