`

《Java核心技术(第八版)》笔记之第6章接口与内部类

阅读更多

一、接口

1.接口主要用来描述类具有什么功能,而并不给出每个功能的具体实现. (P204)

 

2.接口中的方法自动属于public,因为声明时可以不使用关键字public. 但是在实现接口时,必 须把方法声明为public,否则,编译器将视为类的默认访问属性(包可见性)(P205)

 

3.接口可以定义常量[color=red][b](自动设置为public static final)[/b][/color],但是绝不能含有实例域,也不能实现方法。-----可以将接口视为没有实例域的抽象类。

 

4.类与子类不符合“反对称”的规则时(如调用equals等方法),有两种解决方法:

(1).进行类的检查,如果类不一样,直接抛异常.

例6-1 [code="java"]if(getClass()!=other.getClass()) throw new ClassCastException();[/code]

(2).如果存在通用的算法,对不同的子类都适合,则在超类中提供该方法,并声明为final.

 

5.标记接口

例如,Cloneable就是标记接口(tagging interface,或者marker interface)。标记接口没有方法,因为其目的不是为了实现某个方法,惟一的目的是可以用instanceof进行类型检查。

 

二、内部类

1.只有内部类可以是私有类,常规类只可以具有包可见性,或公有可见性。

 

2.内部类可以访问外围的私有数据;

 

3. 局部内部类:

(1). 定义在方法中的内部类。对外完全隐藏,方法之外的外围类也不知道。

(2). 只可以引用定义为final的局部变量 。

 

4. final变量可用于局部变量、实例变量和静态变量。意义都是:在创建这个变量后,只能够赋值一次。不过,在定义final变量的时候,不必进行初始化。 (P228)

可以将声明一个长度为1的数据变量,这样,它不能引用另一个数组,但是数据中的数据可以变。

 

5. 匿名内部类

(1)只需创建一个对象;

(2)类比较短;

(3)没有构造器。

 

6.静态内部类 (P231)

(1). 不需要访问外围类;

(2). 只有内部类可以是static

(3). 声明在接口中的内部类自动成为static和public。

 

三、代理

1.代理可以在运行时创建一个实现了一组给定接口的新类。

2.无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数。调用处理器必须给出处理调用的方法。

Object invoke(Object proxy, Method method, Object[] args)

 

 

分享到:
评论

相关推荐

    2018最新JAVA架构师培训视频教程(附笔记、源码 、视频 网盘链接 详细)

    018最新JAVA架构师培训视频教程(附笔记、源码、视频教程 全网盘链接) 内含完整资料及代码: 一、互联网并发编程 二、互联网网络通信编程 三、JAVA虚拟机 四、Linux部分 五、数据库设计与优化 六、互联网...

    整理后java开发全套达内学习笔记(含练习)

    nested [java] 嵌套的 ['nestid] '如:内部类(nested classes) Object [java] 对象 ['ɒbdʒekt] Overload [java] 方法的重载(不同参数列表的同名方法) [,әuvә'lәud] Override [java] 方法的覆盖(覆盖父类的...

    完整学习笔记:《剑指offer》Java版代码实现

    第六题 由前序和中序重建重建二叉树 测试6 第七题 使用两个栈实现队列 测试7 第八题 寻求旋转带宽的最小数字 测试8 第九题 斐波那契数列的第n项(青蛙跳台阶) 测试9 第十题 二进制中1的个数 测试10 第十一题 数值的...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...

    IBM WebSphere Portal门户开发笔记01

    6、JS设置与查看网页的解析模式(值) 249 7、JS判断对象是否已经存在 249 8、CSS设置网页在IE下为灰色显示 250 9、HTML A链接CSS样式 251 10、CSS强制换行样式 251 11、CSS强制同行超出部分隐藏样式 253 12、CSS...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    springmybatis

    mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in ...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 淘淘商城第六天笔记.doc │ ├─07.第七天 │ 01.第六天内容复习.avi │ 02.课程计划.avi │ 03.redis单机版安装.avi │ 04.redis集群安装.avi │ 05.jedis客户端.avi │ 06.jedis客户端在spring中的配置.avi │...

    APKTool批处理版l

    这里一共找到了6个,很明显前面的几个开头字符都是小写,不符合我们的要求,那么必然就是最后一个了,双击最后一行直接定位,修改为“关于软件”,然后保存…… 注意: 1.进行这部分修改的时候,不要在修改内容里面...

Global site tag (gtag.js) - Google Analytics