Das Zugriffsattribut private erlaubt ausschließlich der eigenen Klasse, auf die entsprechende Eigenschaft oder Methode zuzugreifen. Es handelt sich hierbei also um den stärksten Schutzmechanismus. Andere Klassen - egal, ob Elternklasse, aus dem eigenen Paket oder eine wildfremde Klasse - können nicht auf mit private geschützte Merkmale zugreifen. Sie wissen gar nicht, dass es derartige Merkmale in der Klasse gibt. Merkmale, die mit protected geschützt sind, können von der eigenen Klasse und von Klassen aus dem Paket verwendet werden. Zusätzlich gilt, dass Elternklassen auf vererbte protected-Merkmale in Kindklassen zugreifen können. Es ist hierbei nicht notwendig, dass die Kindklasse im gleichen Paket liegt. Das Zugriffsattribut public bedeutet, dass jede beliebige Klasse auf das Merkmal zugreifen darf - von eigener Klasse über Eltern- und Paket-Klassen bis hin zu wildfremden Klassen darf das Merkmal jeder verwenden. Zusammengefasst, bei public ist wie der Name schon sagt, das Attribut oder die Methode "öffentlich" und für alle zugänglich. Bei Private darf nur die eigene Klasse, in der die Methode oder das Attribut ist, darauf zugreifen. Protected ist eine etwas abgeschwächtere Form von private, ist ein Attribut oder eine Methode so deklariert, dann können alle Klassen aus dem Paket darauf zugreifen.