2015-11-30 15 views
5

So che c'è una differenza dovuta alla ricerca ma riesco solo a trovare delle somiglianze tra loro ... Speravo che qualcuno potesse chiarire la differenza e se fosse possibile un esempio per ciascuno sarebbe davvero d'aiuto. programma Java si prega anche conterebbe questo programma come incapsulamento o informazioni nascosti o addirittura entrambiQual è la differenza tra l'occultamento delle informazioni e l'incapsulamento?

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

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

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

+0

Risposta breve: informazioni nascoste (chiamate anche privacy dei dati) si riferisce all'uso di modificatori di accesso come pubblico, protetto e privato per limitare l'accesso ai membri (metodo e campi). L'incapsulazione si riferisce alla raccolta di stato e comportamento correlati insieme in una singola "capsula" che, in OOP, si riferisce a una classe che incapsula lo stato e il comportamento di cui ha bisogno per svolgere il proprio lavoro. Concetti correlati sono accoppiamento e coesione. –

risposta

1

La porzione di codice che pubblichi è un esempio di entrambi. L'incapsulamento è la tecnica per cui una classe Java ha uno stato (informazioni memorizzate nell'oggetto) e un comportamento (le operazioni che l'oggetto può eseguire, o meglio i metodi). Quando chiami un metodo, definito in una classe A, in una classe B, stai usando quel metodo senza conoscerne l'implementazione, usando solo un'interfaccia pubblica.

Informazioni Nascondere è il principio per cui le variabili di istanza sono dichiarate come private (o protette): fornisce un'interfaccia stabile e protegge il programma dagli errori (come una modifica variabile da una porzione di codice che non dovrebbe avere accesso a la variabile sopra menzionata).

In sostanza:

incapsulamento utilizzando le informazioni nascondere:

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

    public Person() { 
    // ... 
    } 

    //getters and setters 
} 

incapsulamento senza nascondere informazioni:

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

    public Person() { 
    // ... 
    } 

    //getters and setters 
} 

Nella programmazione orientata agli oggetti è una buona pratica di utilizzare sia incapsulamento e information hiding.

Problemi correlati