内部类:
概念:在类中继续定义一个类,那么将在类中再定义的这个类称为内部类。、
分类:(根据位置的不同,分为)静态内部类,成员内部类,局部内部类,匿名内部类。
1.静态内部类。
1) 使用static 修饰的,声明在类体中。
<span style="font-size:18px;">public class A{
static class B{ //静态内部类, 用static 修饰, 声明在类A中
}
}</span>
2) 静态内部类中可以访问外部类的静态成员 <span style="font-size:18px;">public class A{//外部类
int a=1; //成员变量
static int b=2; // 静态属性
static class B{ //静态内部类
int add(){ //静态内部类中的方法 add
return b+1; //静态内部类中可以访问外部类的静态成员
}
}
}</span>
3) 静态内部类的作用域:
类似于静态变量,类加载以后就存在,是类级别的。
在静态内部类中,可以直接(在方法中)调用外部类的静态方法,不需要用类去调用。 但是,在静态内部类中不可以直接调用外部类的非静态方法, 要调用外部类的动态方法,必须使用(外部类的)对象调用。
public class A{
int a=1;
static int b=2; //静态属性
static void ss(){ //外部类的静态方法
System.out.println("这是外部类的静态方法");
}
void ssf(){
System.out.printlln("这是外部类的动态方法");
}
static class B{
int a=1;
static int =2;
void kkk(){
ss();//可以在方法中直接调用外部类的静态方法
new A().ssf(); //用对象调用外部类的动态方法
}
}
}
2.成员内部类。
1.声明在类体中,不用static修饰的, 具有类的成员特征。
public class A{
int a=1;
static b=2;
class B{
}
}
2.