Java小白对成员内部类的总结

Kiran ·
更新时间:2024-11-10
· 943 次阅读

Java内部类-成员内部类的总结

关于内部类其他系列(目前没更完)
静态内部类
内部类我推荐大概了解,因为真正的重点不是内部类,我写这些只是为了更好理解

说实话,Java内部类我是理解了很久(2-3天吧),因为经常搞混,又特无语
以下总结是为了更好的理解,首先来成员内部类吧

成员内部类创建对象格式

有两种命名时期的格式(如何用在下面的 访问成员内部类的访问格式 中介绍)

在其他类中创建成员内部类对象 外部类.内部类 XXX=new 外部类().new 内部类(); //定义一 外部类.内部类 XXX=外部类.new 内部类(); //定义二 在外部类中创建成员内部类类对象 class Wai{ //创建外部类 class Nei{} //创建内部类 void fan(){ //在外部类创建内部类对象,方便引用 内部类 XXX=new 内部类(); } } 成员内部类的使用 不能再成员内部类中创建:static的方法和static成员
总之含有static修饰符就不能创建! class Wai{ //创建外部类 class Nei{ //创建内部类 static void no1(){} //在成员内部类中不能创建 static int no2=10; //在成员内部类中不能创建 static final void no1(){} //在成员内部类中不能创建 static final int no2=10; //在成员内部类中不能创建 } } 可以直接引用外部类的所有方法和变量 class Wai{ //创建外部类 static void yes1(){} //内部成员可以引用 static int yes2=20; //内部成员可以引用 void yes3(){} //内部成员可以引用 static int yes4=40; //内部成员可以引用 class Nei{ //创建内部类 } } 成员内部类的访问格式 1. 内部类访问外部类

通过:外部类类名+this+成员/变量(这样使用格式不会混乱) 外部类成员的静态成员,可以直接通过外部类类名引用

class Wai{ //创建外部类 //外部类静态成员 static void yes1(){} static int yes2=20; //外部类实例成员 void yes3(){} static int yes4=40; class Nei{ //创建内部类 //引用外部类成员 Wai.this.yes1(); int yin2=Wai.this.yes2; Wai.this.yes3(); int yin4=Wai.this.yes4; //外部类静态成员可以直接通过类名引用 Wai.yes1(); int yin5=Wai.yes2; } } 2. 外部类访问内部类

可以访问内部类的私有成员和方法(这点很无语,因为这点我也纳闷了很久) 步骤
1.通过在外部类中建立方法
2.在外部类方法中创建内部类对象

class Wai{ //创建外部类 class Nei{ //创建内部类 int nei1=10; void nei2(){} private int nei3=30; } //建立引用内部类的方法 void NeiDui(){ //创建内部类对象 Nei dui1=new Nei(); int dui1_1= dui1.nei1; dui1.nei2(); //可以访问内部类的私有成员和方法 int dui1_2= dui1.nei3; } } 3. 其他类访问内部类

1.创建成员内部类对象(成员内部类必须不是私有类型=private)

class Wai{ class Nei{ //创造成员内部类 int nei1=10; } } class Qi{ public static void main(String[] args){ //其他类访问内部类创建对象一 Wai.Nei jian1=new Wai().new Nei(); int jianInt1=jian1.nei1; //对内部类成员进行应用 //其他类访问内部类创建对象二 Wai.Nei jian2=Wai.new Nei(); int jianInt2=jian1.nei1; //对内部类成员进行应用 } }

2.创建外部类对象,通过外部类中访问内部类的方法进行访问

class Wai{ class Nei{ //创造成员内部类 int nei1=10; } void NeiDui(){ //创建引用内部类的方法 Nei dui1=new Nei(); //创造内部类对象 int dui1_1= dui1.nei1; //引用内部类成员 } } class Qi{ public static void main(String[] args){ Wai jian1=new Wai();//创建外部类成员 jian1.NeiDui(); //通过引用外部类方法进行引用 } }

如果有不对的地方,麻烦各位大佬指出来
我这个小菜会努力学习的


作者:Alopecia



JAVA 内部类

需要 登录 后方可回复, 如果你还没有账号请 注册新账号