1.内部类
根据位置的不同,java中的内部类分为4种:
1-1:静态内部类:
.使用static修饰,声明在类体中,静态内部类中可以访问外部类的静态成员
class Foo{
Static class Koo{}
}
1-2: 成员内部类
. 声明在类体中,不使用static,具有类的成员特性,必须有类的实例才能创建内部类的实例
class Goo{
int a = 3;
class Foo{
int add(){
return a;
}
}
}
Goo goo = new Goo();
Foo foo = goo.new Foo();//必须使用goo实例创建Moo实例
1-3:局部内部类 把类声明在方法中,就是局部内部类
public static void main(string[] args){
final int a = 2;
class Foo{
int b = 1;
public int add(){
return a+b;//可以访问局部变量,但局部变量必须是用final的修饰的
}
}
}
1-4:匿名内部类
.内名类,非常常见,可以写在任何地方,就像一般的语句
.语法:Foo d = new Foo(){};
//匿名内部类new Foo(){}是对Foo的继承,并同时实例化
// 也可以说,new Foo(){} 是Foo子类的实例,是一个对象
根据位置的不同,java中的内部类分为4种:
1-1:静态内部类:
.使用static修饰,声明在类体中,静态内部类中可以访问外部类的静态成员
class Foo{
Static class Koo{}
}
1-2: 成员内部类
. 声明在类体中,不使用static,具有类的成员特性,必须有类的实例才能创建内部类的实例
class Goo{
int a = 3;
class Foo{
int add(){
return a;
}
}
}
Goo goo = new Goo();
Foo foo = goo.new Foo();//必须使用goo实例创建Moo实例
1-3:局部内部类 把类声明在方法中,就是局部内部类
public static void main(string[] args){
final int a = 2;
class Foo{
int b = 1;
public int add(){
return a+b;//可以访问局部变量,但局部变量必须是用final的修饰的
}
}
}
1-4:匿名内部类
.内名类,非常常见,可以写在任何地方,就像一般的语句
.语法:Foo d = new Foo(){};
//匿名内部类new Foo(){}是对Foo的继承,并同时实例化
// 也可以说,new Foo(){} 是Foo子类的实例,是一个对象