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();
复制代码

测试结果:

 

posted on   白嫖老郭  阅读(97)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示