İlan

Biraz yaptıysanız başlangıç ​​programlamaveya farklı dillere bakmaya başladığınızda, muhtemelen "nesne yönelimli programlama" (veya "OOP") ifadesiyle karşılaştınız.

Ne olduğuna dair her türlü teknik açıklama var, ancak bugün nesne odaklı programlamayı basit bir şekilde tanımlamaya bakacağız.

Başlamadan Önce: Yordamsal Diller

Nesneye yönelik bir programlama dilinin ne olduğunu anlamak için bunun yerine neyin yerini anlamanız gerekir. İlk programlama dilleri prosedüreldi - sözde programcı bilgisayarın üstleneceği çok özel bir dizi prosedür tanımlayacaktır.

Nesneye Yönelik Programlama Nedir ve Öğrenmeye Nasıl Başlanır?

En erken günlerde, prosedürler kartlara yazılmıştır. Bu adımlar veriyi aldı, bu veriler üzerinde bir dizi işlem gerçekleştirdi, sonra yeni veriler çıktıladı.

Yordamsal diller bir süre iyi çalıştı (ve bazıları hala kullanımda). Ancak, temel adımlar dizisinin ötesinde bir şey programlamak istediğinizde, prosedürel dillerin yönetilmesi zorlaşabilir. Nesne yönelimli programlama devreye giriyor.

Nesneye Yönelik Programlamanın Amacı

O zaman nesne yönelimli programlama nedir?

instagram viewer

İlk nesne yönelimli dil (genellikle Simula olduğu kabul edildi), nesneleri. Nesneler tekil bir varlık olarak değerlendirilen bilgi koleksiyonlarıdır.

Bir örnekle bir saniyede bunun gerçekte ne anlama geldiğine daha derinlemesine bakacağız, ancak önce konuşmamız gerekiyor sınıflar. Sınıflar bir tür ön nesneler gibidir. Tanımlandıklarında nesne haline gelen özniteliklerin bir listesini içerirler.

Nesneye Yönelik Programlama Nedir ve Öğrenmeye Nasıl Başlanır?

Bir satranç oyunu programlama örneğini ele alalım. Piece adında bir sınıfımız olabilir. Parça içinde, bir özellikler listemiz var:

  • Renk
  • Yükseklik
  • şekil
  • Harekete izin verilir

Bir nesne sadece o sınıfa ait bir şeyin belirli bir örneğini tanımlar.

Böylece WhiteQueen adında bir nesnemiz olabilir. Bu nesnenin dört özelliğinin de tanımları olacaktır (beyaz, uzun, crenellasyonlu silindirik, herhangi bir yöndeki herhangi bir sayıda boşluk). Ayrıca yöntemler veya fonksiyonlar.

Bunu prosedürel yaklaşımdan daha iyi yapan nedir?

Kısacası, nesne yönelimli programlama dilleri (Java gibi) daha büyük proje için çok yönlü bir şekilde veri ve kod düzenlemeyi kolaylaştırır.

Biraz daha ayrıntılı olarak tartışmak için, nesne yönelimli programlamanın dört temelinden bahsedeceğiz.

Nesneye Yönelik Programlama: Soyutlama

Bir şeyi kullanmak istediğiniz için, nasıl çalıştığını bilmeniz gerektiği anlamına gelmez. Örneğin bir espresso makinesi karmaşıktır. Ancak bunun nasıl çalıştığını bilmenize gerek yok. Sadece “Açık” tuşuna bastığınızda espresso alacağınızı bilmeniz gerekir.

Nesneye Yönelik Programlama Nedir ve Öğrenmeye Nasıl Başlanır?

Aynı şey nesne yönelimli programlamadaki nesneler için de geçerlidir. Satranç örneğimizde bir move () yöntemimiz olabilir. Bu yöntem çok fazla veri ve başka yöntemler gerektirebilir. Başlangıç ​​pozisyonu ve son pozisyon değişkenleri gerekebilir. Bir parça yakalanıp yakalanmadığını belirlemek için başka bir yöntem kullanabilir.

Ama bunu bilmene gerek yok. Bilmeniz gereken tek şey, parçanın hareket etmesini söylediğinizde hareket etmesi. Bu bir soyutlama.

Nesneye Yönelik Programlama: Kapsülleme

Kapsülleme, nesne yönelimli programlamanın soyutlama yaratma yollarından biridir. Her nesne, tek bir varlık olarak değerlendirilen bir veri koleksiyonudur. Ve bu nesneler içinde veriler var - hem değişkenler hem de yöntemler.

Bir nesnenin içindeki değişkenler genellikle gizli tutulur, yani diğer nesneler ve yöntemler bunlara erişemez. Nesneler yalnızca yöntemlerini kullanarak etkilenebilir.

Bishop nesnesi birkaç bilgi içerebilir. Örneğin, "konum" adlı bir değişkeni olabilir. Bu değişken move () yöntemini kullanmak için gereklidir. Ve elbette, bir rengi var.

Pozisyon değişkeni ve move () yöntemini herkese açık hale getiren bir programcı, taşıma değişkenini başka herhangi bir şeyden etkilenmekten korur. Renk özel bir değişkense, değişikliğe izin veren bir yöntem olmadığı sürece başka bir nesnenin onu değiştirmesi mümkün değildir. (Parçanın rengi sabit kalması gerektiğinden, muhtemelen sahip olmayacaksınız.)

