Questa è la domanda dei miei compiti: Quale tra le seguenti classi NON è strettamente incapsulata?Classe strettamente incapsulata
class A
{
private int x;
}
class B
{
private int x;
public void setX(int x)
{
this.x=x;
}
public int getX()
{
return x;
}
}
class C
{
private int x;
private void setX(int x)
{
this.x=x;
}
private int getX()
{
return x;
}
}
Ho passato un po 'di tempo a cercare su coderanch ma non sono riuscito a ottenere le cose richieste. Qualcuno può aiutarmi?
Quello che penso è la classe C non è strettamente incapsulato, perché i metodi sono privati. E riguardo alla classe A quello che sento è che non è solo incapsulato. Perché la definizione di base dell'incapsulamento dice che "Devi nascondere i tuoi membri e fornire ai metodi utente della classe che si comportano nel modo desiderato". Ora la classe A non ha metodi di accesso-mutatore. Quindi A non dovrebbe essere considerato incapsulato. Non sono sicuro ma. Perfavore, correggimi se sbaglio.
Questo probabilmente non ti aiuterà, ma la domanda è posta (presumibilmente dai tuoi istruttori) in modo assurdamente astratto. Una classe è strettamente incapsulata quando espone solo l'interfaccia di cui i suoi clienti hanno bisogno. È praticamente impossibile dirlo in modo significativo senza conoscere lo scopo di una determinata classe. – millimoose