Java--内部类
2016-05-26 10:39
323 查看
本文的部分知识点源于张老师的《Java就业培训教程》。
内部类是可以访问和引用它的外部类的所有变量和方法,反过来就不成立了。内部类的成员只有在内部类的范围内是可知的,并不能被外部类使用,和外部类不同的是内部类可以声明为private和protected;
1.为什么要定义内部类?什么情况下需要将一个类定义成内部类?
内部类使得程序代码更为紧凑,程序更具模块化。
当一个类中的程序代码要用到另外一个类的实例对象,而在另一个类的程序代码中又要访问第一个类中的成员,这样将另外一个类做成第一个类的内部类,程序代码就容易多了。
2.内部类如何被外部类引用?
内部类可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可;
如Ourter外部类,Inner内部类其中含有方法doStuff(),通过:
Outer outer = new Outer();
Outter.Inner inner = outer.new Inner();
inner.doStuff();
3.内部类还可以定义在方法中,甚至是for循环体内部;
4.匿名内部类:
内部类可以声明为抽象类或者接口,它可以被另外一个内部类来继承或者实现。内部类可以继承外部类亦可以用final关键字修饰。
eg:需要产生一个类A的匿名子类的实例对象,并传递给callInner方法。写完效果如下:
new Outer().callInner(new A(){
})
在那对大括号中间,增加匿名子类的所有实现代码;
内部类是可以访问和引用它的外部类的所有变量和方法,反过来就不成立了。内部类的成员只有在内部类的范围内是可知的,并不能被外部类使用,和外部类不同的是内部类可以声明为private和protected;
1.为什么要定义内部类?什么情况下需要将一个类定义成内部类?
内部类使得程序代码更为紧凑,程序更具模块化。
当一个类中的程序代码要用到另外一个类的实例对象,而在另一个类的程序代码中又要访问第一个类中的成员,这样将另外一个类做成第一个类的内部类,程序代码就容易多了。
2.内部类如何被外部类引用?
内部类可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可;
如Ourter外部类,Inner内部类其中含有方法doStuff(),通过:
Outer outer = new Outer();
Outter.Inner inner = outer.new Inner();
inner.doStuff();
3.内部类还可以定义在方法中,甚至是for循环体内部;
4.匿名内部类:
内部类可以声明为抽象类或者接口,它可以被另外一个内部类来继承或者实现。内部类可以继承外部类亦可以用final关键字修饰。
eg:需要产生一个类A的匿名子类的实例对象,并传递给callInner方法。写完效果如下:
new Outer().callInner(new A(){
})
在那对大括号中间,增加匿名子类的所有实现代码;
相关文章推荐
- Java-线程池
- 完美解决java.lang.IllegalArgumentException: pointerIndex out of range
- RxJava操作符repeatWhen()和retryWhen()
- spring+resteasy(JSF)搭建接口
- 关于Spring的xsd文件版本号的问题
- Spring MVC Ajax请求加载更多
- Java基本类型数组转ArrayList
- Java将时间戳转换成指定格式日期
- Java 里面 final 与 static
- Java数组声明、创建、初始化
- Java核心中的核心-多态
- Java Socket应用 通信技术
- Java类型注解
- spring + mybatis + mysql(主从) 配置多个resource(读写分离)
- java并发编程实践(1)intro
- java类静态属性测试
- java 之 字符串
- eclipse 中.classpath和.project和.settings的作用
- Eclipse中添加Android系统jar包
- java was started but returned exit code=13