Flash cards
Review the key moves
What is the main idea behind Java Modifiers?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Put the learning moves in the order that makes the concept easiest to apply.
Modifiers
By now, you are quite familiar with the public keyword that appears in almost all of our examples:
public
class MainThe public keyword is an access modifier , meaning that it is used to set the access level for classes, attributes, methods and constructors.
We divide modifiers into two groups
- Access Modifiers - controls the access level
- Non-Access Modifiers - do not control access level, but provides other functionality
Access Modifiers
For classes , you can use either public or default :
| Modifier | Description |
|---|---|
| public | The class is accessible by any other class |
| default | The class is only accessible by classes in the same package. This is used when you don't specify a modifier. You will learn more about packages in the Packages chapter |
For attributes, methods and constructors , you can use the one of the following:
| Modifier | Description |
|---|---|
| public | The code is accessible for all classes |
| private | The code is only accessible within the declared class |
| default | The code is only accessible in the same package. This is used when you don't specify a modifier. You will learn more about packages in the Packages chapter |
| protected | The code is accessible in the same package and subclasses . You will learn more about subclasses and superclasses in the Inheritance chapter |
Public vs. Private Example
In the example below, the class has one public attribute and one private attribute.
Think of it like real life
- public - a public park, everyone can enter
- private - your house key, only you can use it
Example
class Person {
public String name = "John"; // Public - accessible everywhere
private int age = 30; // Private - only accessible inside this class
}
public class Main {
public static void main(String[] args) {
Person p = new Person();
System.out.println(p.name); // Works fine
System.out.println(p.age); // Error: age has private access in Person
}
}Example explained
Here, name is declared as public , so it can be accessed from outside the Person class. But age is declared as private , so it can only be used inside the Person class.