一、成员内部类(非静态)
创建成员内部类对象的语法:
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
注意:
1、成员内部类(非静态)既可以访问外部类的中的成员变量,也可以是私有的成员变量
2、内部类都不会单独编译出一个class文件
成员内部类的定义:在类的成员位置上定义一个类,相当于类的成员属性。
1)成员内部类中既可以访问外部类中的静态属性,也可以外部类中的非静态属性。
2)类方法(成员方法)要想去调用成员内部类中的属性,要先创建对象,通过对象去调用属性。
例子:
public class Person{
static String name="阳哥"; //成员变量1
int age=24; //成员变量2
class IdCard{ //成员内部类
String birthday="9月15日"; //属性
public void innerFaction(){ //行为
System.out.println("姓名:"+name);
System.out.println("年龄"+age)
}
}
IdCard id=new IdCard();
public void say(){ //行为
System.out.println("好热啊");
System.out.println("生日"+id.birthday);
}
public static void main(String[] args){
//IdCard id=new IdCard();//错误,必须通过Person
Person person=new Person():
IdCard idCard=person.new IdCard();
idcard.innerFaction();
}
}
二、静态内部类
定义:在类中定义一个前面加有static关键字的类。
注意事项:静态类可以直接访问外部的静态属性和方法,不能访问外部的非静态属性和方法。
例子:
public class Child{
//属性
static String name="斯巴达";
int age =24;
//静态内部类
static class IdCard{
//属性
String birthday;
public void innerFaction(){
System.out.println("姓名"+name);
// System.out.println("年龄"+age); //不能访问外部的非静态属性和方法
}
}
IdCard idCard=new IdCard(); //创建内部类的对象
//方法
public void say(){
idCard.birthday="2023";
idCard.innerFaction();
}
public static void main(String[] args){
}
}
三、局部内部类
定义:在类的局部(方法里面或者代码块中)定义一个类
局部内部类既可以访问外部类的静态属性和方法,也可以访问外部类的非静态属性和方法
…………………………
………………
…………了解即可
四、匿名内部类
标签:内部,静态,成员,IdCard,第十一,public,属性 From: https://blog.csdn.net/Szy66677/article/details/137022884在类中定义一个没有名称,只有类体的类
一般使用于抽象类/实现类--->接口