java编程思想(七)总结
来源:互联网 发布:java b2b2c 开源 编辑:程序博客网 时间:2024/04/24 16:42
第八章 接口与内部类
8.1 接口
interface可以看作是完全抽象类,不存在实例,而仅包含方法声明和常量
例:
public interface A{
int C=122333; //默认是static final型,不是接口的一部分,仅被存储在该接口的静态存储区
int test();
}
implements实现多继承,接口与接口通过,隔开
8.2 内部类
所谓内部类简单的理解就是在一个类的内部定义另外一个类,当向上转型时,内部类对于其他人是完全不可见的且不可用
典型的情况是外部类中存在一个方法返回内部类的实例对象
当需要访问内部类时需满足OuterClassName.InnerClassName
1.定义在方法中的内部类:
例:public class Parcel4{
public Destination dest(String s){
class PDestination implements Destination{
....
}
return new PDestination(s);
}
}
PDestination只属于dest(),因此作用域为dest()
2.定义在作用域内的类
例:public Destination dest(String s){
private void internalTracking(boolean b){
if(b){
class TrackingSlip{ //无论如何都会被编译,而在作用域外不可用
....
}
TrackingSlip ts=new TrackingSlip();
}
}
}
3.匿名内部类
例:
public class Parcel4{
public Destination dest(String s){
return new Destination (s){
....
}; //创建了继承于Destination的匿名内部类对象
}
}
public class Parcel4{
public Destination dest(final String dest,final float price){
return new Destination (){
private float cost;
private String label;
{ //相当于构造器,对属性初始化,不能重载
cost=float;
label=dest;
}
....
}; //创建了继承于Destination的匿名内部类对象
}
}
如果定义一个匿名内部类,并希望它使用一个在其外部定义的对象,编译器要求其参数引用是final。
4.链接到外部类
内部类能访问其外部类的全部成员,构建内部类的对象时需要一个指向其外部类的引用this
5.嵌套类
如果不需要内部类对象与其外部类对象之间有联系,可以将内部类声明为static,即为嵌套类
要创建嵌套类对象并不需要外部类对象,不能从嵌套类的对象中访问非静态的外部类对象
嵌套类中可包含static成员
6.引用外部类的对象
例:P p=new P();
P.C c=p.new Contents(); //p为外部类的实例对象,利用p可以得到内部类的实例对象
7.从多层嵌套类中访问外部类的成员
无论被嵌套多少层,其均能透明访问所有嵌入的外部类的成员
8.内部类的继承
例:
public class Inher extends With.Inner{ //With是Inner的外部类,继承内部类
Inher(With w){
w.super();//必须在构造器中使用w.super()操作来指明其关系
}
}
9.内部类可以被覆盖
class Eggs{
protect class York{
public void f(){.....}
}
class BigEggs extends Eggs{
class York extends Eggs.York{
public void f(){xxxxxx};//覆盖方法
}
}
}
10.局部内部类
局部内部类不能有访问说明符,当需要不止一个内部类实例对象时使用局部内部类,否则匿名内部类。
11.内部类标识符
LocalInnerClass$2.class //2标识其匿名内部类
LocalInnerClass$Inner.class //Inner为内部类
- java编程思想(七)总结
- JAVA编程思想_笔记(七)
- JAVA编程思想读书笔记七(隐藏实现)(1)
- java编程思想阅读笔记(七)类型信息
- java编程思想(一)总结
- java编程思想(二)总结
- java编程思想(三)总结
- java编程思想(四)总结
- java编程思想(五)总结
- java编程思想(六)总结
- java编程思想(八)总结
- java编程思想(九)总结
- java编程思想(十)总结
- java编程思想(十一)总结
- java编程思想(十三)总结
- java编程思想读书笔记七:复用类
- java编程思想总结1
- java编程思想总结2
- es6的新特性(一)
- 关于Virtualbox下安装Linux系统
- python学习之 12306的一个小爬虫
- 深入理解javascript(4):__proto__
- STL容器之Vector
- java编程思想(七)总结
- 暴露年龄
- 《Java in Action》-1 第2章 通过行为参数化传递代码
- QT的exe文件移植到其他机器非png图片不显示问题
- linux下日志文件系统
- java网络编程
- Picasso总结
- Classical Sentences from ShanBei Reading
- NSString属性声明中的copy和retain区别