近期美国一支15人的探险队在重庆市附近发现了一个新洞穴,其内部可视度极低,烟雾袅绕如同云层一般。更令人惊讶的是,岩洞非常大,内部能够生成一套完整的气候系统。

内部类的种类

成员内部类
方法内部类
匿名内部类
静态内部类
局部内部类

所谓内部类,是指在一个类的内部还有另外一个类的定义.
在Java中,可以在类的内部定义内部类, 也可以在方法内部定义一个类.
在方法体内定义内部类, 有需要注意的地方就是:
在方法体内定义的内部类,可以访问外部类的任意属性,但是不能直接访问方法中的参数变量.
如果需要让内部类访问方法的参数变量,需要在方法参数前加上”final”关键字.
使用内部类的优缺点是:
(1)优点: 使用内部类可以直接访问外部类的私有属性;
(2)缺点: 含有内部类的程序,代码结构不很好.

原博客链接:Java内部类(详细整理)

内部类?

在一个类中嵌套了另一个类。

一.内部类

内部类主要定义在类的内部,定义内部类的作用,主要是因为不希望该类作为大家共同使用访问的类。

成员内部类

成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。
要注意的是,成员内部类不能含有static的变量和方法。因为成员内部类需要先创建了外部类,才能创建它自己的

1.成员内部类

成员内部类就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private。
外部类要访问内部类的所有成员变量或方法,则需要通过内部类的对象来获取
注意:成员内部类不能含有 static 的变量和方法。

成员内部类的定义如下:

public class 外部类{
    public class 内部类{}
}

内部类的实例化:

外部类 对象 = new 外部类();
外部类.内部类 对象2=对象.new 内部类();
局部(方法)内部类

在一个方法体内创建一个类,并在方法体内进行实例化调用。

2.局部内部类

局部内部类是指内部类定义在方法和作用域内。通俗来说,就是在外部类的方法中定义的内部类就是局部内部类。

局部内部类由于是在方法中定义的,因此,其作用域也是在方法内部中,方法外执行到,则被JVM回收。局部内部类的实例化也只能在方法中进行。

示例:

    public class Method{
        public static void main(String[] args){
            Method m =new Method();
            m.test();
        }
        public void test(){
            final double pi=3.14;
            int r=6;
            class Circle implements Type{
                public double area(){
                    return pi*6*6;
                }
            }
            Circle c =new Circle();
            System.out.println("area="+c.area());
        }
    }
    interface Type{
        public double area();
    }

注意:局部内部类方法中想要使用局部变量,该变量必须声明为 final
类型;所以例子中未用 r 成员变量。

相关文章