Access Modifiers can be used for Variable?
In Java, variables can have various access modifiers to control their visibility and accessibility. The access modifiers that can be used for variables are:
Table of Contents
- 1. public
- 2. protected
- 3. default (no modifier)
- 4. private
1. Public Variable
- Scope: A `public` variable is accessible from any other class, regardless of the package.
- Usage: To allow a variable to be accessed widely across different classes and packages.
Example
```java
public class MyClass {
public int publicVar;
}
```
2. Protected Variable
- Scope: A `protected` variable is accessible within the same package and by subclasses in other packages.
- Usage: To allow subclasses to access and modify the variable, while restricting access from unrelated classes.
Example
```java
public class MyClass {
protected int protectedVar;
}
```
3. Default (Package-Private) Variable
- Scope: A variable with no access modifier (default or package-private) is accessible only within its own package.
- Usage: To restrict the use of the variable to within the same package, ensuring encapsulation and preventing usage from outside the package.
Example
```java
class MyClass {
int defaultVar; // Default access
}
```
4. Private Variable
- Scope: A `private` variable is accessible only within the same class.
- Usage: To encapsulate implementation details and restrict access to variables that should not be accessed from outside the class.
Example
```java
public class MyClass {
private int privateVar;
}
```
Key Points
- Encapsulation: Access modifiers for variables help enforce encapsulation by controlling access to the variable’s data.
- Inheritance: `protected` variables can be inherited and accessed by subclasses, whereas `private` variables cannot be accessed directly by subclasses.
- Default Access: Variables with default access are only accessible within the same package, promoting modular and maintainable code.
Example of Class with Variables Using Various Modifiers
```java
// File: com/example/MyClass.java
package com.example;
public class MyClass {
public int publicVar;
protected int protectedVar;
int defaultVar; // Default access
private int privateVar;
}
```
Summary
Variables in Java can have various access modifiers to control their visibility and accessibility:
- public: Accessible from any other class.
- protected: Accessible within the same package and by subclasses in other packages.
- default: (no modifier) Accessible only within its own package.
- private: Accessible only within the same class.
Choosing the appropriate access modifier for each variable helps ensure proper encapsulation and access control in your Java code.