初识JAVA内部类

初识JAVA内部类
1 内部类概述
 
如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。
 
就是把类定义在类的内部的情况就可以形成内部类的形式。
 
A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待:
 
2 特点
 
1) 内部类可以直接访问外部类中的成员,包括私有成员
 
2) 外部类要访问内部类的成员,必须要建立内部类的对象
 
3) 在成员位置的内部类是成员内部类
 
4) 在局部位置的内部类是局部内部类
 
3 练习 : 内部类入门案例
 
创建包: cn.tedu.innerclass
 
创建类: TestInner1.java
 
package cn.tedu.innerclass;
 
/*本类用作测试内部类的入门案例*/
 
public class TestInner1 {
 
    public static void main(String[] args) {
 
        //3.创建内部类对象,使用内部类的资源
 
        /*外部类名。内部类名 对象名 = 外部类对象。内部类对象*/
 
        Outer.Inner oi = new Outer()。new Inner();
 
        oi.delete();
 
        System.out.println(oi.sum);
 
        //4.调用外部类的方法--这样是创建了一个外部类的匿名对象,只使用一次
 
        new Outer()。find();
 
    }
 
}
 
//1.创建外部类 Outer
 
class Outer{
 
    //1.1创建外部类的成员变量
 
    String name;
 
    private int age;
 
    //1.2创建外部类的成员方法
 
    public void find(){
 
        System.out.println("Outer…find()");
 
        //6.测试外部类如何使用内部类的资源
 
        //System.out.println(sum);--不能直接使用内部类的属性
 
        //delete();--不能直接调用内部类的方法
 
        /*外部类如果想要使用内部类的资源,必须先创建内部类对象
 
        * 通过内部类对象来调用内部类的资源*/
 
        Inner in = new Inner();
 
        System.out.println(in.sum);
 
        in.delete();
 
    }
 
    //2.创建内部类Inner--类的特殊成员
 
    /*根据内部类位置的不同,分为:成员内部类(类里方法外)、局部内部类(方法里)*/
 
    class Inner{
 
        //2.1定义内部类的成员变量
 
        int sum = 10;
 
        //2.2定义内部类的成员方法
 
        public void delete(){
 
            System.out.println("Inner…delete()");
 
            //5.测试内部类是否可以使用外部类的资源
 
            /*结论:内部类可以直接使用外部类的资源,私有成员也可以!*/
 
            System.out.println(name);
 
            System.out.println(age);
 
            /*注意:此处测试完毕需要注释掉,否则来回调用
 
            * 会抛出异常StackOverFlowException栈溢出异常*/
 
            //find();
 
        }
 
    }
 
}

推荐阅读