So che la mia domanda sarà nominato per essere chiuso immediatamente dopo la pubblicazione, ma lasciate che vi dica che avevo cercato il sito per una chiara differenza di taglio in termini di un esempio , in Java. Per favore, non aver fretta di chiudere la domanda.incapsulamento e astrazione differenze con l'aiuto di un esempio in Java
ho scritto quanto segue:
public class Bank {
public String name="XXX Bank";
private int noOfCust;
public int getNoOfCust() {
return getNoOfCusts() + 2;
}
public void setNoOfCust(int noOfCust) {
if(noOfCust > 0)
{
this.noOfCust = noOfCust;
}
}
private int getNoOfCusts()
{
noOfCust = 100;
return noOfCust;
}
}
Qui, 'noOfCust è i dati che vengono nascosti'. Non sto esponendo la parte dell'implementazione introducendo private getNoOfCusts(). Quindi credo che questo sia l'incapsulamento, perché ho raggruppato tutti i dettagli di una classe e ho nascosto anche i dati.
Domanda 1: Se questo incapsulamento forte? In caso contrario, come potrei migliorarlo per essere fortemente incapsulato?
Domanda 2: Astrazione significa nascondere completamente l'implementazione. Quindi quello che ho fatto sopra è l'astrazione?
ho postato questa domanda a causa della frustrazione perché avevo dato la spiegazione di cui sopra ad un intervistatore, che mi ha detto, questo non è il significato corretto.
P.S: Si prega di rispondere in termini di esempio precedente. Non voglio esempi o ipotesi in tempo reale.
Perché hai due getter per il numero di clienti? Perché uno di loro * cambia * il valore? – Thilo
È solo per specificare che posso implementare qualsiasi logica che voglio nel metodo privato che avevo scritto. In realtà, non ce n'è bisogno, ma lo metto solo per specificare, la logica può essere cambiata in seguito. –
Forse questo aiuta: http://stackoverflow.com/questions/742341/difference-between-abstraction-and-encapsulation?rq=1 – Thilo