- 1Java Exceptions
- 2Java Keywords
- 3Java abstract Keyword
- 4Java assert Keyword
- 5Java boolean Keyword
- 6Java break Keyword
- 7Java byte Keyword
- 8Java case Keyword
- 9Java catch Keyword
- 10Java char Keyword
- 11Java class Keyword
- 12Java const Keyword
- 13Java continue Keyword
- 14Java default Keyword
- 15Java do Keyword
- 16Java double Keyword
- 17Java else Keyword
- 18Java enum Keyword
- 19Java extends Keyword
- 20Java final Keyword
- 21Java finally Keyword
- 22Java float Keyword
- 23Java for Keyword
- 24Java goto Keyword
- 25Java if Keyword
- 26Java implements Keyword
- 27Java import Keyword
- 28Java instanceof Keyword
- 29Java int Keyword
- 30Java interface Keyword
- 31Java long Keyword
- 32Java native Keyword
- 33Java new Keyword
- 34Java null Keyword
- 35Java package Keyword
- 36Java private Keyword
- 37Java protected Keyword
- 38Java public Keyword
- 39Java return Keyword
- 40Java short Keyword
- 41Java static Keyword
- 42Java strictfp Keyword
- 43Java super Keyword
- 44Java switch Keyword
- 45Java synchronized Keyword
- 46Java this Keyword
- 47Java transient Keyword
- 48Java try Keyword
- 49Java void Keyword
- 50Java volatile Keyword
- 51Java while Keyword
- 52Java String Methods - Syntax and Description
- 53Java String
charAt()
method - 54Java String
codePointAt()
method - 55Java String
codePointBefore()
method - 56Java String
codePointCount()
method - 57Java String
compareTo()
method - 58Java String
compareToIgnoreCase()
method - 59Java String
concat()
method - 60Java String
contains()
method - 61Java String
contentEquals()
method - 62Java String
copyValueOf()
method - 63Java String
endsWith()
method - 64Java String
equals()
method - 65Java String
equalsIgnoreCase()
method - 66Java String
format()
method - 67Java String
getBytes()
method - 68Java String
getChars()
method - 69Java String
hashCode()
method - 70Java String
indexOf()
method - 71Java String
intern()
method - 72Java String
isEmpty()
method - 73Java String
join()
method - 74Java String
lastIndexOf()
method - 75Java String
length()
method - 76Java String
matches()
method - 77Java String
offsetByCodePoints()
method - 78Java String
regionMatches()
method - 79Java String
replace()
method - 80Java String
replaceAll()
method - 81Java String
replaceFirst()
method - 82Java String
split()
method - 83Java String
startsWith()
method - 84Java String
subSequence()
method - 85Java String
substring()
method - 86Java String
toCharArray()
method - 87Java String
toLowerCase()
method - 88Java String
toString()
method - 89Java String
toUpperCase()
method - 90Java String
trim()
method - 91Java String
valueOf()
method - 92Java ArrayList Methods - Complete Reference with Syntax and Description
- 93Java LinkedList Methods - Complete Reference with Syntax and Description
- 94Java HashMap Methods - Syntax and Descriptions
Java private
Keyword
Usage and Examples
private
Keyword in Java
In Java, private
is one of the four access modifiers used to restrict the visibility of classes, methods, and variables. It plays a key role in achieving encapsulation—a fundamental principle of object-oriented programming.
When a member is declared private
, it can only be accessed within the same class. This helps you protect the internal state of an object and prevent external code from directly modifying it.
Why Use private
?
- To safeguard sensitive data from outside access.
- To force controlled access via public getters/setters.
- To prevent misuse or accidental manipulation of internal logic.
- To support encapsulation by exposing only necessary interfaces.
Using private
with Variables
Most commonly, you’ll use private
to declare instance variables in a class. This keeps them hidden from other classes.
public class BankAccount {
private double balance;
public void deposit(double amount) {
balance += amount;
}
public double getBalance() {
return balance;
}
}
Explanation
Here, balance
is declared private
. You can't access it directly from outside the class. Instead, you access it via the public method getBalance()
. This is a textbook example of encapsulation.
BankAccount acc = new BankAccount();
acc.balance = 5000; // Compilation error: balance has private access
Using private
with Methods
You might want to make some helper methods private
if they should not be part of the public API.
public class Validator {
public boolean isValidUser(String userId) {
return isInternalUser(userId);
}
private boolean isInternalUser(String userId) {
return userId.startsWith("INT");
}
}
Explanation
The isInternalUser
method is a private helper that checks a specific logic. It’s not meant to be accessed from outside. Making it private ensures that no external class can call it directly.
Validator v = new Validator();
v.isInternalUser("INT123"); // Error: isInternalUser() has private access
Using private
with Constructors
In rare cases, constructors can also be declared private
—especially in design patterns like Singleton.
public class AppConfig {
private static AppConfig instance = new AppConfig();
private AppConfig() {
// private constructor
}
public static AppConfig getInstance() {
return instance;
}
}
Explanation
Since the constructor is private, you cannot instantiate AppConfig
using new
from outside the class. The only way to access the instance is through the getInstance()
method. This is how Singleton Pattern works.
AppConfig config = new AppConfig(); // Error: AppConfig() has private access
Access Control Summary
Let’s compare how access modifiers behave in terms of visibility:
Modifier | Same Class | Same Package | Subclass | Other Classes |
---|---|---|---|---|
private |
✔ | ✖ | ✖ | ✖ |
default (no modifier) |
✔ | ✔ | ✔ (if in same package) | ✖ |
protected |
✔ | ✔ | ✔ | ✖ |
public |
✔ | ✔ | ✔ | ✔ |
Best Practices When Using private
- Keep class variables
private
and expose them viagetters/setters
. - Minimize the visibility of your class members—start with
private
and increase only when needed. - Use private methods to clean up public methods and hide implementation details.