Java'da Kapsülleme - Kapsülleme ile OOP'larda nasıl ustalaşılır?

Java'da Kapsülleme hakkındaki bu makale, çeşitli basit örneklerle birlikte uygulama ayrıntılarını gizlemenin temel kavramlarını anlamanıza yardımcı olacaktır.

Nesne Yönelimli Programlama veya daha çok OOP olarak bilinen Java, gücünü ve kullanım kolaylığını artıran en önemli sütunlarından biridir. Profesyonel bir Java geliştiricisi olmak için çeşitli yazılımlar üzerinde kusursuz bir kontrole sahip olmalısınız. sevmek , Soyutlama , Kapsülleme ve Polimorfizm. Bu makalenin ortamı aracılığıyla, size OOP'lerin en önemli kavramlarından biri, yani Java'da Kapsülleme ve nasıl başarıldığı hakkında tam bir fikir vereceğim.



Aşağıda bu yazıda tartışacağım konular var:



Ayrıca bu kayıttan da geçebilirsiniz. konuları örneklerle detaylı bir şekilde anlayabileceğiniz yer.



Kapsüllemeye Giriş

Kapsülleme, verilerin tek bir birim altında toplanmasını ifade eder. Kodu ve işlediği verileri birbirine bağlayan mekanizmadır. Kapsülleme hakkında düşünmenin bir başka yolu da, verilere bu kalkan dışındaki kod tarafından erişilmesini engelleyen koruyucu bir kalkan olmasıdır. Bunda, değişkenler veya veriler başka herhangi bir sınıftan gizlidir ve yalnızca bildirildikleri kendi sınıfının herhangi bir üye işlevi aracılığıyla erişilebilir.

Şimdi, ilacın kapsül içinde her zaman güvenli olduğu tıbbi bir kapsül örneğini ele alalım. Benzer şekilde, kapsülleme yoluyla, bir sınıfın yöntemleri ve değişkenleri iyi gizlenmiş ve güvenlidir.



Java-EdurekaJava'da kapsülleme şu şekilde sağlanabilir:

  • Bir sınıfın değişkenlerini özel olarak bildirmek.
  • Değişken değerlerini değiştirmek ve görüntülemek için genel ayarlayıcı ve alıcı yöntemleri sağlamak.

Şimdi, kapsüllemeyi daha iyi anlamak için koda bakalım:

public class Öğrenci {private String name public String getName () {dönüş adı} public void setName (Dize adı) {this.name = name}} class Test {public static void main (String [] değiştirgeler) {Öğrenci s = yeni Öğrenci () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Yukarıdaki kodda görebileceğiniz gibi, özel bir özelliğe sahip bir Öğrenci sınıfı oluşturdum. isim . Ardından, bir öğrencinin adını alıp ayarlamak için bir alıcı ve ayarlayıcı oluşturdum. Bu yöntemlerin yardımıyla, isim değişkenine erişmek isteyen herhangi bir sınıf, bu alıcı ve ayarlayıcı yöntemlerini kullanarak bunu yapmak zorundadır.

Şimdi bir örnek daha görelim ve Encapsulation'ı derinlemesine anlayalım. Bu örnekte, Car sınıfının iki alanı vardır: name ve topSpeed. Burada her ikisi de özel olarak ilan edilir, yani doğrudan sınıfın dışından erişilemez. GetName, setName, setTopSpeed ​​vb. Gibi bazı alıcı ve ayarlayıcı yöntemlerimiz var ve bunlar genel olarak ilan ediliyor. Bu yöntemler 'dışarıdan gelenlere' açıktır ve Car nesnesinden verileri değiştirmek ve almak için kullanılabilir. Aracın en yüksek hızını ayarlamak için bir yöntemimiz ve maksimum hız değerini MPH veya KMHt olarak almak için iki alıcı yöntemimiz var. Yani temelde, kapsüllemenin yaptığı budur - uygulamayı gizler ve bize istediğimiz değerleri verir. Şimdi aşağıdaki koda bakalım.

kukla şefe karşı cevaplanabilir
paket Edureka public class Araba {private String name private double topSpeed ​​public Car () {} public String getName () {dönüş adı} public void setName (Dize adı) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} public double getTopSpeedMPH () {return topSpeed} public double getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Burada, ana program belirli bir ada sahip bir Car nesnesi oluşturur ve bu örnek için en yüksek hızı depolamak için ayarlayıcı yöntemini kullanır. Bunu yaparak, Araba sınıfında hızın nasıl dönüştürüldüğünü umursamadan hızı kolayca MPH veya KMH cinsinden alabiliriz.

paket Edureka public class Örnek {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-liter V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'MPH'de en yüksek hız' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'KMH'de en yüksek hız' + car.getTopSpeedKMH ())

So, Java'da Encapsulation'a bu şekilde ulaşılabilir. Şimdi daha da ileri gidelim ve Kapsüllemeye neden ihtiyacımız olduğunu görelim.

Java'da Encapsulation'a neden ihtiyacımız var?

Java'da kapsülleme önemlidir çünkü:

