Yeni Başlayanlar İçin Açıklanan OOPS Kavramları

Yayınlanan: 2022-12-20

Bilgisayar programlarının rolü, karmaşık gerçek dünya gereksinimlerini bilgisayar tarafından anlaşılabilir talimatlara başarılı bir şekilde modellemektir. Bunu başarmak için, birkaç programlama paradigması farklı felsefeler üzerinde çalışır. Bunlar, İşlevsel Programlama, Prosedürel Programlama, Nesne Yönelimli Programlama ve daha fazlasını içerir. Bu paradigmalar nasıl çalıştıklarına bağlı olarak farklılık gösterir ve bu nedenle dilden bağımsızdır.

Bu yazıda, Nesne Yönelimli Programlamaya derinlemesine bakacağız. OOPS'un karmaşıklığına girmeden önce, OOPS'un üzerinde çalıştığı dört sütun oldukları için Java'da aklınızda bulundurmanız gereken bazı temel OOP kavramları şunlardır:

  • Soyutlama
  • kapsülleme
  • Miras
  • polimorfizm

Bu OOP kavramları hakkında bu makalenin sonraki bir aşamasında derinlemesine konuşacağız . Ama önce, Nesne Yönelimli Programlamanın tam olarak ne olduğunu anlayalım.

İçindekiler

Nesne Yönelimli Programlama Nedir?

Nesne Yönelimli Programlamadan önce, İşlevsel Programlama baskın programlama paradigmasıydı. C ve COBOL gibi diller bu paradigmayı takip etti, dolayısıyla bu dilleri kullanarak yazılan programlar bir dizi talimattı. Bunlar, kaynak kodlarını modüler ve daha okunaklı tutmak için alt programlar veya prosedürler kullandı. İşlevsel Programlama paradigması, verilerden çok mantığa odaklandı ve program hem verileri hem de programı birleştirecekti.

C++, C#, Java ve daha fazlası gibi programlama dilleri, C'den sonra Nesne Yönelimli Programlama yaklaşımına geçti. OOP'ler, basit mantık tabanlı talimatların üzerine yazarak verilere öncelik verdi. Özünde, bir nesne, programınızda modellemek istediğiniz herhangi bir şeydir. Her şey ve her şey olabilir. Şu anda belirsiz geliyorsa, sonuna kadar devam edin ve bununla ne demek istediğimizi tam olarak anlayacaksınız!

Sınıflar ve Nesneler nedir?

Nesne Yönelimli Programlama, Sınıflar ve Nesneler ile çalışır. Bu nedenle, bu iki terimin ne anlama geldiğini ve birbirlerinden nasıl farklı olduklarını anlamak önemlidir. Basitçe söylemek gerekirse, Sınıfları, Nesneleri ihtiyaç duyduğunuzda ve istediğiniz zaman oluşturmaya yardımcı olan bir plan olarak düşünün.

Sınıfların rolü, çeşitli nitelikleri ve farklı davranışları tanımlamaktır. Yani programımızda bir araç modelleyecek olsaydık, araç için bir Sınıf oluşturur ve tekerlek sayısı, renk, model, yaş vb. oysa davranışlar start, hızlanma, fren vb. olacaktır. Gördüğünüz gibi tanımladığımız nitelikler ve davranışlar tek bir araca özel değil. Temelde farklı araçlardaki farklı davranışları ve nitelikleri kapsarlar. Bu şekilde, yeni bir araç nesnesi oluşturmak istediğinizde, söz konusu araç için öznitelikleri belirleyebilirsiniz. Bu şekilde Sınıflar, aynı niteliklere ve davranışlara sahip yeni nesneler yaratmak için mükemmel bir plan görevi görür.

İşte Sınıf Aracımız ve onun farklı özellikleri ve davranışları böyle görünecek. Kodu yazmak için Java'nın sözdizimini kullandığımızı, ancak programlama paradigmasının dilden bağımsız olduğunu unutmayın.

genel sınıf Araç{

özel dizi _color;

özel int _model;

özel dizi _makeYear;

özel dizi _fuelType;

genel geçersiz başlangıç(){ }

genel boşluk hızlandırma() {}

genel geçersiz durdurma() {}

}

Tanımlanan Sınıfı kullanarak, ortak davranışlara sahipken farklı niteliklere sahip çeşitli nesneler oluşturabiliriz. Örneğin:

nesne 1
modeli Alto
Yakıt doğal gaz
Yapmak 2018
Başlama()

Kırmak()

Hızlanmak()

nesne 2
modeli VagonR
Yakıt Benzin
Yapmak 2017
Başlama()

Kırmak()

Hızlanmak()

