01-遇到的java.lang.StackOverflowError

package cn.itbaodian.testJavaBasic;

import org.junit.Test;

public class Demo4
{
    /*
     * 26.什么是内部类?Static Nested Class 和Inner Class的区别?
     * 内部类就是一个类的内部定义的类.
     * 内部类中不能定义静态成员(静态成员不是对象的特性)
     * 
     * 内部类可以直接访问外部类中的成员变量,
     * 内部类可以定义在外部类的方法外面,
     * 也可以定义在外部类的方法体中.
     * 
     * 
     */
    
    @Test
    public void fun()
    {
        final int i=0;
        Inner1 inner1 = new Inner1();

        class Inner2
        {
            /*
             * 在方法体内部定义的内部类前面
             * 不能有访问类型的修饰符,
             * 
             * 就好象方法中定义的局部变量一样,
             * 但这种内部类的前面可以使用final或abstract 
             * 
             * 这种在方法体内部定义的内部类
             * 对于其他类是不可见的,其他类无法引用这种内部类,
             * 但是这种内部类创建的实例对象可以传递给其他类访问.
             * 
             * 这种内部类必须是先定义,后使用.
             * 
             * 内部类可以访问方法体中的局部变量,但是,该局部变量前必须加final修饰符.
             * 
             * 
             * 
             * 
             */
            @Test
            public  void method(int i)
            {
                 i=2;
                 System.out.println(i);
                
            }
        }
        Inner2 inner2 =  new Inner2();
        
        
    }
    
    public class Inner1{
        //在方法体外面定义的外部类
        
        /*访问类型可以是public、protecte、默认的、private等4种类型。
         * 
         *在外面创建内部类的实例对象,
         *
         *一定要先创建外部类的实例对象,
         *然后用这个外部类的实例对象去创建内部类的实例对象。
         */
        Demo4.Inner1 inner1=new Demo4().new Inner1();
    }
    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容