java-内部类
2016-05-17 00:00
471 查看
摘要: 我正在学习JAVA SE
一个类A中定义了一个类B,B就叫做内部类。
内部类分类
1 静态 static class B{.....}
可以访问外部类的静态成员和方法 A.method A.filed
可以直接在main中new一个静态内部类
2成员
class B{....}
怎么new? B b = new A().new B();
成员内部类可以访问外部类的静态和非静态成员,方法
如果外部类和内部类有重名变量A.this.filed 调用外部变量
静态内部类访问外部类静态成员不需要this指针
3局部
定义在方法中或者
局部内部类不能使用修饰符修饰
局部内部类只能访问final变量{
public void test(String s){//改成 final String s不报错 或者在方法内部把s转为final
class Inner{
public void show{
Sysout(s);
}
}
new Inner().show();
}
}
4.匿名内部类
特点:
没用名字和构造方法
首先有一个接口:
public interface MyInterface{
.............;
}
有一个类A,class A{
void test(MyInterface i){
i.xxxxxx;
}
public static void main(String[] args){
A a = new A();
a.test(new MyInterface(){
@Override
..............
});//传入了一个类作为参数,但是这个类没有名字,所以叫做匿名内部类
}
}
一个类A中定义了一个类B,B就叫做内部类。
内部类分类
1 静态 static class B{.....}
可以访问外部类的静态成员和方法 A.method A.filed
可以直接在main中new一个静态内部类
2成员
class B{....}
怎么new? B b = new A().new B();
成员内部类可以访问外部类的静态和非静态成员,方法
如果外部类和内部类有重名变量A.this.filed 调用外部变量
静态内部类访问外部类静态成员不需要this指针
3局部
定义在方法中或者
局部内部类不能使用修饰符修饰
局部内部类只能访问final变量{
public void test(String s){//改成 final String s不报错 或者在方法内部把s转为final
class Inner{
public void show{
Sysout(s);
}
}
new Inner().show();
}
}
4.匿名内部类
特点:
没用名字和构造方法
首先有一个接口:
public interface MyInterface{
.............;
}
有一个类A,class A{
void test(MyInterface i){
i.xxxxxx;
}
public static void main(String[] args){
A a = new A();
a.test(new MyInterface(){
@Override
..............
});//传入了一个类作为参数,但是这个类没有名字,所以叫做匿名内部类
}
}
相关文章推荐
- 对象和类各自的生命周期
- JAVA 异常深入学习
- JAVA如何使用自定义异常
- spring事物管理之传播行为和隔离级别
- java四类八种数据类型
- java子类中方法的重写与重载
- Spring整合Quartz实现定时任务调度
- springboot jpa hibernate 实现动态查询
- springboot jpa hibernate 实现动态查询
- springboot jpa hibernate 实现动态查询
- Java入门之排序算法
- 等待多个并发事件完成的模型
- Java List集合知多少?
- java.io.File的路径获取方式分析
- Add Two Numbers
- JAVA——OutputStream类和InputStream类
- Java多线程与并发(六)之线程池
- Java实现一个简单的租车系统
- Java实现蛇形举证_2
- 删除文件夹和复制文件夹 java