Bu şekilde, Nesne Yönelimli Programlamadaki Sınıflar, gerçek dünyadaki karmaşık davranışları ve sistemleri modellemeyi basitleştirmenize yardımcı olabilir. Tüm veriler, nitelikler ve işlevler, herhangi bir sınıfın nesnesine bağlıdır. Bu şekilde, herhangi bir küresel veriyi tutma ihtiyacı ortadan kalkar. Bu, Prosedürel Programlama ve Nesne Yönelimli Programlama yaklaşımları arasındaki önemli bir farktır.

Temel bilgiler yerine getirildikten sonra, Nesne Yönelimli Programlamanın dört sütununa derinlemesine bakalım:

Dünyanın en iyi Üniversitelerinden veri bilimi sertifikası alın . Kariyerinizi hızlandırmak için Yönetici PG Programlarını, Gelişmiş Sertifika Programlarını veya Yüksek Lisans Programlarını öğrenin.

Soyutlama

Soyutlama, görevin nasıl yerine getirildiği yerine ne yapıldığına odaklanmakla ilgilidir. Soyutlamanın arkasındaki tüm fikir, birbirlerine başka herhangi bir güven duymadan birbirleriyle etkileşime girebilen bağımsız modüller oluşturmaya yardımcı olmaktır. Bu şekilde, bir programın bakımı da daha kolay ve yönetilebilir hale gelir. Soyutlama ile OOP'ler, bu özelliklerin nasıl uygulandığına veya sistemin dahili bileşenlerinin nasıl çalıştığına girmeden yalnızca temel özellikleri temsil etmeye çalışır.

Python'daki en önemli OOPS kavramlarından birinin arkasındaki fikir , programcıların yalnızca doğrudan mevcut modül için önemli olan şeylere odaklanması gerektiğidir. Bir modülü değiştirmek, diğer bağımsız modülleri doğrudan etkilememelidir. Bir programcının yalnızca mevcut modül ve ne verdiği hakkında bilgi sahibi olması gerekir. Gerekli olanı başarmak için modülün arka plandaki işleyişini anlamaya fazla gerek yoktur; bu nedenle, bu bilgiler en iyi sonuçlar için soyutlanır.

Soyutlama fikrini programlamanın ötesine taşırsanız, soyutlamanın özünde her yerde olduğunu fark edeceksiniz. Günlük uğraştığımız nesneler çeşitli düzeylerde bizden soyutlanır. Örneğin arabamızın freninin iç aksamının nasıl çalıştığını bilmiyoruz ama perde arkasındaki mekanizmayı soyutlayarak fren uygulayabilmemiz için bize bir pedal verildi. Bu şekilde, nasıl çalıştığı konusunda endişelenmenize gerek kalmaz; pedala basmanız yeterli.

kapsülleme

Kapsülleme kavramı, önceki soyutlama kavramına yakından bağlıdır. Kapsülleme, özünde, son kullanıcının sorunun alanını tam olarak anlamasını gerektirmeden bir soruna çözüm sağlamakla ilgilidir. Bunu yapmak için kapsülleme, tüm verileri ve davranışı tek bir birim olarak birbirine bağlar. Bu şekilde, soyutlamanın uygulandığı her yerde son kullanıcının iç öğeler hakkında bilgi sahibi olması engellenir.

Kullanıcı verilere doğrudan erişemez ve gerektiğinde verilere erişmek için açık işlevleri kullanır. OOPS programlama paradigması, nesnenin içindekileri gizleyerek modüllerin bütünlüğünü korur ve kullanıcıların dahili verileri tutarsız bir duruma ayarlamasına izin vermez. Bu yapılmazsa uzun vadede birçok soruna neden olabilir. Dolayısıyla, bu şekilde, kapsülleme daha çok karmaşıklığı hatasız bir şekilde açığa çıkarmakla ilgilidir ve karmaşıklığı tamamen gizlemekten daha azdır.

Miras

Kalıtım, Nesne Yönelimli Programlama paradigmasının bir başka güçlü özelliğidir. Kalıtımın rolü, bu sınıfların hiyerarşide yukarıda yer alan sınıflardan davranış ve nitelikleri miras almalarını sağlamak için sınıfları verimli ve hızlı bir şekilde bir hiyerarşi içinde düzenlemek ve düzenlemektir. Özünde, kalıtım, gerçek dünyadaki şeyler hakkında konuşma şeklimize çok benzeyen bir "ilişkidir" olarak anlaşılabilir.