  • Veri erişilebilirliğinin yolunu kontrol eder
  • Kodu gereksinimlere göre değiştirir
  • Gevşek bir çift elde etmemize yardımcı olur
  • Uygulamamızın basitliğini elde eder
  • Ayrıca, programda bulunan diğer işlevleri veya kodu bozmadan kodun bir bölümünü değiştirmenize olanak tanır.

Şimdi, kapsülleme ihtiyacını gösteren küçük bir örneği ele alalım.

class Öğrenci {int id Dize adı} public class Demo {public static void main (String [] değiştirgeler) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

Yukarıdaki örnekte, erişim değiştirici olarak iki durum değişkeni içerir. Dolayısıyla, aynı paketteki herhangi bir sınıf, o sınıfın bir nesnesini oluşturarak bu değişkenlerin değerlerini atayabilir ve değiştirebilir. Bu nedenle, Öğrenci sınıfında değişken olarak depolanan değerler üzerinde kontrolümüz yoktur. Bu sorunu çözmek için Öğrenci sınıfını özetliyoruz.

Yani, bunlar Encapsulation ihtiyacını gösteren birkaç işaretti. Şimdi, kapsüllemenin bazı faydalarını görelim.

Kapsüllemenin Yararları

    • Veri Gizleme: Burada, kullanıcının sınıfın iç uygulaması hakkında hiçbir fikri olmayacaktır. Kullanıcı bile sınıfın değişkenlerdeki değerleri nasıl sakladığının farkında olmayacaktır. Yalnızca değerleri bir ayarlayıcı yöntemine aktardığımızın ve değişkenlerin bu değerle başlatıldığının farkında olacaktır.
    • Artan Esneklik: Burada, sınıfın değişkenlerini ihtiyacımıza göre salt okunur veya salt yazılabilir yapabiliriz. Değişkenleri salt okunur yapmak istiyorsanız, setName () gibi ayarlayıcı yöntemlerini atlamalıyız,setAge() vb. veya değişkenleri salt yazılabilir yapmak istiyorsak, yukarıdaki programdan getName (), getAge () vb. gibi get yöntemlerini çıkarmamız gerekir.
    • Tekrar Kullanılabilirlik: Aynı zamanda yeniden kullanılabilirliği geliştirir ve yeni gereksinimlerle değiştirmesi kolaydır.

Artık kapsüllemenin temellerini anladığımıza göre, bu makalenin son konusuna geçelim ve Kapsüllemeyi gerçek zamanlı bir örnek yardımıyla ayrıntılı olarak anlayalım.

Gerçek Zamanlı Kapsülleme Örneği

Bir televizyon örneğini ele alalım ve dahili uygulama ayrıntılarının dış sınıftan nasıl gizlendiğini anlayalım.Temel olarak, bu örnekte, iç kod verilerini, yani dış dünyadan gelen devreleri kapak tarafından saklıyoruz. Şimdi bu, erişim değiştiricilerinin yardımıyla sağlanabilir. Erişim değiştiriciler, bir sınıfın erişim veya düzeyini, kurucu değişkenlerini vb. Ayarlar. Aşağıdaki kodda da görebileceğiniz gibi, sınıfın erişim düzeyini kısıtlamak için özel erişim değiştirici kullandım. Özel olarak bildirilen değişkenlere yalnızca Televizyon sınıfında erişilebilir.

public class Television {private double width private double height private double Screensize private int maxVolume print int volume private boolean power public Television (double width, double height, double screenSize) {this.width this.height this.screenSize = ScreenSize} public double channelTuning (int kanal) {anahtar (kanal) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int fallVolume () {if (0volume) volume ++ return volume}} sınıf testi {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televizyon. // Değişken özel olduğundan ve sınıfın dışından erişilemediğinden hata verir}}

Yukarıdaki örnekte, tüm değişkenleri özel ve yöntemleri, oluşturucular ve sınıfı genel olarak tanımladım. Burada kuruculara, yöntemlere sınıf dışından erişilebilir. Ben yarattığımdabir objeTelevision sınıfında, sınıfta bulunan yöntemlere ve yapıcılara erişebilirken, özel erişim değiştiricisi ile bildirilen değişkenler gizlidir. Erişmeye çalıştığınızda bu yüzden genişlik değişkeni yukarıdaki örnekte,bir hata. Dahili uygulama ayrıntıları diğer sınıflardan bu şekilde gizlenir. Java'da Kapsülleme bu şekilde gerçekleştirilir.

Bu bizi 'Java'da Kapsülleme' konulu bu makalenin sonuna getiriyor. Hope, bunu bilgilendirici buldun ve bilginize değer katmanıza yardımcı oldu. Java hakkında daha fazla bilgi edinmek isterseniz, şu adrese başvurabilirsiniz:

Artık 'Java'da Kapsülleme nedir' anladığınıza göre, Dünya çapında 250.000'den fazla memnun öğrenciden oluşan bir ağa sahip güvenilir bir çevrimiçi öğrenme şirketi olan Edureka tarafından. Edureka’nın Java J2EE ve SOA eğitim ve sertifika kursu, Java Geliştiricisi olmak isteyen öğrenciler ve profesyoneller için tasarlanmıştır. Kurs, size Java programlamasına bir başlangıç ​​yapmak ve sizi Hibernate & Spring gibi çeşitli Java çerçeveleriyle birlikte hem temel hem de gelişmiş Java kavramları konusunda eğitmek için tasarlanmıştır.

Bizim için bir sorunuz mu var? Lütfen bu 'Java'da Kapsülleme' blogunun yorumlar bölümünde bundan bahsedin, size en kısa sürede geri döneceğiz.