码迷,mamicode.com
首页 > 编程语言 > 详细

java 基础之内部类

时间:2015-08-14 22:41:29      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

内部类的使用

  1内部类对象的创建:

    非静态内部类:Outer.Inner oi  = new Outer().new Inner();

    静态内部类:Outer.Inner oi  = new Outer().Inner();

  2内部类的方法调用

    非静态内部类和静态内部类的非静态方法:oi.test();

    静态内部类的静态方法:Inner.test();

public class Test {
    
    public static void main(String[] args) {
        new Test().new Inner1().test1();
        new Test().new Inner1().test2();
        
        new Test.Inner2().test1();
        new Test.Inner2().test2();
        Inner2.test3();
    }
    
    private class Inner1{
        public void test1(){
            System.out.println("测试内部类公共方法");
        }
        
        private void test2(){
            System.out.println("测试内部类私有方法");
        }
        
//        public static void test3(){//含有静态方法的内部类必须是静态类
//            System.out.println("测试内部类静态私有方法");
//        }
    }
    
    private static class Inner2{
        public void test1(){
            System.out.println("测试静态内部类公共方法");
        }
        
        private void test2(){
            System.out.println("测试静态内部类私有方法");
        }
        
        public static void test3(){
            System.out.println("测试静态内部类静态私有方法");
        }
    }
    

}

    3.在其他类中方法的调用:     

      非静态内部类和静态内部类的非静态方法:oi.test();

      静态内部类的静态方法:Outer.Inner.test();

    4.方法内部类,只能在当前方法中被调用,调用时必须在类创建后面创建

public class Outer {
    public void test1(){
        System.out.println("测试外部类类公共方法");
    }
    
    private void test2(){
        System.out.println("测试外部类私有方法");
    }
    
    public void test3(){
        class Inner{
            public void test(){
                System.out.println("测试方法内部类");
            }
        }
        new Inner().test();
        
    }
    
    class Inner1{
        public void test1(){
            System.out.println("测试内部类公共方法");
        }
        
        private void test2(){
            System.out.println("测试内部类私有方法");
        }
    }
    
    static class Inner2{
        public void test1(){
            System.out.println("测试内部类公共方法");
        }
        
        private void test2(){
            System.out.println("测试内部类私有方法");
        }
        
        static void test3(){
            System.out.println("测试内部类静态方法");
        }
    }

}

    5.1内部类在其他类中创建与调用有权限限制,但在外部类中调用没有权限限制

    5.2含有静态方法的内部类必须是静态类

    5.3内部类生成的字节文件名为Outer$Inner.class,方法内部类生成的字节文件名为Outer$1Inner.class

 

java 基础之内部类

标签:

原文地址:http://www.cnblogs.com/cjcblogs/p/4730472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!