将一个类定义在另一个类里面,里面的那个类就称为内部类。内部类的出现,再次打破了Java单继承的局限性。
访问特点:
内部类可以直接访问外部类的成员,包括私有成员。
外部类要访问内部类的成员,必须要建立内部类的对象。
内部类分类及共性:
共性:
成员内部类
在外部类中有成员变量和成员方法,成员内部类就是把整个一个类作为了外部类的成员;
成员内部类是定义在类中方法外的类;
创建对象的格式为:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
成员内部类之所以可以直接访问外部类的成员,那是因为内部类中都持有一个外部类对象的引用:外部类名.this;
成员内部类可以用的修饰符有final,abstract,public,private,protected,static.
静态内部类
静态内部类就是成员内部类加上静态修饰符static,定义在类中方法外。
在外部类中访问静态内部类有两种场景:
局部内部类
局部内部类是定义在方法中的类。
可以用于方法内部类的修饰符有final,abstract;
静态方法中的局部内部类只能访问外部的静态成员。
匿名内部类
匿名内部类是内部类的简化写法,是建立一个带内容的外部类或者接口的子类匿名对象。
前提:
内部类可以继承或实现一个外部类或者接口。
格式:
new 外部类名或者接口名(){重写方法};
通常在方法的形式参数是接口或者抽象类,并且该接口中的方法不超过三个时,可以将匿名内部类作为参数传递。
修饰符:
权限修饰符:private,默认的,protected,public
状态修饰符:static,final
抽象修饰符:abstract
修饰类的关键字:
权限修饰符:默认修饰符,public
状态修饰符:final
抽象修饰符:abstract
用的最多的就是:public
修饰成员变量的关键字:
权限修饰符:private,默认的,protected,public
状态修饰符:static,final
用的最多的就是:private
修饰构造方法的关键字:
权限修饰符:private,默认的,protected,public
用的最多的就是:public
修饰成员方法的关键字:
权限修饰符:private,默认的,protected,public
状态修饰符:static,final
抽象修饰符:abstract
用的最多的就是:public
除此以外的组合规则:
成员变量:public static final
成员方法:public static
public abstract
public final
类 | 成员变量 | 成员方法 | 构造方法 | |
---|---|---|---|---|
private | Y | Y | Y | |
默认 | Y | Y | Y | Y |
protected | Y | Y | Y | |
public | Y | Y | Y | Y |
abstract | Y | Y | ||
static | Y | Y | Y | |
final | Y | Y | Y |
注意,常见规则如下:
本类 | 同包(无关类或子类) | 不同包(子类) | 不同包(无关类) | |
---|---|---|---|---|
private | Y | |||
默认 | Y | Y | ||
protected | Y | Y | Y | |
public | Y | Y | Y | Y |
本文地址:https://blog.csdn.net/qq_39153706/article/details/107578572
如对本文有疑问, 点击进行留言回复!!
利用python将Mysql信息以Excel文件并作为邮件附件发送
springmvc+mybaits+mysql上传表情Incorrect string value: ‘\xF0\x9F\xA4\xB4\xF0\x9F...‘ for
SpringCloud Greenwich集成Seata1.2.0详解说明(原创by ulwfcyvi)
mybatis generator生成代码库 与指定的库不一致 为其他库的同名表
网友评论