java编程基础随心笔记

内部类的修饰符:public,protected,private,static

非静态内部类不能拥有静态成员

方法里也可以定义内部类,叫局部内部

大多数时候,内部类被当做成员内部类定义,而不是作为局部内部类定义,

成员内部类是五大类成员之一,类成员:成员变量,方法,构造器,初始化块,内部类

内部类分为:静态内部类,非静态内部类

外部类的上一级程序单元是包,只有两个作用域,同一个包内和任何位置,所以只需要两种访问控制权限,包访问权限和公开访问权限

当调用非静态内部类的实例方法,必须有一个非静态内部类实例,非静态内部类实例必须寄生在外部类实例里。

非静态内部类的成员可以访问外部类的私有成员,非静态内部类的成员只在非静态内部类范围内可知,并不能被外部类直接使用,如果外部类要访问非静态内部类的成员,则必须显式创建非静态内部类对象来调用访问其实例成员

接口里定义的内部类默认使用public static,也就是接口内部类只能是静态内部类

类的作用:定义变量,创建实例,作为父类被继承

内部类的作用:

1)在外部类内部使用内部类:

注意静态成员不能访问非静态成员,不要在外部类的静态成员使用非静态内部类(这也是一种类的成员)

2)在外部类以外使用非静态内部类:

如果要这样,不能使用private修饰符,这样的话只有其修饰的内部类在外部类中使用(定义变量,创建实例)

而使用public可以在任何地方使用,是公开的,但是使用内部类的时候就是要加上外部类的名字,才能走到内部类的地方

而省略用法,只有在一个包中的才能使用这个内部类

使用protected的后面再说

非静态内部类的子类不一定是内部类,可以是一个外部类

但是非静态内部类的子类实例一样需要保留一个引用,指向其父类所在外部类的对象

3)在外部类以外使用静态内部类,静态内部类是外部类相关的,因此创建静态内部类对象的时候不需要创建外部类对象。在外部类以外的地方创建静态内部类的语法:new 外部类的类名.内部类的名字加圆括号

//如果要定义内部类,优先考虑静态内部类,因为简单啊

//所有的局部成员不能使用访问控制修饰符

//匿名内部类适合创建那种只需要一次使用的类,创建匿名内部类的时候会立即创建一个该类的实例,然后这个类立即消失,匿名内部类不能重复使用,匿名内部类需要继承一个父类或者实现一个接口,必须且只能做一个

//匿名内部类不能是抽象类,因为系统在创建匿名内部类的时候,会立即创建匿名内部类的对象,因此不允许将匿名内部类定义成抽象类

//匿名内部类不能定义构造器,因为匿名内部类没有类名,所以无法定义构造器,但是可以定义初始化块,通过实例初始化块来完成构造器需要完成的事情

//常见的创建匿名内部类的方式是需要创建某个接口类型的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值