In this article we will look at what is a nested class and how to define a nested class and access the nested class members in a Java program.
This article is a part of our core java tutorial for beginners.
Java 1.1 added support for nested classes.
A class defined as a member of another class definition is known as a nested class.
A nested class can be either static or non-static. The non-static nested class is known as an inner class .
The enclosing class of an inner class can be called as an outer class .
An inner class can access all the members of an outer class. But the outer class cannot access the inner class members .
Inner classes and anonymous classes (inner classes without a name) are useful in event handling.
Below Java program demonstrates inner class (non-static nested class):
class Person
{
int age;
String name;
class Details
{
public void showDetails()
{
System.out.println("Age: " + age);
System.out.println("Name: " + name);
}
}
public void show()
{
Details d = new Details();
d.showDetails();
}
public static void main(String[] args)
{
Person p = new Person();
p.age = 25;
p.name = "surya";
p.show();
}
}
In the above example Details is the inner class and Person is the outer class.
Next, let’s about working with strings in java.

Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.

Leave a Reply