Ćwiczenie.
Wykaż, że metody chronione podlegają dostępowi pakietowemu, ale nie są metodami publicznymi.
Rozwiązanie:
Tworzymy dwie klasy: Animal i Owner w dwóch oddzielnych pakietach.
Odpowiednie klasy są dostępne poniżej:
Animal.java:
package net.traininguniverse.hiddden;
public class Animal {
    protected boolean isHungry(boolean feed) {
        if (feed)
            return false;
        else
            return true;
    }
    public boolean showIsHungry(boolean feed) {
        return isHungry(feed);
    }
}
Owner.java:
package net.traininguniverse.main;
import net.traininguniverse.hiddden.Animal;
public class Owner {
    public static void main(String[] args) {
        Animal animal = new Animal();
        //animal.isHungry(true);
        //blad kompilatora (protected access), wiec nie jest publiczna
        System.out.println(animal.showIsHungry(true));
        //wyswietla false, czyli podlega dostepowi pakietowemu
    }
}
