DEV Community

Tamilselvan K
Tamilselvan K

Posted on

Day-64 Java Access Modifiers

What are Access Modifiers?

Access modifiers decide who can access a class, method, or variable.

Java has four main access modifiers:

1.private – accessible only within the same class.

  • Example: A private variable cannot be accessed outside its class directly.
  • Used for data hiding.

2.default (package-private) – no keyword is used.

  • Accessible within the same package.
  • Cannot be accessed from other packages, even by subclasses.

3.protected – accessible within same package and subclasses in different packages.

  • Mostly used in inheritance to share with child classes.

4.public – accessible from anywhere.

Quick Rules Table

Why no protected/private for top-level classes?

  • Private/protected cannot be used for top-level classes (outer classes). They are only allowed for inner classes or members within a class.
  • Top-level classes can only be public or default (package-private).

Example

package electronics; public class Mobile // same class - private, public, protected, default { public Mobile() { System.out.println("Mobile constructor"); // default constructor is always in default access modifier } public static void main(String[] args) { Mobile mob = new Mobile(); mob.call(); mob.satellitecall(); } protected void call() { System.out.println("calling"); } protected void satellitecall() { System.out.println("satellitecall"); } } 
Enter fullscreen mode Exit fullscreen mode
package electronics; public class Samsung extends Mobile { public static void main(String[] args) // same package subclass - public, default, protected { Samsung s21 = new Samsung(); s21.call(); s21.satellitecall(); } } 
Enter fullscreen mode Exit fullscreen mode
package grocery; import electronics.Mobile; public class Rice extends Mobile // different package subclass - protected, public { public static void main(String[] args) { Rice mob = new Rice(); mob.call(); mob.satellitecall(); } } 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)