Acesso Padrão:
Felizmente, o MotherDuck é mais flexível sobre o que seus patinhos podem fazer. Ela permite classes no mesmo pacote para acessar seus membros. Quando não há modificador de acesso, Java usa o padrão, que é o acesso privado ao pacote. Isso significa que o membro é "privado" para classes no mesmo pacote. Em outras palavras, somente classes no pacote podem acessá-lo.
package pond.duck;public class MotherDuck { String noise = "quack"; void quack() { System.out.println(noise); // default access is ok } private void makeNoise() { quack(); // default access is ok } }O MotherDuck pode chamar quack () e se referir a noise. Afinal, membros da mesma classe certamente estão no mesmo pacote. A grande diferença é que o MotherDuck permite que outras classes membros de acesso ao mesmo pacote (devido ao fato de serem privados do pacote), enquanto o FatherDuck não (devido a ser privado). O GoodDuckling tem uma experiência muito melhor que o BadDuckling :
package pond.duck;public class GoodDuckling { public void makeNoise() { MotherDuck duck = new MotherDuck(); duck.quack(); // default access System.out.println(duck.noise); // default access } }O GoodDuckling consegue aprender a grasnar () e a fazer barulho , copiando sua mãe. Observe que todas as classes que cobrimos até agora estão no mesmo pacote pond.duck . este permite que o acesso padrão (privado do pacote) funcione. Nesse mesmo lago, um cisne acabou de dar à luz um bebê cisne. Um cisne bebê é chamado cygnet. O cygnet vê os patinhos aprendendo a grasnar e decide aprender com o MotherDuck também.
package pond.swan;import pond.duck.MotherDuck; // import another packagepublic class BadCygnet { public void makeNoise() { MotherDuck duck = new MotherDuck(); duck.quack(); // DOES NOT COMPILE System.out.println(duck.noise); // DOES NOT COMPILE } }Ah não! O MotherDuck só permite lições para outros patos ao restringir o acesso à lagoa pacote .duck . O pobre BadCygnet está no pacote pond.swan e o código não compilar. Lembre-se de que, quando não há modificador de acesso, somente classes no mesmo pacote podem acessar isso.