java韩顺平学习笔记4(内部类)

java韩顺平学习笔记4(内部类)

内部类(重要)

image-20230729102604344

类的五大成员:属性,方法,构造器,代码块,内部类

局部内部类

image-20230729104021611

public class Outer {        //外部类
    String name = "";
    public void f1(){
        private int a = 0;
        class Inner{//局部内部类
            private int innerb= 0 ;
            public void f2(){
                System.out.println("局部内部类方法调用");
            }

        }
    }
}

image-20230729105543841

匿名内部类(重要)

image-20230729131829546

可以创建对象,接受创建的匿名内部类

接口 对象名 = new 接口(){

​ 匿名内部类的成员

};

  • 区别俩面两种代码

匿名内部类(“AAA”参数,会传入Father的构造器)

Father father = new Father("AAA"){
		//运行类型是运行内部类
};

正常对象创建

Father father = new Father("AAA");		// 

匿名内部类使用细节

​ 只使用一次,修改不会使其他对象也一起更改

成员内部类

image-20230729152218054

  • 外部其他类访问成员内部类的成员2种方式
  1. 外部类.成员内部类 对象名=外部类对象.new 成员内部类();
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
public class Outer {        //外部类
    public static void main(String[] args) {
        Outer outer = new Outer();
        Outer.Inner inner = outer.getInner();

    }
    
    class Inner{    //成员内部类
        public Inner() {
        }
    }
    
    public Inner getInner(){		//返回Inner对象的方法
        return new Inner();
    }
}

静态成员内部类

image-20230729155656848

static class Inner{
	
}
  • 静态类也只能访问静态成员和方法

外部其他类访问----->>静态内部类

外部类.成员内部类 对象名=外部类.new 外部类.静态内部类(); (区别与成员内部类)

Outer.Inner2 inner2 = new Outer.Inner2();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值