Esse assunto tem muito a ver com a organização do projeto. Primeiro, imagine que duas classes estão no mesmo pacote, naturalmente elas se conhecem e se enxergam, podendo assim se acessarem.     Exemplo:     Temos dois arquivos Java: o primeiro chamado ClassOne e o segundo ClassTwo.    package com.meuprojeto.model;   class ClassOne {         String attributeOne;         String attributeTwo;        String attributeThree;        //..  }    package com.meuprojeto.model;    class ClassTwo {         String attributeOne;         String attributeTwo;        ClassOne classOne;         //..  }    Essas classes estão no pacote model e por isso não há erro de compilação até aqui. Mas imagine um projeto com alguns pacotes, como o da imagem abaixo, o que fazer?           O primeiro passo é  tornar as classes públicas, adicionando a palavra re...