Part 9: Nested(Inner) class in JAVA with EXAMPLES

JAVA | 5 comments

Nested class in JAVA with EXAMPLES

Nested class if we declare one or more classes in a class then these classes are known as nested class.

Java Allows two category of nested class

  1. Static nested class
  2. Non Static nested class or inner class.

i) Member inner class: When declare any class inside a class but outside a method

ii) Anonymous inner class: this class uses for interface and abstract

iii) Local inner class: this class is more restricted class than others. This class used inside method.

Why use nested class? When we declare a private variable in a class others class can’t use this variable. So the purpose of nested class is hiding or encapsulate.

Inner class or non-static class can use outer class variable as global variable.

Member inner class example:

  1. public class Outerclass {
    private int data=30;
    class Inner{
    void printline(){
    System.out.println("inner class Printline");
    System.out.println("Outer class data variable value: "+data);
    }
    }
    void display(){
    Outerclass.Inner inner = new Outerclass.Inner();
    inner.printline();
    }
    public static void main(String args[]){
    Outerclass outer = new Outerclass();
    outer.display();
    }
    }

     

Following the program Inner class use as member inner class. To display any line in the Inner class and to print outer class variable, here need outer class object in main method.

Line 10 can be rewritten as Inner inner = new Inner(). Keep in mind we can’t create Inner class object in main method because main method is a static method. In outer class create display method where need to create inner class object to print inner class method.

When outer.display() called then inner class method printline() is run.

Output:

run:

inner class Printline

30

BUILD SUCCESSFUL (total time: 0 seconds)

Outer class variable value run as globally, In case of Inner class variable or method need to create inner class object that already used in the example.

Anonymous inner class: This type of inner class most important. This inner class used in interface and abstract. As interface and abstract can’t create any object so inner class is the best use for interface and inner class.

Interface consist of ‘able’ ,e.g default interface Cloneable()

Now example for anonymous inner class

  1. interface Enable{
    void screen();
    }
    public class TestClass{
    public static void main(String args[]){
    Enable e = new Enable() {
    @Override
    public void screen() {
    System.out.println("Nice and Simple");
    }
    };
    e.screen();
    }
    }
    
    
    

    Following the example Enable is an interface there contains a method void screen(). To implement the method there needs to be @Override following

  1. interface Enable{
    void screen();
    }
    public class TestClass implements Enable{
    public static void main(String args[]){
    }
    @Override
    public void screen() {
    System.out.println("Using implements Enable interface");
    }
    }

     

We can use Enable interface by using implements. When implements Enable interface this TestClass  show message for Override method of interface.

So anonymous inner class can be used as inner class or by implements interface.

As this class known as anonymous we can rewrite the inner class like

  1. new Enable() {
    @Override
    public void screen() {
    System.out.println("Using implements Enable interface");
    }
    }.screen();
    

    Here this inner class means obj.method() where object is anonymous. This anonymous inner class can be used for interface similarly for the abstract class. We know interface is implicitly public abstract where no method has any body part. For the abstract class user need to declare class and method as abstract. Example anonymous inner class for abstract class:

  1. abstract interface newinterface
    {
    abstract void eat();
    }
    public class NewClass {
    public static void main(String args[])
    {
    new newinterface(){
    @Override
    public void eat()
    {
    System.out.println("Sweet food");
    }
    }.eat();
    }
    }
    

    Here this inner class means obj.method() where object is anonymous and the class is abstract.

Local inner class:

A class that is created inside a method is known as local inner class. If you want to invoke the methods of local inner class, you must instantiate this class inside the method.

1)      Local inner class cannot be invoked from outside the method.

2)      Local inner class cannot access non-final variable.

Example of local inner class:

public class LocalInner {    
 private int data = 30;    
 void localmethod()    
 {     
class Inner   
  {    
 void message()  
   {    
     System.out.println("Local variable value: "+data);   
  }  
   }   
  Inner inner = new Inner(); 
    inner.message();   
  }     
public static void main(String args[])
{   
  LocalInner obj = new LocalInner();
     obj.localmethod();  
   }    
 }

 

