3.1 Lesson Outcomes
After completing this lesson, learners will be able to:
- Define nested classes in Java.
- Create inner classes.
- Create static nested classes.
- Access members of outer classes.
- Instantiate and use nested classes.
3.2 Overview
Nested classes are classes declared inside another class. Java supports:
- inner classes,
- static nested classes,
- local classes,
- and anonymous classes.
Nested classes help organize code and improve encapsulation.
This lesson introduces learners to the practical creation and use of Java nested classes.
Nested classes are important in:
- object-oriented programming,
- encapsulation,
- event handling,
- and modular application design.
Understanding nested classes is important because they help structure complex Java applications.
PA1001 — Create an Inner Class
An inner class is declared inside another class.
Java Example:
public class OuterClass {
class InnerClass {
void display() {
System.out.println(“Inner Class”);
}
}
}
Practical Activity
Learners must:
- create an outer class,
- declare an inner class,
- and create inner class methods.
PA1002 — Access Inner Class Members
Inner classes can access members of the outer class.
Java Example:
public class OuterClass {
String message = “Welcome”;
class InnerClass {
void display() {
System.out.println(message);
}
}
}
Practical Activity
Learners must:
- access outer class fields,
- display outer class values,
- and test inner class access.
PA1003 — Instantiate an Inner Class
Inner classes are instantiated through outer class objects.
Java Example:
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner =
outer.new InnerClass();
inner.display();
Practical Activity
Learners must:
- instantiate inner classes,
- call inner class methods,
- and display results.
PA1004 — Create a Static Nested Class
Static nested classes belong to the outer class itself.
Java Example:
public class OuterClass {
static class NestedClass {
void display() {
System.out.println(“Static Nested Class”);
}
}
}
Practical Activity
Learners must:
- create static nested classes,
- declare methods,
- and display nested class output.
PA1005 — Instantiate a Static Nested Class
Static nested classes do not require outer class objects.
Java Example:
OuterClass.NestedClass nested =
new OuterClass.NestedClass();
nested.display();
Practical Activity
Learners must:
- instantiate static nested classes,
- call methods,
- and display output.
PA1006 — Compare Inner and Static Nested Classes
Java supports different nested class types.
Nested Class Type — Description
Inner Class — Requires outer class object
Static Nested Class — Does not require outer class object
Practical Activity
Learners must:
- compare nested class types,
- identify differences,
- and demonstrate usage.
PA1007 — Create Complete Nested Class Program
Nested classes can be used in complete Java applications.
Java Example:
public class OuterClass {
String message = “Java Nested Classes”;
class InnerClass {
void display() {
System.out.println(message);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner =
outer.new InnerClass();
inner.display();
}
}
Importance of Nested Classes
Nested classes support:
- better organization,
- encapsulation,
- and structured application design.
3.5 Key Notes / Summary
- Nested classes are classes inside other classes.
- Inner classes access outer class members.
- Static nested classes belong to the outer class.
- Inner classes require outer class objects.
- Nested classes improve code organization and encapsulation.