I realized inner classes can be declared as public. What are practical use cases of public inner classes and how are they different than inner classes declared without public keyword?
public class OuterClass{
class InnerClass{
}
}
public class OuterClass{
public class InnerClass{
}
}
The difference is when passing an instance through a method/constructor.
Here is some code to show what I mean.
Class com.test.OutterClass.
package com.test;
public class OutterClass {
// public class
public class InnerClass {
}
// not public class
class InnerClass1 {
}
}
Class com.test2.TestClass
package com.test2;
public class TestClass {
// Works, because OutterClass.InnerClass is public.
TestClass(OutterClass.InnerClass t) {
}
// Doesn't work because OutterClass.InnerClass1 is not public.
TestClass(OutterClass.InnerClass1 t) {
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.