In main method when obj.localmethod(); is called local inner method called to run the inner class method  that is  inner.message(); is called.

Another example

public class LocalInner {
 private int data = 30; 
void localmethod() { 
int x=2;
 class Inner { 
void message() {
 System.out.println("Local variable value: "+data +"   "  +x); 
} } 
Inner inner = new Inner(); 
inner.message(); } 
public static void main(String args[])
{ 
LocalInner obj = new LocalInner();
 obj.localmethod(); 
} }

 

Here we declare a local variable x (line 5) in the inner class and want to invoke message() method then need to declare x as final. Example

void localmethod() {
 final int x=2; class Inner{ 
void message() { 
System.out.println("Local variable value: "+data+"   " +x);
 } }

 

 

Above all if local variable does not final,local variable can’t invoke the local inner class.

Static Nested Class;

Example:

public class NewClass1 { 
    static int a =1;
     static class Inner{
     void message()
     {      
   System.out.println("Simple statements " +a);    
 }     static void display()     
{         System.out.println("Display statements");    
 }     }    
 public static void main(String args[])     { 
      Inner n = new Inner();      
 n.message(); // as message() is non-static so need to create object to call the method.    
   Inner.display(); //display() method is static so can be called by class ,no need create object here.           } }
Nested Interface: Interfaces can be nested, by default nested Interfaces are public and static (implicitely) Nested Interface program: public interface Displable {     void msg();     interface Eatable{         void eat();     } }

When we want to use eat() method in class the program would be:

class Exinterface implements Displable.Eatable{

@Override

public void eat() {

System.out.print(" Mango ");

}

}

public class NestedInterface{

public static void main(String args[]){

Exinterface ex = new Exinterface();

ex.eat();

}

}

 

In this program we implements outer interface class with inner interface to use eat() method.

When we want to use msg()  method in class the program would be:

class Exinterface implements Displable{

    @Override

    public void msg() {

        System.out.print(" This is a Nested Interface example ");

    }

}

public class NestedInterface{

public static void main(String args[]){

Exinterface ex = new Exinterface();

ex.msg();

}

}

 

Chapter 6: Software Testing with example Process

What is Testing? Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing...

Chapter – 4: Project management with Example Procedures.

Project management Software project management is an essential part of software engineering. Projects need to be managed because professional software engineering is always subject to organizational budget and schedule constraints. The project manager‘s job is to...

You may find interest following article

Chapter 6: Software Testing with example Process

What is Testing? Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. According to ANSI/IEEE 1059 standard, Testing can be...

Chapter-5: Cost Estimation Tutorial in Software Engineering

Cost Estimation Tutorial Cost is s strategic concept in software development for the following reasons: Project management: Estimating cost is extremely crucial in carrying out project management activities such as scheduling, planning and control.Feasibility Study: Making investment decisions regarding software projects requires full cost breakdown and analysis...

Chapter – 4: Project management with Example Procedures.

Project management Software project management is an essential part of software engineering. Projects need to be managed because professional software engineering is always subject to organizational budget and schedule constraints. The project manager‘s job is to ensure that the software project meets and overcomes these constraints as well as delivering...

Chapter -3: Agile Software Development Method Process

Agile Software Development Although there are many approaches to rapid software development, they share some fundamental characteristics: The processes of specification, design, and implementation are interleaved. There is no detailed system specification, and design documentation is minimized or generated automatically by the programming environment used to...

Chapter 2: Software processes with various model

Objectives: understand the concepts of software processes and software process models;have been introduced to three generic software process models and when they might be used;know about the fundamental process activities of software requirements engineering, software development, testing, and evolution;understand why processes should be organized to cope with...

Frequency Word for IELTS Listening

Frequency Word for IELTS Listening School a. Library  WordSentence1. Shelf 2. Librarian 3. The stacks 4. Return 5. Fine 6. Magazine 7. Copier  8. Overdue  9. Reading room  10. Reference room  11. Periodical room  12. Study lounge  13. Catalogue  14....

Chapter 8: Gantt chart Project Development in SDLC

Gantt chart Project DevelopmentSchedule (project management) The project scheduleis the tool that communicates what work needs to be performed, which resources of the organization will perform the work and the timeframes in which that work needs to be performed. The project scheduleshould reflect all of the work associated with delivering the project on time....

Chapter 7: Feasibility Analysis in Software Develoment Life Cycle.

Feasibility AnalysisWhat is Feasibility Analysis?? An analysisand evaluation of a proposed project to determine if it (1) is technically feasible, (2) is feasible within the estimated cost, and (3) will be profitable for Organization. Feasibility analysis guides the organization in determining whether to proceed with the project. Feasibility analysis also identifies...

Chapter 6: Data Flow Diagram in Software Development Life Cycle.

Data Flow Diagram What is DFD? A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modelling its process aspects.A DFD is often used as a preliminary step to create an overview of the system, which can later be elaborated.Show users how data moves between different processes in a system. Figure 1: DFD Symbols...

Chapter 5: System request on SDLC

System Request In most organizations, project initiation begins by preparing a  system request. A  system request is a document that describes the business reasons for building a system and the value that the system is expected to provide.The project sponsor usually completes this form as part of a formal system project selection process within the...

Chapter 4: SDLC design Phase

SDLC design Phase DFD (Design Analysis)Architectural DesignUI DesignDatabase DesignProgram DesignArchitectural design (logical)Network designClient –server designClient designServer designCloud ComputingDatabase designER diagramRelational diagramDDL (not now..!!)Program design (physical)Investigating the hardware/software platformPhysical DFDData storageData...

Chapter 3: SDLC and its Life cycle Phases.

What is SDLC? The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. Career Paths for System Developers Systems Development Life Cycle Building...

Chapter 2: SDLC Key Features For SYSTEMS ANALYST.

Once upon a time, software development consisted of a programmer writing code to solve a problem or automate a procedure. Nowadays, systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of custom-written code that drive our enterprises.To manage this, a number of system...

Chapter 1: System analysis and Design Overview.

System analysis, a method of studying a system by examining its component parts and their interactions. •It provides a framework in which judgments of the experts in different fields can be combined to determine what must be done, and what is the best way to accomplish it in light of current and future needs.  •The system analyst (usually a software engineer or...

Chapter 4: Concept Of Sampling, Quantization And Resolutions

Concept Of Sampling, Quantization And Resolutions Conversion of analog signal to digital signal: The output of most of the image sensors is an analog signal, and we can not apply digital processing on it because we can not store it. We can not store it because it requires infinite memory to store a signal that can have infinite values. So we have to convert an...

Chapter 3: Images and Conversions in Digital Image Process

Images And Conversions There are many type of images, and we will look in detail about different types of images, and the color distribution in them. The binary image The binary image as it name states, contain only two pixel values. 0 and 1. In our previous tutorial of bits per pixel, we have explained this in detail about the representation of pixel values to...

Chapter 2: Concept of Pixel in Digital Image Process

Concept of Pixel Pixel Pixel is the smallest element of an image. Each pixel correspond to any one value. In an 8-bit gray scale image, the value of the pixel between 0 and 255. The value of a pixel at any point correspond to the intensity of the light photons striking at that point. Each pixel store a value proportional to the light intensity at that particular...

Part 6: IELTS Academic Writing Task 1 For Diagram/Graph Vocabulary

Vocabulary to show the sequence: You must write a summary of at least 150 words in response to a specific graph (bar, line, or pie graph), table, chart, or procedure in Writing Task 1 of the IELTS Academic test (how something works, how something is done). This job assesses your ability to choose and report the most important aspects, describe and compare data,...

Part 5: IELTS Academic Writing Task 1 Formal and Informal expressions.

Formal and Informal expressions and words: You must write a summary of at least 150 words in response to a specific graph (bar, line, or pie graph), table, chart, or procedure on the IELTS Academic test (how something works, how something is done). Few more informal expressions with their formal versions are given below. Since IELTS is a formal test, your writing...