Ho appena scoperto che una classe interna può accedere membro privato di un'altra classe interna come questo:Perché la classe interna può accedere a un membro privato di un'altra classe interiore?
public class TestOutter {
class TestInner1 {
private int mInt = 1;
}
class TestInner2 {
public int foo(TestInner1 value) {
return value.mInt;
}
}
}
Metodo foo di TestInner2 può accedere al membro privato Zecca di TestInner1.
Ma non ho mai visto prima questo caso. Non conosco il significato di lasciare che il codice in TestInner2
possa accedere al membro privato di TestInner1.
Sono stato cercato sulla classe interna in google, nessuno dei risultati della ricerca mostra che la classe interna ha questa caratteristica. Guardo anche a The Java Language Specification, ma non ne parlo ancora.
praticamente tutto all'interno di una definizione di classe "esterna" può accedere ai membri privati. – jtahlborn
È possibile fare riferimento a questa domanda http://stackoverflow.com/questions/1801718/why-can-outer-java-classes-access-inner-class-private-members?lq=1 – san
Perché questa logica è adatta a voi? 'TestInner2' è parte integrante di' TestOutter' e poiché 'TestOutter' ha accesso a' TestInner1', quindi 'TestInner2'. Mi sembra soddisfacente. –