First of all Declaring mean:
ClassName obj;
Simple meaning of instantiate is creating an object from class.
ClassName obj = new ClassName();
What is a object?
- An instance of a class. From one class we can create many instances.
- They are the basic runtime entities in in our program.
- They may also represent user-defined data types such as lists and vectors.
- Any programming problem is analyzed in terms of objects and nature of communication between them.
As a example:
//Define a reference(a variable) which can hold a `Person` obect. Person p; //Create a Person object(instantiate). //new - use to allocate memory space for the new object p = new Person();
What is a nested class?
A class that defined inside a class is called nested class. There 2 categories of nested classes.
Inner class:
- Inner class can only be accessed by the outer class. Not by any other class.
- Inner class is a member of outer class.
- Outer class can access inner class without importing.
- Inner class can access any attribute or a method belong to outer directly.
- Outer class cannot access directly to a inner class.
Example for a inner class:
class Outer{ int i = 10; void main(){ //instantiate inner class. Inner in = new Inner(); in.show(); } class Inner{ void show(){ System.out.print(i); } } }
What is a local class?
Which are classes that are defined in a block.
Example:
public class{ int i = 10; public main(){ class A{ void show(){ System.out.println(i); } } //inside the method instantiate local class. A obj = new obj(); obj.show(); } //outside the main() -block(method) //inside another method instantiate local class. public test(){ A obj = new A(); obj.show(); } }