Mesela “papağan kuştur” deriz. Bu, bir papağanın kuş sınıfının bir nesnesi olduğu ve dolayısıyla daha geniş sınıftan bazı nitelikler ve davranışlar aldığı anlamına gelir. Ancak bankanın banka hesabı olduğunu söylersek bu doğru olmaz. Kalıtımdaki hiyerarşi bu şekilde çalışır ve daha sonra uzmanlaşmış sınıflar için özelleştirilebilen davranışları ve uygulamaları tanımlamanıza olanak tanır. Kalıtımın geriye doğru çalışmadığını unutmayın. Bu nedenle, ana sınıf asla alt sınıftan hiçbir şey miras almaz. Bununla birlikte, alt sınıflar, bu nitelik ve davranışların (genel veya özel) doğasına bağlı olarak, üst sınıflardan hem nitelikleri hem de davranışları devralır. Kalıtım, programınızı yeniden kullanmanın bir yoludur ve tüm kaynak kodunuzu daha kısa ve çok daha anlaşılır hale getirmenize yardımcı olabilir. Ancak, gerekmedikçe kalıtım düzeylerinin ardından düzeyler eklememeniz gerektiğini unutmamalısınız.

ABD - Veri Bilimi Programlarımıza göz atın

Veri Bilimi ve İş Analitiği Alanında Profesyonel Sertifika Programı Veri Biliminde Bilim Ustası Veri Biliminde Bilim Ustası Veri Biliminde Gelişmiş Sertifika Programı
Veri Biliminde Yönetici PG Programı Python Programlama Eğitim Kampı İş Kararları Verme için Veri Biliminde Profesyonel Sertifika Programı Veri Biliminde İleri Program

polimorfizm

Polimorfizm, Python ve Java'daki birçok önemli OOPS kavramından biridir ve esasen herhangi bir yürütülebilir birimin birçok farklı olası uygulamasıyla ve kullanıcıyı bu değişikliklerden haberdar etmeden arka planda devam eden tüm ince farklarla ilgilenir. Polimorfizm, bilgisayar programlarının herhangi bir zorluk çekmeden özel nesnelerle genişletilmesini kolaylaştırır.

Örneğin, bir kağıda bir metin yazmak istiyorsanız, bir kalem, keçeli kalem, pastel boya ve hatta kurşun kalem kullanabilirsiniz. İhtiyacınız olan tek şey, elinize sığabilecek ve onu bir kağıda bastırırken semboller oluşturmanıza yardımcı olacak bir şey. Bu nedenle, yazma eylemi kağıt üzerinde semboller oluşturmanıza yardımcı olurken, hangi enstrümana ihtiyacınız olduğu seçiminize bağlıdır.

Bu anlamda kalıtım, programın polimorfizme ulaşmasının bir yoludur; burada yöntemin özel uygulaması, kalıtılan sınıfta tanımlanan davranışın üzerine yazar. Bu işlem, çalışma zamanı polimorfizmi veya yöntem geçersiz kılma olarak da bilinir. Yöntem aşırı yüklemesi olarak da bilinen başka bir polimorfizm biçimi vardır. Bunda, miras hiç resme girmiyor. Yöntem aşırı yüklemede, yöntem adı aynı tutulurken, yöntemdeki argümanlar hangi görevin gerçekleştirileceğine bağlı olarak farklılık gösterir.

Sonuç olarak

Bununla, Java'daki OOPS kavramları hakkındaki tartışmamızın sonuna geldik . Şimdiye kadar tartışılan şeyler, hiçbir şey için endişelenmeden Nesne Yönelimli Programlamaya başlamak için ihtiyacınız olan tüm temeli oluşturuyor. Tartışmayı uygulamalı ve uygulamalı olarak denemelisiniz; ne de olsa, programlama tamamen pratik yapmak ve sebat etmekle ilgilidir.

OOPS bilgisi, OOPS paradigmasına dayanan Python gibi dilleri kullanacağınız için veri bilimi yolculuğunuzda da size yardımcı olacaktır. Veri Bilimi gelişen bir alandır ve doğru becerilere ve bilgiye sahip insanlar için hiçbir fırsat yoktur. Arizona Üniversitesi ile işbirliği içinde upGrad tarafından hazırlanan Veri Bilimi Yüksek Lisansımıza göz atın ve kariyeriniz boyunca size yardımcı olacak güçlü bir mezunlar ağının yanı sıra sektör uzmanlarından öğrenme şansı elde edin.

OOPS'un dört kavramı nelerdir?

OOPS'nin dört temel kavramı Soyutlama, Kapsülleme, Kalıtım ve Polimorfizm'dir.

Sınıflar ve nesneler nasıl farklılık gösterir?

Sınıflar, modellenecek fenomenlerin planlarıdır. Öte yandan nesneler, örneklendikleri sınıftan davranış ve nitelikler ödünç alan belirli sınıf örnekleridir.

OOPS hangi dilde çalışır?

OOPS, dilden bağımsız bir programlama felsefesidir. C++, Java, Python, Ruby vb. herhangi bir modern programlama dilini kullanarak OOPS üzerinde çalışabilirsiniz.