
Brian Curtis
0
2077
578
Yeni başlayanlar için programlama yaptıysanız veya farklı dillere bakmaya başladıysanız, muhtemelen şu cümle ile karşılaşırsınız: “nesne yönelimli programlama” (veya “OOP”).
Ne olduğuna ilişkin her türlü teknik açıklama var, ancak bugün nesneye yönelik programlamayı basit bir şekilde tanımlamaya göz atacağız..
Başlamadan Önce: İşlem Dilleri
Nesne yönelimli bir programlama dilinin ne olduğunu anlamak için, onun yerine ne konulduğunu anlamanız gerekir. Erken programlama dilleri prosedürel-sözdedir, çünkü programcı bilgisayarın yapacağı çok spesifik prosedürleri tanımlayacaktır..
İlk günlerde, delikli kartlara prosedürler yazıldı. Verilerde atılan adımlar, bu veriler üzerinde bir dizi eylem gerçekleştirdi, ardından yeni veriler çıkardı.
Usul dilleri bir süre iyi çalıştı (bazıları hala kullanımda). Ancak, temel bir adımlar dizisinin ötesinde bir şey programlamak istediğinizde, yordamsal dilleri yönetmek zor olabilir. Nesne yönelimli programlama burada devreye giriyor.
Nesneye Dayalı Programlamanın Amacı
Öyleyse, nesne yönelimli programlama nedir?
İlk nesne yönelimli dil (genellikle Simula olarak kabul edildi) fikri nesneleri. Nesneler tekil bir varlık olarak ele alınan bilgi koleksiyonlarıdır..
Bir örnekte bir saniyede bunun ne anlama geldiğini daha derine dayacağız, ama önce hakkında konuşmalıyız. sınıflar. Sınıflar bir nevi ön-nesneler gibidir. Tanımlandığında nesne haline gelen niteliklerin bir listesini içerirler..
Satranç oyunu programlama örneğini ele alalım. Piece adında bir sınıfımız olabilir. Parça içinde, niteliklerin bir listesine sahibiz:
- Renk
- Yükseklik
- şekil
- Hareket izin
Bir nesne basitçe o sınıfa ait bir şeyin özel bir örneğini tanımlar..
Böylece WhiteQueen adında bir nesneye sahip olabiliriz. Bu nesnenin dört niteliği için tanımları olurdu (beyaz, uzun, crenellations ile silindirik, herhangi bir yönde herhangi bir sayıda boşluk). Ayrıca yöntemleri veya işlevleri olabilir..
Bunu prosedürel yaklaşımdan daha iyi yapan şey?
Kısacası, nesne yönelimli programlama dilleri (Java gibi) veri ve kodları daha büyük projeler için çok yönlü bir şekilde düzenlemeyi kolaylaştırır.
Bunu biraz daha ayrıntılı olarak tartışmak için, nesne yönelimli programlamanın dört temelinden bahsedeceğiz..
Nesneye Dayalı Programlama: Soyutlama
Sırf bir şey kullanmak istemeniz, nasıl çalıştığını bilmeniz gerektiği anlamına gelmez. Örneğin bir espresso makinesi karmaşıktır. Ama nasıl çalıştığını bilmene gerek yok. Sadece bunu vurduğunda bilmen gerekir. “üzerinde,” espresso alacaksın.
Aynısı, 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ıç pozisyonuna ve son pozisyon değişkenlerine ihtiyaç duyabilir. Bir parçanın 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 soyutlama.
Nesneye Dayalı Programlama: Kapsülleme
Kapsülleme, nesne yönelimli programlamanın soyutlama yaratma yollarından biridir. Her nesne, tek bir varlık olarak ele alınan bir veri koleksiyonudur. Ve bu nesneler içinde veridir - değişkenler ve yöntemler.
Bir nesnenin içindeki değişkenler genellikle gizli tutulur; diğer nesneler ve yöntemler bunlara erişemez demektir. Nesneler yalnızca yöntemlerini kullanarak etkilenebilir.
Bir Bishop objesi birkaç bilgi parçası içerebilir. Örneğin, denilen bir değişken olabilir “pozisyon.” Move () yöntemini kullanmak için bu değişken gereklidir. Ve tabii ki, bir rengi var.
Konum değişkenini özel ve move () yöntemini genel yaparak, bir programcı hareket değişkenini başka herhangi bir şeyden etkilenmekten korur. Ve eğer renk özel bir değişken ise, değişime izin veren bir yöntem olmadığı sürece başka bir nesnenin onu değiştirmesine imkan yoktur. (Muhtemelen sahip olamayacağınız bir şey, çünkü parçanın rengi sabit kalmalı.)
Bu değişkenler ve yöntemler Bishop nesnesinin içinde tutulur. Kapsüllendiklerinden, bir programcı, kamu arayüzü hakkında endişelenmeden, nesnenin yapısında veya içeriğinde değişiklik yapabilir..
Nesneye Dayalı Programlama: Kalıtım
Sınıflara ek olarak, nesne yönelimli programlama dilleri de alt sınıflara sahiptir. Bunlar üst sınıftaki tüm özellikleri içerir, ancak diğer özellikleri de içerebilirler.
Satranç oyunumuzda, piyon taşları tahtaya düşerse onları diğer parçalara dönüştürebilen bir yönteme ihtiyaç duyar. Buna transformPiece () yöntemi diyeceğiz..
Her parça transformPiece () yöntemine ihtiyaç duymaz. Yani bunu Piece sınıfına koymak istemeyiz. Bunun yerine, Pawn adlı bir alt sınıf oluşturabiliriz. Bu bir alt sınıf olduğu için, Parçaların tüm özelliklerini miras alır. Dolayısıyla, alt sınıf Piyonunun bir örneği, izin verilen bir renk, yükseklik, şekil ve hareket içerir.
Ancak transformPiece () yöntemini de içerir. Şimdi asla bu işlevi kale üzerinde kullanma konusunda endişelenmemize gerek yok. İş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 bunları yeni alt sınıflara genişletebilirler. (Ancak, mirasa aşırı güvenmenin kötü olduğunu belirtmekte fayda var 10 Temel Programlama İlkeleri Her Programcı İzlemelidir Son olarak, burada eyleminizi temizlemenize yardımcı olacak birkaç programlama ilkesi bulunmaktadır.)
Nesneye Dayalı Programlama: Polimorfizm
Polimorfizm kalıtımın bir sonucudur. Polimorfizmi tam olarak anlamak biraz programlama bilgisine ihtiyaç duyar, bu yüzden sadece buradaki temel bilgilere uyacağız. Kısacası, polimorfizm, programcıların aynı isimdeki yöntemleri kullanmalarına izin verir. farklı nesneler.
Örneğin, Parça sınıfımız bir parçayı herhangi bir yönde bir boşluk taşıyan bir move () yöntemine sahip olabilir. Bu kral parçası için çalışıyor, ama başka hiçbir şey için değil. Bu sorunu çözmek için, Rook alt sınıfındaki hareketi, ileri, geri, sola veya sağa sınırsız sayıda boşluk olarak tanımlayan yeni move () yöntemini tanımlayabiliriz..
Şimdi, bir programcı move () yöntemini çağırdığında ve argüman olarak bir parça kullandığında, program tam olarak parçanın nasıl hareket etmesi gerektiğini bilir. Bu, kullanmanız gereken birçok farklı yöntemden hangisini bulmaya çalışırken zamandan tasarruf sağlar.
Özet Olarak Nesneye Yönelik Programlama
Başınız bu son dört tanımdan sonra biraz dönüyorsa, çok fazla endişelenmeyin. İşte hatırlamanız gereken başlıca şeyler:
- Nesneye yönelik programlama, bilgileri nesneler adı verilen tek varlıklara toplar..
- Her nesne tek bir sınıf örneğidir.
- Soyutlama, bir nesnenin iç çalışmalarını gizlemek gerekmediğinde gizler.
- Kapsülleme, ilgili değişkenleri ve yöntemleri nesneler içinde saklar ve korur.
- Kalıtım, alt sınıfların üst sınıflardan nitelik kullanmasına izin verir.
- Polimorfizm, nesnelerin ve yöntemlerin, tek bir arabirimle birden çok farklı durumla başa çıkmasını sağlar.
Bu noktaları hatırlayabiliyorsanız, nesne yönelimli programlamanın ne olduğu konusunda iyi bir tutuşa sahip olacaksınız. Nesneye yönelik programlamanın dört temelini de belirttiğim gibi, ele almak biraz zor olabilir. Ama bir kere programlamaya başladığınızda, daha netleşecekler.
Unutma, bu makalede sadece genellemeler hakkında tartıştık. Farklı nesne yönelimli dillerin kendi tuhaflıkları ve işlerin gerçekleşmesi için yolları olacaktır. Sizin için doğru dili seçtikten sonra, En İyi Programlama Dillerini mi arıyorsunuz? Buradan başlayın! En İyi Programlama Dilleri mi arıyorsunuz? Buradan başlayın! İster programlama dilleri için tamamen yeni olun ister yeni bir programlama türüne atlamak isteyin, sormanız gereken en önemli sorulardan biri: "Hangi programlama dili benim için uygun?" OOP prensiplerini nasıl uygulamaya koyduğunu öğrenmeye başlayacaksınız.