在一个类里面在定义一个类就叫内部类,这个外边的类就叫外部类
内部类分为4种情况
成员内部类
//成员内部类 public class D1 { //在一个类中除了有成员变量,成员方法,还有成员内部类 //定义的外部类成员变量 int m = 0; void text(){ System.out.println("外部类成员方法"); } //定义内部类 class inter{ //定义内部类变量 int n =1; //定义内部方法,访问外部成员变量,和方法 void show(){ System.out.println("外部成员变量m="+m); text(); } void show1(){ System.out.println("内部类成员方法"); } } //定义外部类方法,访问内部类变量和方法 void text1(){ inter inter = new inter(); inter.show1(); System.out.println("内部成员变量 n ="+inter.n); }
分开写
外部类
//外部类 public class D1 { //在一个类中除了有成员变量,成员方法,还有成员内部类 //定义的外部类成员变量 int m = 0; void text(){ System.out.println("外部类成员方法"); } //定义外部类方法,访问内部类变量和方法 void text1(){ inter inter = new inter(); inter.show1(); System.out.println("内部成员变量 n ="+inter.n); }
//定义内部类 class inter{ //定义内部类变量 int n =1; //定义内部方法,访问外部成员变量,和方法 void show(){ System.out.println("外部成员变量m="+m); text(); } void show1(){ System.out.println("内部类成员方法"); } }
//测试类 public class test { public static void main(String[] args) { D1 d1 = new D1();//创建外部类对象 D1.inter inter = d1.new inter();//创建内部对象 inter.show1(); d1.text1(); } }
内部类可以访问外部类的所有成员变量,方法
同理外部类可以访问内部类的所有成员变量,方法
也叫方法内部类,定义在一个方法里面
局部内部类可以调用外部方法变量,局部内部类只能自己调用
public class D1 { //在一个类中除了有成员变量,成员方法,还有成员内部类 //定义的外部类成员变量 int m = 0; void text() { System.out.println("外部类成员方法"); } void text1() { //定义局部内部类 class inter { //定义局部内部类变量 int n = 1; //定义局部内部方法,访问外部成员变量,和方法 void show() { System.out.println("外部成员变量m=" + m); text(); } } inter inter = new inter(); System.out.println("局部内部n="+inter.n); inter.show(); } }
public class test { public static void main(String[] args) { D1 d1 = new D1();//创建外部对象 d1.text1(); } }
局部内部n=1 外部成员变量m=0 外部类成员方法
静态内部类
静态内部类只能访问外部的静态成员
匿名内部类
https://www.cnblogs.com/libinhong/p/10990602.html
2021-03-13 16:34:47
原文:https://www.cnblogs.com/z-hou/p/14529382.html