Her Programcının Bilmesi Gereken OOP Kavramları ve Örnekleri

Yayınlanan: 2021-02-26

Bu makalede, Nesne Yönelimli Programlama ile ilgili temel kavramları ele alacağız ve yaygın olarak kullanılan terimleri tartışacağız: Soyutlama, Kapsülleme, Kalıtım ve Çok Biçimlilik.

Başlangıç ​​olarak, OOP, programcıların nesneler oluşturmasını ve bunları, çalışmaları için bu tür nesneler gerektiren işlevler dahilinde program boyunca kullanmasını gerektiren bir programlama metodolojisidir. OOP kavramının Java'da yaygın olarak kullanılmasının nedeni, güvenliği sağlarken kodun yeniden kullanılabilirliğine izin vermesidir.

Nesne yönelimli programlamanın dört sütunu hakkında konuşmadan önce, nesne yönelimli dillerden herhangi birini kullanırken çok sık duyduğumuz genel terimleri tanıyalım: Java, python, c++.

İçindekiler

Sınıf

Sınıf, belirli bir türdeki tüm nesneler için ortak olan bir dizi özelliği tanımlayan nesneler topluluğudur. Ayrıca nesneler oluşturmak için bir plan olarak da adlandırılabilir. Bir sınıf aşağıdaki bileşenleri içerir:

Sınıf adı: Büyük harfle başlayan bir sınıfa verilen ad.

Değiştiriciler: Sınıf değiştiricilerin işlevselliğine bağlı olarak genel, özel veya varsayılan olabilir.

Gövde : Sınıf gövdesi, sınıfta bulunan nesneler üzerindeki tüm kodları içerir. Bu, herhangi bir değişken bildirmekten veya bir nesnenin işleyişini içeren herhangi bir yapıcı veya yöntem oluşturmaya kadar değişebilir.

Nesne

Bir nesne, bir sınıfın örneği olarak tanımlanır ve gerçek hayattaki varlıkları içerir. Örneğin, Animals adlı bir sınıf için, onun nesneleri bir kedi, köpek, fil ve diğerleri olacaktır. Her nesnenin kendi kimliği, niteliği ve davranışı vardır. Aşağıdaki kod, Java dilinde programlama yaparken sınıf, nesne ve yöntemin kullanımını göstermektedir.

yöntemler

Yöntemler bir sınıf içinde tanımlanır ve belirli bir işlevi gerçekleştirmek için kullanılır. Yöntem bir girdi parametresi içerebilir veya içermeyebilir. Aşağıdaki kod, Java dilinde programlama yaparken sınıf, nesne ve yöntemin kullanımını göstermektedir.

Yukarıdaki kodda Player, sınıfımıza verilen addır, oysa koşular, myobj adlı bir nesne aracılığıyla çağrıldığında kendisi tarafından atılan koşuları döndüren Batsman yönteminde geçirilen bir parametredir.

Erişim Değiştiricileri

Java'daki erişim değiştiricileri, bir yöntemin veya yapıcının veya sınıfın erişilebilirliğini veya kapsamını tanımlar. Dört tür erişim değiştiricisi şunlardır:

  1. Public : Bir sınıf içinde yazılan koda diğer sınıflar tarafından erişilebilir.
  2. Private : Yazılan koda sadece o sınıf içinde erişilebilir.
  3. Varsayılan : Yazılan koda aynı paket içerisinden erişilebilir.
  4. Korumalı : Kod, bir paket içinde ve ayrıca bir alt sınıf aracılığıyla erişilebilir. Bir alt sınıfın yokluğunda koda erişilemez.

Şimdi devam edelim ve nesne yönelimli programlamanın püf noktası hakkında konuşalım.

Miras

Kalıtım terimi, bir sınıfın özelliklerinin diğerine miras alınması anlamına gelir. Özellikler, üst sınıfın özniteliklerine ve yöntemlerine atıfta bulunur. Ana sınıf, özelliklerinin diğer sınıflar tarafından devralınması gereken sınıftır. Ana sınıfın özelliklerini miras alan sınıflara alt sınıf veya alt sınıf denir. Üst sınıfın özelliklerini alt sınıfa miras almak için, extensions adlı bir anahtar kelime kullanılır .

Yukarıdaki örnekte Sponsor, sahibi özniteliği olan üst sınıftır. Sponsor sınıfını devralan Team adlı bir alt sınıf oluşturduk. Üst sınıfın özelliklerine erişebilen bir Team nesnesi yarattık. Yukarıdaki kodun çıktısı:

polimorfizm

Adından da anlaşılacağı gibi- Polimorfizm, bir değişkenin veya bir fonksiyonun birden çok biçimde var olma yeteneğidir. Polimorfizm, programcının aynı değişkeni veya işlevi kullanarak farklı görevleri gerçekleştirmesini sağlar. Gerçek hayattan bir polimorfizm örneği, açık bir zemin olarak düşünülebilir, şimdi bu zemin spor yapmak için kullanılabilir.

Ayrıca düğünler ve konserler düzenlemek için de kullanılabilir. Son olarak, aynı zemin araçlar için de kullanılabilir. Bundan, tek bir değişkenin kullanımına bağlı olarak birden çok uygulamaya sahip olabileceği sonucunu çıkarabiliriz.

Genellikle iki terimle karşılaştığımız polimorfizm, Yöntem aşırı yükleme ve Yöntem geçersiz kılma .

Method Overloading'de tek bir metot çeşitli şekillerde kullanılabilir ve farklı işlevleri yerine getirebilir . Metotlar aynı ada sahip olacak ancak girdi olarak farklı parametreler kullanılabilir.

Method Overriding'de , üst sınıfın yöntemi, alt sınıf tarafından geçersiz kılınabilir. Bununla, aynı yöntem, üst sınıf ve alt sınıf tarafından çağrıldığında farklı şekilde çalışabilir.