Bu değişkenler ve yöntemler Bishop nesnesi içinde tutulur. Kapsüllendikleri için, bir programcı genel arabirim hakkında endişelenmeden nesnenin yapısında veya içeriğinde değişiklik yapabilir.

Nesneye Yönelik Programlama: Kalıtım

Sınıflara ek olarak, nesne yönelimli programlama dillerinin de alt sınıfları vardır. Bunlar üst sınıftaki tüm öznitelikleri içerir, ancak başka öznitelikler de içerebilir.

Satranç oyunumuzda, piyon parçaları, tahtanın sonuna kadar yaparlarsa onları diğer parçalara dönüştürebilecek bir yönteme ihtiyaç duyarlar. Buna transformPiece () yöntemi adını vereceğiz.

Her parçanın transformPiece () yöntemine ihtiyacı yoktur. Bu yüzden bunu Piece sınıfına koymak istemeyiz. Bunun yerine Piyon adında bir alt sınıf oluşturabiliriz. Bu bir alt sınıf olduğu için Piece'deki tüm nitelikleri devralır. Piyon alt sınıfının bir örneği, izin verilen bir renk, yükseklik, şekil ve hareket içerir.

Ancak transformPiece () yöntemini de içerir. Şimdi yanlışlıkla bu işlevi bir kale üzerinde kullanma konusunda endişelenmemiz gerekmiyor. İşte teknik bir açıklama:

Alt sınıflar oluşturmak da çok zaman kazandırır. Her şey için yeni sınıflar oluşturmak yerine, programcılar bir temel sınıf oluşturabilir ve gerektiğinde yeni alt sınıflara genişletebilirler. (Ancak, şunu belirtmek gerekir: mirasa aşırı güvenmek kötü Her Programcının Uyması Gereken 10 Temel Programlama İlkesiDaima yazılım üzerinde çalışabilecek herkes tarafından korunabilecek bir kod yazın. Bu amaçla, hareketinizi temizlemenize yardımcı olacak birkaç programlama ilkesi. Daha fazla oku .)

Nesneye Yönelik Programlama: Çok Biçimlilik

Polimorfizm kalıtımın bir sonucudur. Polimorfizmi tam olarak anlamak bazı programlama bilgileri gerektirir, bu yüzden burada temellere sadık kalacağız. Kısacası, polimorfizm programcıların aynı isimdeki yöntemleri kullanmasına izin verir, ancak farklı nesneler.

Örneğin, Parça sınıfımız bir parçayı herhangi bir yönde bir boşluk hareket ettiren bir move () yöntemine sahip olabilir. Bu kral eseri için geçerli, ama başka bir şey için değil. Bu sorunu gidermek için, Rook alt sınıfında hareketi sınırsız sayıda ileri, geri, sola veya sağa tanımlayan yeni move () yöntemini tanımlayabiliriz.

Şimdi, bir programcı move () yöntemini çağırdığında ve bir parçayı bağımsız değişken olarak kullandığında, program parçanın tam olarak nasıl hareket etmesi gerektiğini bilecektir. Bu, birçok farklı yöntemden hangisini kullanmanız gerektiğini anlamaya çalışmak için tonlarca zaman kazandırır.

Kısaca Nesneye Yönelik Programlama

Kafanız bu son dört tanımdan sonra biraz dönüyorsa, fazla endişelenmeyin. Hatırlamanız gereken ana şeyler şunlardır:

  • Nesneye yönelik programlama, bilgileri nesne adı verilen tek varlıklar halinde toplar.
  • Her nesne bir sınıfın tek bir örneğidir.
  • Soyutlama, bir nesnenin iç işleyişini görmek gerekmediğinde gizler.
  • Kapsülleme, ilgili değişkenleri ve yöntemleri nesneler içinde saklar ve korur.
  • Devralma, alt sınıfların üst sınıflardaki öznitelikleri kullanmasına izin verir.
  • Çok biçimlilik, nesnelerin ve yöntemlerin, tek bir arabirim ile birden çok farklı durumla baş etmesine olanak tanır.

Bu noktaları hatırlayabiliyorsanız, nesne yönelimli programlamanın ne olduğunu iyi anlarsınız. Bahsettiğim gibi, nesne yönelimli programlamanın dört temelini ele almak biraz zor olabilir. Ancak programlamaya başladığınızda, daha açık hale gelecektir.

Bu makalede yalnızca genel özellikleri tartıştığımızı unutmayın. Farklı nesne yönelimli dillerin kendi tuhaflıkları ve işleri gerçekleştirmenin yolları olacaktır. Bir kere sen senin için doğru dili seç En İyi Programlama Dillerini mi Arıyorsunuz? Buradan başlayın!Programlama dillerinde tamamen yeni ya da yeni bir programlamaya atlamak istiyorsanız, sorulacak en önemli sorulardan biri: "Hangi programlama dili benim için doğru?" Daha fazla oku , OOP ilkelerini nasıl uygulamaya koyduğunu öğrenmeye başlayacaksınız.

Dann, şirketlerin talep ve potansiyel müşteriler yaratmasına yardımcı olan bir içerik stratejisi ve pazarlama danışmanıdır. Ayrıca dannalbright.com'da strateji ve içerik pazarlamasıyla ilgili bloglar yapıyor.