inner class:
Note: We can not declare an outer class static. We can only use static keyword with inner classes.
Lets learn how to instantiate static and non-static inner classes:
Instantiation of static class:
public class OuterClass{
public OuterClass(){
}
static class InnerClass{
public void check(){
}
}
}
public class OuterInnerDemo{
public static void main(String[] args){
OuterClass.InnerClass nestedObject = new OuterClass.InnerClass();
nestedObject.check();
}
}
Instantiation of non-static class:
Please leave a comment, if this post is really helpful.
Thanks
We can have two types of
inner classes: static inner classes and non-static
inner classes
non-static inner classes
requires initialization of outer class.
Whereas, static inner
class doesn’t require initialization of outer class.
Note: We can not declare an outer class static. We can only use static keyword with inner classes.
Benefit of static inner
classes:
static inner class doesn’t
contain a reference of outer class. So, on screen rotation [In Mobile device, like Android], it doesn’t create m/m
leak. While non-static inner class contains reference of
outer class and can cause m/m leak.Lets learn how to instantiate static and non-static inner classes:
Instantiation of static class:
public class OuterClass{
public OuterClass(){
}
static class InnerClass{
public void check(){
}
}
}
public class OuterInnerDemo{
public static void main(String[] args){
OuterClass.InnerClass nestedObject = new OuterClass.InnerClass();
nestedObject.check();
}
}
Instantiation of non-static class:
public class OuterClass{
public OuterClass(){
}
class InnerClass{
public void check(){
}
}
}
public class OuterInnerDemo{
public static void main(String[] args){
OuterClass outer = new OuterClass();
OuterClass.InnerClass nonStaticObject = outer.new InnerClass();
nonStaticObject.check();
}
}
Please leave a comment, if this post is really helpful.
Thanks
No comments:
Post a Comment