Ho avuto un'intervista qualche settimana fa e mi è stato chiesto di scrivere un codice con Setters and Getters. Ho scritto il seguente codice;
// Just an example
Class ABC{
private int num;
public void setNum(int givenNum){
this.num = givenNum;
}
public int getNum(){
return num;
}
public ABC(){
num = 0;
}
public static void main(String [] args){
ABC object1 = new ABC();
ABC object2 = new ABC();
object1.setNum(5);
System.out.println(object1.getNum());
System.out.println(object2.getNum());
}
}
Ora mi è stato detto che "oggetto1" può cambiare il valore di "oggetto2.Num". Ma non ero d'accordo con questo, credo che un altro thread che ha accesso a object2 possa cambiare il valore di object2.Num ma non object1.
Nel caso precedente, avrei sincronizzato il metodo setter, o usato il blocco sincronizzato all'interno del metodo setter durante l'impostazione / modifica del valore, ma non riuscivo a capire il concetto di oggetto1 cambiando il valore dell'oggetto2.Num.
Ero solo curioso di sapere se mi mancasse qualcosa. Se è così, apprezzerei davvero qualsiasi aiuto per quanto riguarda lo stesso.