Polimorfizmin bir örneği aşağıda gösterilmiştir:

Bu örnekte, aynı yöntemi kullanarak birden fazla görevi gerçekleştirebiliriz. Aynı yöntem Voice, Bird'de kullanıldığında “Turr Turr” çıktısını verir ve Duck ile kullanıldığında “Quack Quack” çıktısını verir. Çıktının anlık görüntüsü aşağıda gösterilmiştir.

Soyutlama

Soyutlama, belirli verileri kullanıcılardan gizleme ve onlara yalnızca gerekli bilgileri gösterme işlemidir. Örneğin, araba kullanırken, iç işlevler veya mekanizmalarla ilgilenmiyoruz. Bize gösterilen, arabanın sürüldüğü hız ve mevcut benzin litreleridir. Diğer tüm marjinalleştirilmiş veriler sürücüye gösterilmez.

Soyut anahtar kelime, soyutlama yapılırken yöntemler ve sınıflar için kullanılır. Soyut bir sınıf için bir nesne oluşturamayız, soyut yöntem ise bir gövde içermemelidir. İki kuraldan herhangi biri ihlal edilirse, çıktı bir hata üretecektir.

Burada, ana sınıf olan Bird'den miras alınan Duck alt sınıfının bir nesnesini yarattık. Çıktı aşağıda gösterilmiştir:

kapsülleme

Kapsülleme, kodu ve verileri tek bir birime bağlama işlemidir. Burada, bir sınıfın değişkenleri diğer sınıflardan gizlenir ( private anahtar sözcüğü kullanılarak ) ancak yalnızca bir üye işlevi aracılığıyla erişilebilir. Setter ve getter işlevleri, soyut olan bir sınıfın özel değişkenlerine erişmek için kullanılır.

Şimdiye kadar Java kullanarak nesne yönelimli programlama ile ilgili her şeyi ele aldık. Bitirmeden önce, OOP konseptinin bazı avantajlarına bakalım.

  1. Kod kolayca yeniden kullanılabilir ve bu nedenle kodların geliştirilmesi için çok zaman ve maliyet tasarrufu sağlar.
  2. Kodu iyi yapılandırılmış bir şekilde tasarlamaya yardımcı olur, böylece herhangi bir yeni programcı kodu anlamak için uzun saatler harcamak zorunda kalmaz.
  3. Kullanıcıların verimli bir şekilde kod yazmalarına yardımcı olmanın yanı sıra, güvenliğin tehlikeye atılmamasını sağlar.

Ödeme: OOPs Mülakat Soruları ve Cevapları

Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

Sonuç olarak, bu blogda OOP'lerin temel kavramlarını ele aldık. Bu kavramlar endüstride ve diğer uygulamalarda yaygın olarak kullanılmaktadır. Yetkin bir programcı olmak için, kişinin bu kavramları sağlam bir şekilde kavraması gerekir. Gelecek bloglarda, bu alanda uzmanlık geliştirmenize yardımcı olacak diğer birkaç temel programlama kavramını ortaya çıkaracağız.

Full-stack yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve Full-stack Yazılım Geliştirmede Yönetici PG Programına göz atın. atamalar, IIIT-B Mezunları durumu, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.]

faktöriyel nedir?

Faktöriyel, belirli bir sayının çarpımını ve altındaki tüm sayıları sayan matematiksel bir işlemdir. Faktöriyel, bir sayının kaç kez bir ile çarpıldığını gösteren bir üründür. Örneğin, 5'in faktöriyeli 5x4x3x2x1'dir ve bu 120'ye eşittir. 1'in faktöriyeli 1'dir ve 0'ın faktöriyeli de 1'dir. Bir sayının faktöriyelini bulan program en sık sorulan mülakat sorusudur ve bir şeydir. bu elinizin ucunda olmalıdır.

Faktöriyel özyineleme programı nasıl yazılır?

Bir n sayısının faktöriyeli n olarak tanımlanır! = 1 × 2 × 3 × 4 × … × n. 5'in faktöriyel 120'dir. Faktöriyel fonksiyon faktöriyel(5) = 120 olarak tanımlanır. Özyinelemeli bir fonksiyon kendini çağıran bir fonksiyondur. Bu, faktöriyel(n) = n * faktöriyel(n - 1) özyinelemeli stilde bir faktöriyel fonksiyon örneğidir. Bir faktöriyel özyineleme programı yazmak çok basittir ve kod, yinelemeli sürüme çok benzer. Yinelemeli versiyonu yazmak için, n adlı bir değişken kullanıyoruz ve onu bir artırıyoruz ve onu, n'nin ardışık değerlerini takip eden prod adlı değişkenle çarpıyoruz. Çıktı değeri ayrıca prod adlı değişkende saklanır. Özyinelemeli sürümde hala n adlı bir değişken kullanırsınız. Ancak, prod değerini saklamak için bir değişkene ihtiyacınız yoktur ve prod öğesini doğrudan işlevden döndürebilirsiniz.

Programlamada özyineleme nedir?

Özyineleme kelimesi, geri dönmek anlamına gelen Latince recurrere kelimesinden türetilmiştir. Programlama dillerinin çoğunda kendini çağıran bir fonksiyona özyineleme denir. Bu döngü işlemi, herhangi bir özyinelemeli fonksiyonda tanımlanmayan temel duruma ulaşılana kadar devam eder. Özyineleme, bir sorunu yapılandırılmış ve organize bir şekilde çözmek için etkili bir tekniktir. İyi bir programlama stratejisidir. Örneğin, Fibonacci serisi problemi, faktöriyel problem vb. hem yinelemeli hem de özyinelemeli şekilde çözülebilir.