Java---内部类
1.内部类
1 package Demo1.JavaSe; 2 //学习内部类 3 public class InnerClass { 4 5 private int id=10; 6 7 public void out(){ 8 System.out.println("外部类的OUT方法!!"); 9 } 10 //内部类 11 public class Inner{ 12 13 public void in(){ 14 15 System.out.println("内部类的IN方法!!"+id); 16 } 17 }18 19 }
2.静态内部类
package Demo1.JavaSe; //学习内部类 public class InnerClass { private int id=10; public void out(){ System.out.println("外部类的OUT方法!!"); } //内部类 public class Inner{ public void in(){ System.out.println("内部类的IN方法!!"+id); } } public static class Inner2{ public void in(){ //此处不能加载id,直接编译错误。 //为什么加入static后就拿不到id了,初始化先后的问题, //如果内部类是static 的,他就先初始化了 System.out.println("静态内部类的IN方法!!"); } } }
3.局部内部类
package Demo1.JavaSe; //学习内部类 public class InnerClass { private int id=10; public void out(){ System.out.println("外部类的OUT方法!!"); } //内部类 public class Inner{ public void in(){ System.out.println("内部类的IN方法!!"+id); } } public static class Inner2{ public void in(){ //此处不能加载id,直接编译错误。 System.out.println("静态内部类的IN方法!!"); } } //局部内部类 public void InnerTo(){ class InnerByFunction{ public void getByFunction(){ System.out.println("局部内部类"); } } } }
3.局部内部类:
1 interface AnonymousInner{ 2 public void AnonymousFun(); 3 }
//没有名字的内部类
new AnonymousInner() { @Override public void AnonymousFun() { System.out.println("匿名内部类!!!"); } };
测试方法:
1 //new 一个外部内 2 InnerClass innerClass = new InnerClass(); 3 4 innerClass.out(); 5 6 //new 一个内部类 7 //InnerClass.Inner inner = new InnerClass.Inner();//这样是报错的,前提它必须是静态的 8 9 InnerClass.Inner inner = innerClass.new Inner(); 10 11 //可以看出内部可以获取外部类的私有属性。 12 inner.in();
测试结果:
作者:隔壁老郭
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
Java入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!