内部类

本文详细解析了Java内部类的概念,包括成员内部类和局部内部类的特点与使用方式。介绍了如何在外部类中定义和调用内部类,以及解决内部类同名变量冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类

奖类写在其他类的内部,可以写在其他类的成员位置和局部位置,这种类就是内部类

内部类的分类

成员内部类:可以使用成员修饰符,public static …

也是个类,可以继承,可以实现接口

调用规则:内部类,可以使用外部类成员,包括私有,外部类要使用内部类的成员,必须建立内部类对象

public class Outer {
    private int a = 1;
    class Inner{
        public void inner(){
            System.out.println("内部类方法inner"+a);
        }
    }
}

public class Test {
    public static void main(String[] args) {
    /*
        依靠外部类对象,找到内部类,通过内部类对象,调用内部类方法
        格式:外部类名.内部类名 变量 = new 外部类名().new 内部类对象();
        变量.内部类方法
     */
    Outer.Inner in = new Outer().new Inner();
    in.inner();
    }
}

成员内部类的同名变量调用

public class Outer {
    int i = 1;
    class Inner{
        int i = 2;
        public void inner(){
            int i = 3;
            System.out.println(this.i);
            }
        }
    }

public class Test {
    public static void main(String[] args) {
    Outer.Inner in = new Outer().new Inner();
    in.inner();  //输出2
    }
}


public class Outer {
    int i = 1;
    class Inner{
        int i = 2;
        public void inner(){
            int i = 3;
            System.out.println(Outer.this.i);
            }
        }
    }

public class Test {
    public static void main(String[] args) {
    Outer.Inner in = new Outer().new Inner();
    in.inner();  //输出1
    }
}

局部内部类:将一个类定义在方法中

public class Outer {
    public void out(){
        class Inner{
            public void inner(){
                System.out.println("局部内部类的方法");
            }
        }

        Inner in = new Inner();
        in.inner();
    }
}

public class Test {
    public static void main(String[] args) {
        new Outer().out();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值