2015-11-30 20 views
5

Araştırmadan dolayı bir fark olduğunu biliyorum ama aralarında sadece benzerlikler bulabiliyorum ... Birisinin farkı açıklığa kavuşturacağını ve her biri için bir örnek teşkil edip edemeyeceğini umuyordum. kapsülleme veya bilgi gizleme hatta ikisiBilgi gizleme ve kapsülleme arasındaki fark nedir?

class DogsinHouse { 
    private int dogs; 
    public int getdog() { 
    return dogs; 
    } 

    public void setdog(int amountOfDogsNow) { 
    dogs = amountOfDogsNow; 
    } 
} 
+6

[Abstraction, Encapsulation and Information Hiding] (http://www.tonymarston.co.uk/php-mysql/abstraction.txt) –

+0

Kısa yanıt: bilgi gizleme (veri gizliliği de denir) üyelere erişimi kısıtlamak için kamu, korunan ve özel erişim değiştiricilerin kullanılmasını ifade eder (yöntem ve alanlar). Kapsülleme, ilgili devlet ve davranışı birlikte OOP'da, işini yapmak için ihtiyaç duyduğu devleti ve davranışı kapsülleyen bir sınıfa atıfta bulunan tek bir "kapsül" içine toplamak anlamına gelir. İlgili kavramlar birleştirme ve birleşme. –

cevap

1

yayınladığınız kod kısmı hem bir örnektir gibi Java programı da bu program saymak olacaktır edin. Kapsülleme, bir Java sınıfının bir duruma (nesne içinde saklı bilgiler) ve bir davranışa (nesnenin gerçekleştirebileceği işlemlere veya daha doğrusu yöntemlere) sahip olduğu tekniktir. Bir sınıf A'da tanımlanan bir yöntemi B sınıfında çağırdığınızda, yalnızca bir genel arabirim kullanarak, uygulamasının kullanımını bilmeden bu yöntemi kullanırsınız.

Bilgi Gizleme, değişkenlerin özel (veya korunan) olarak bildirildiği ilkesidir: sabit bir arabirim sağlar ve programı hatalardan korur (bir kod bölümünden erişilememesi gereken bir kod bölümünden değişken bir değişiklik olarak yukarıda belirtilen değişken). Temelde

:

Kapsülleme kullanarak bilgi gizleme: Bilgi gizleme olmadan

public class Person { 
    private String name; 
    private int age; 

    public Person() { 
    // ... 
    } 

    //getters and setters 
} 

Kapsülleme:

public class Person { 
    public String name; 
    public int age; 

    public Person() { 
    // ... 
    } 

    //getters and setters 
} 

OOP zamanda kapsül içerisine alınmış ve bilgi gizleme ikisini de kullanmak iyi bir uygulamadır.

İlgili konular