Can I have a class inside another class?

Non-static nested classes are called inner classes . Nested classes that are declared static are called static nested classes. A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.

Read more

Why do we create instance in Java?

The new operator instantiates a class by allocating memory for a new object and returning a reference to that memory. … Note: The phrase “instantiating a class” means the same thing as “creating an object.” When you create an object, you are creating an “instance” of a class, therefore “instantiating” a class.

Read more