Skip to content
Snippets Groups Projects
Commit 9ece574d authored by VIGNESH VIJAYAKUMAR's avatar VIGNESH VIJAYAKUMAR
Browse files

Inner class

parent ebed98d9
No related branches found
No related tags found
No related merge requests found
class Outerclass{
int outernum = 10;
public class Innerclass{
//access outerclass attr in inner class
//the below print throw an error bcoz only attribute initiale can be done outside a method all other things need to be inside a method
//System.out.println("Outer num inside inner class : "+outernum);
int innerNUm = 20;
public void methodd(){
PrivateInnerclass privateobj = new PrivateInnerclass();
System.out.println("Secret num in private from another inner class: "+privateobj.secretnum);
System.out.println("Outer num inside inner class : "+outernum);
}
}
static class StaticInnerclass{
//we cannot access non-static context in static context
int staticInnernum = 30;
void methodd(){
System.out.println("Static inner class methodd: "+staticInnernum);
}
}
private class PrivateInnerclass{
int secretnum = 77;//this is not able to access from outside of Outerclass
}
void methodd(){
PrivateInnerclass privateobj = new PrivateInnerclass();
System.out.println("Secret num in private : "+privateobj.secretnum);
Innerclass innerobj = new Innerclass();
System.out.println("Inner num in public from outer class : "+innerobj.innerNUm);
}
}
public class Inner{
public static void main(String[] args){
//attribute from outer class
Outerclass outerObj = new Outerclass();
System.out.println("Outer num : "+outerObj.outernum);
//attribute from public inner class
//create an instance for innerclass using outer class object
Outerclass.Innerclass innerpublicobj = outerObj.new Innerclass();
System.out.println("Inner num : "+innerpublicobj.innerNUm);
innerpublicobj.methodd();// this will call methodd in inner class
//access attribute from static inner class
//to access static inner class dont need to create a instance for outer class
Outerclass.StaticInnerclass innerstaticobj = new Outerclass.StaticInnerclass();
System.out.println("Static Inner num from public class : "+innerstaticobj.staticInnernum);
innerstaticobj.methodd();
//below is throw an error bcoz that is private class.
//Outerclass.PrivateInnerclass privateInnerobj = outerObj.new PrivateInnerclass();
//access private inner class in outer class but not in outside the class
outerObj.methodd();
}
}
/*
We can create a instance of a one inner class in another inner class
Non-static context is not access in static context
For access static inner class we don't want to create a instance for outer class
Private inner class accesed by other inner classes (except static) and outer class but not by outside the outer class
*/
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment