1、内部类的存在是为了方便外部类的操作,内部类创建时隐藏的带有了外部类的指针,因此内部类的创建需要外部类对象先存在
2、内部类调用外部类时使用外部类的指针为 外部类名.this
3、在其他类中操作内部类时,内部类实例化需要当成一个外部类的成员变量来使用
4、实例化一个内部类:
拥有外部类的对象再实例化这个内部类
把内部类做成一个静态的类,这样就没有必要拥有了外部类的实例,方便实例化
5、内部类实体与部分操作方法
public class TeamMembersVo implements Serializable {
/**
* 成员的基本信息 集合
*/
private List<TeamMembersMesVo> teamMembersMesVos;
/**
* 获取 一个 TeamMembersMesVo内部类对象并且置入集合
* @return com.central.manager.dto.vo.TeamMembersVo.TeamMembersMesVo
**/
public TeamMembersMesVo getTeamMembersMesVo(){
TeamMembersMesVo teamMembersMesVo = new TeamMembersMesVo();
// 在外部类中 两种写法等价
TeamMembersMesVo teamMembersMesVo1 = this.new TeamMembersMesVo();
this.teamMembersMesVos.add(teamMembersMesVo);
return teamMembersMesVo;
}
/**
* 队伍的成员基本信息实体
*/
@Data
@Accessors(chain = true)
public class TeamMembersMesVo implements Serializable{
private static final long serialVersionUID = 3778703288145106041L;
/**
* 构造器 并且将生成的对象置入 外部类的集合中
*/
public TeamMembersMesVo() {
// 内部类中操作外部类的属性 实现内部类外部类的通信
TeamMembersVo.this.teamMembersMesVos.add(this);
}
}
其他类创建内部类对象
TeamMembersVo teamMembersVo = new TeamMembersVo();
TeamMembersVo.TeamMembersMesVo teamMembersMesVo = teamMembersVo.new TeamMembersMesVo();
static 的静态内部类为嵌套类,不是真正意义上的内部类