/*
*
*
*/
package com.blx.learn.java.core.innerclass;
/**
* This is an example Java Inner class which demonstrate various Inner classes
* available
*
* @author Nanjundan Chinnasamy
* @version 1.0
*
*/
public class LearnInnerClass {
/**
* This is a sample Member Inner class defined inside a class
*
* This inner class is instance specific to the outer class
* (LearnInnerClass). Object can be created for this class using Outer class
* object.
*
* @author Nanjundan Chinnasamy
* @version 1.0
*/
class MemberInnerClass {
/**
* Member class method
*/
public void testMethod() {
System.out.println("This is member class testMethod method");
}
/**
* Static class method
*/
public void memberlassMthd() {
// To access member class method
this.testMethod();
// To access outer class method
LearnInnerClass.this.testMethod();
}
}
/**
* This is a sample Static Member Inner class defined inside a class. Member
* class defined as static. Like other static methods, member class has
* access to all.
*
* @author Nanjundan Chinnasamy
* @version 1.0
*
*/
static class StaticMemberInnerClass {
/**
* Static class method
*/
public void testMethod() {
System.out.println("This is static class testMethod method");
}
/**
* Static class method
*/
public void staticMemClassMthd() {
this.testMethod();
}
}
/**
* Method to testMethod local Inner class
*/
void localClassMethod() {
/**
* This is local class exists inside the method. This can be reference
* only within this method.
*
* @author Nanjundan Chinnasamy
* @version 1.0
*
*/
class LocalInnerClass {
public void testMethod() {
System.out.println("This is local class testMethod mthod.");
}
}
// To access local class methods
new LocalInnerClass().testMethod();
// To access outer class methods
testMethod();
}
/**
* Method to testMethod anonymous inner class
*
*/
void anonymousClassMethod() {
/**
* Anonymous Inner class declared inside a method without any name. JVM
* will create its own name during the compile time.
*
* Such implementation might required the places where to create an
* object instances w/o creating sub class and override their methods
*
* @author Nanjundan Chinnasamy
*
* @version 1.0
*/
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("This is anonymous inner class");
}
};
Thread thread = new Thread(runnable);
thread.run();
}
/**
* This is an out class testMethod method
*/
void testMethod() {
System.out.println("I am outer class testMethod method");
}
/**
* @param args
*/
public static void main(String[] args) {
// This is for static member class
LearnInnerClass.StaticMemberInnerClass staticMemberInnerClass = new StaticMemberInnerClass();
staticMemberInnerClass.staticMemClassMthd();
// This is for member class
MemberInnerClass memberInnerClass = new LearnInnerClass().new MemberInnerClass();
memberInnerClass.testMethod();
// This is for Local Inner class
LearnInnerClass outerClassForLocInnTst = new LearnInnerClass();
outerClassForLocInnTst.localClassMethod();
// This is for anonymous inner class
LearnInnerClass outerClassForAnomysClassTst = new LearnInnerClass();
outerClassForAnomysClassTst.anonymousClassMethod();
}
}
Output:
This is static class testMethod method
This is member class testMethod method
This is local class testMethod mthod.
I am outer class testMethod method
This is anonymous inner class
Knowledge is our wisdom & i want to share the knowledge which i learnt recent times. Keep following my blog for new updates
Showing posts with label Innerclass. Show all posts
Showing posts with label Innerclass. Show all posts
Saturday, August 13, 2011
Subscribe to:
Posts (Atom)
Pega Decisioning Consultant - Mission Test Quiz & Answers
The Pega Certified Decisioning Consultant (PCDC) certification is for professionals participating in the design and development of a Pega ...
-
The Pega Certified Decisioning Consultant (PCDC) certification is for professionals participating in the design and development of a Pega ...
-
Hi Guyz, My Business Unit is in the process of creating a new development process tool something like Teamtracker for Internal purpose. I...
-
This blog is all about improving “Customer Service” further from the where we are now. It's an Ideation Blog. Like banks across th...