Java基础 8.20

1.成员内部类的使用

  • 说明:成员内部类是定义在外部类的成员位置,并且没有static修饰
  • 可以直接访问外部类的所有成员,包含私有的
  • 可以添加任意访问修饰符(public、protected、默认、private), 因为它的地位就是一个成员
package com.logic.innerclass;

public class MemberInnerClass01 {
    public static void main(String[] args) {
        Outer03 outer03 = new Outer03();
        outer03.t1();
    }
}

class Outer03 {//外部类
    private String name = "logic";
    private int n1 = 99;

    //定义在外部类成员位置上
    class Inner03 {//内部类

        public void say() {
            System.out.println("name = " + name + " n1 = " + n1);
        }
    }

    public void t1() {
        Inner03 inner03 = new Inner03();
        inner03.say();
    }
}
  • 作用域 和外部类的其他成员一样,为整个类体,比如前面案例,在外部类的成员方法中创建成员内部类对象,再调用方法
  • 成员内部类---访问---->外部类成员(比如:属性)【访问方式:直接访问
  • 外部类---访问------>成员内部类(说明)访问方式: 创建对象再访问
  • 外部其他类---访问---->成员内部类 本质两种方法
        //外部其他类,使用成员内部类的三种方式
        // 第一种方式
        // outer08.new Inner08(); 相当于把 new Inner08()当做是outer08成员
        // 这就是一个语法,不要特别的纠结.
        Outer08.Inner08 inner08 = outer08.new Inner08();
        inner08.say();
        // 第二方式 在外部类中,编写一个方法,可以返回 Inner08对象
        Outer08.Inner08 inner08Instance = outer08.getInner08Instance();
        inner08Instance.say();

  • 如果外部类和内部类的成员重名时,内部类访问的话,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员)去访问
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值