hejing0126

IT博客 首页 新随笔 联系 聚合 管理
  0 Posts :: 5 Stories :: 0 Comments :: 0 Trackbacks

6 重复运用class

Final

1.         final data

l         永远不变,编译期常量(compile-time constant)

l         可以在执行期(run-time)初始化,然后不再改变

Blank finals 保证每个对象的final属性有所不同,但依旧保持不变。

(注:使用前必须初始化)

2.         final arguments

l         无法在函数中将该引数(一个reference)改指他处      

3.         final methods

l         锁住这个函数是子类无法复写(overriding

l         提高效率采用行内(inline)调用

final private所有private函数自然是final,因此不能覆写。但是子类可以出现同名

同参函数,与父类的该同名同参private函数无关。

例:(T213 FinalOverridingIllusion)

4.         final classes

l         禁止继承(inheritance)


7 多态

Abstract

State Design Pattern

l         获得执行期的动态弹性

l         设计准则:继承表达行为上的差异,组合表达状态上的差异。

例:T241 Transmogrify

Pure Inheritance VS. Extension

l         is-like-a derived class 像是一个 base class

l         缺点:想上转型后无法调用新增的函数

downcasting run-time type identifyication


8 接口与内隐类

Interface(接口)

l         属性:

1.         都为public final static(修饰符可以省略),除了这些不能用其他修饰

2.         必须显性用=赋值

l         方法:

1.         都为public abstract (修饰符可以省略), 除了这些不能用其他修饰

2.         实现接口的类里与接口同名的函数必须为public

l         类可以implements实现多个接口

l         接口用extends继承接口,并且可以一次继承多个接口

 

嵌套的(nesting)interfaces

例:T257NestingInterfaces

Inner class(内隐类)

l         定义:将某个class置与另一个class之中

l         位于class里的inner class

1.         外界class引用inner class的方式:OuterClassName.InnerClassName指定该对象的型别

2.         Inner class & upcasting

注:对于外界来说”private inner class”是不可见的,但是它实现了接口,所以可以通

过接口类型做向上转型,调用接口里所定义的函数(其他扩展函数无权访问)

l         位于methodsscopes之内的inner class

1.         范围之外不可以访问该类

l         Anonymous(匿名) inner class

1.         语法:return new BasecCassName(arguments){body;};

2.         实质:产生了一个继承BaseClassDerivedClass(为匿名类), 后又upcasting返回

BaseClass

3.         带引数:return new BasecCassName(arguments){body;};

4.         无构造函数

5.         问题:anonymous inner class 要调用外面的对象,该对象必须用final修饰

6.         问题:对于这个匿名内隐类的BaseClass的访问控制权限是什么?(public package

l         inner class中不能定义static

l         inner class里面不能定义没有final修饰子修饰的static变量


第九章 持有你的对象

Arrays(数组)

l         Array简单的线性序列,元素可以被快速的访问,效率高,但是不可以改变容量

l         Array持有特定的型别,防止将不正确的型别置入arrays

返回一个array

(T295 IceCream)

Arrays class java.util

包含四个static基本函数:equals() fill() sort() binarySearch()

asList()函数:array转换为List容器

array的充填

(T306 FillingArrays)

array的复制

(T307 CopingArrays)

arrays的比较

(T309 ComparingArrays)

arrays元素的比较

(T310 CompTpye)

array的排序

(T312 StringSorting)

在已排序的array中进行查找

(T313 ArraySearching)

 

posted on 2005-07-29 11:17 Edison 阅读(103) 评论(0)  编辑 收藏 引用 所属分类: Note
只有注册用户登录后才能发表评论。