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...