- 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 public Keyword
Usage and Examples
public
Keyword in Java
In Java, the public
keyword is an access modifier. It's used to define the visibility of classes, methods, constructors, and variables across different packages. When something is marked as public
, it means that it can be accessed from anywhere — within the same class, same package, subclass, or from completely unrelated classes in other packages.
Why Use public
?
Java is built around the principle of encapsulation, and access modifiers like public
help control that access. You use public
when you want your component to be accessible globally. It’s common for main classes, APIs, and utility methods.
1. Public Class Example
A public
class must be declared in a file with the same name as the class. This is often used when defining entry-point classes for your applications.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Hello, world!
Explanation: The class HelloWorld
is declared public
, so it can be accessed from anywhere. The main
method is also public
so the JVM can call it.
2. Public Method
Marking a method public
makes it callable from any other class, even in other packages.
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
public class Demo {
public static void main(String[] args) {
Calculator calc = new Calculator();
System.out.println(calc.add(5, 3));
}
}
8
Explanation: The add
method is public
, so it can be accessed from the Demo
class even if they are in separate packages (provided proper import).
3. Public Variable
Although not recommended (due to encapsulation best practices), variables can also be marked public
if you want direct access.
public class Dog {
public String breed = "Labrador";
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog.breed);
}
}
Labrador
Explanation: Here, the breed
variable is directly accessible. However, in practice, it’s better to use private variables with public getters/setters.
4. Public Constructor
Constructors can also be made public
so that objects can be created freely.
public class Book {
public Book() {
System.out.println("Book created!");
}
}
public class Library {
public static void main(String[] args) {
Book b = new Book();
}
}
Book created!
Explanation: The constructor is public, so any other class can create an instance of Book
.
When Not to Use public
- When you want to limit access to within a package — use
default
. - To encapsulate internal logic — use
private
. - For inheritance-restricted access — use
protected
.
Best Practices
- Only expose what is necessary — avoid making everything
public
. - Favor encapsulation: use getters/setters instead of public fields.
- Document public methods and classes thoroughly — they are your API surface.
Summary
Usage | Accessible From |
---|---|
public class |
Everywhere |
public method |
All classes, packages |
public variable |
Globally (not recommended) |
public constructor |
Anyone can instantiate |