java-成员内部类

java-成员内部类1

请添加图片描述
请添加图片描述
请添加图片描述
源码
package com.InnerClass;

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

class Outer08 {//外部类
private int n1 = 10;
public String name = “张三”;
//1. 注意:成员内部类 是定义在外部类的成员位置上
//2. 可以添加任意修饰符
// (public protected 默认 private) 因为它的地位本身就是一个成员

class Inner08 {//成员内部类

    public void say() {
        //1. 可以直接访问外部类的所有成员 包含私有的
        System.out.println("Outer01的 n1 = " + n1 + " name = " + name);
    }
}

//写一个方法
public void t1() {
    //使用成员内部类
    Inner08 inner08 = new Inner08();
    inner08.say();
}

}

java-成员内部类2

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
源码
package com.InnerClass;

public class MemberInnerClass01 {
public static void main(String[] args) {
Outer08 outer08 = new Outer08();
outer08.t1();
//6. 外部其他类 使用成员内部类的三种方式
//解读
//第一种方式
//outer08.new Inner08(); 相当于把new Inner08()当作是outer08成员
//这就是一个语法 不要特别的纠结
Outer08.Inner08 inner08 = outer08.new Inner08();
inner08.say();

    //第二种方式 在外部类中 编写一个方法 可以返回 Inner08对象
    Outer08.Inner08 inner08Instance = outer08.getInner08Instance();
    inner08Instance.say();
}

}

class Outer08 {//外部类
private int n1 = 10;
public String name = “张三”;

private void hi() {
    System.out.println("hi()方法。。。");
}
//1. 注意:成员内部类 是定义在外部类的成员位置上
//2. 可以添加任意修饰符
// (public protected 默认 private) 因为它的地位本身就是一个成员

class Inner08 {//成员内部类
    private double sal = 99.8;
    private int n1 = 66;

    public void say() {
        //1. 可以直接访问外部类的所有成员 包含私有的
        //7. 如果成员内部类的成员和外部类的成员重名 会遵守就近原则
        // 可以通过 外部类名.this.属性 来访问外部类的成员
        System.out.println("Outer01的 n1 = " + n1 + " name = " + name
                + "外部类的n1= " + Outer08.this.n1);
        hi();
    }
}

//该方法 返回一个Inner08实例
public Inner08 getInner08Instance() {
    return new Inner08();
}

//写一个方法
public void t1() {
    //使用成员内部类
    //创建成员内部类的对象 然后使用相关的方法
    Inner08 inner08 = new Inner08();
    inner08.say();
    System.out.println(inner08.sal);
}

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值