摘要: 2012-05-04163-170/913Java编程思想第四版——第二十一天7.3 代理Java没有提供对代理的直接支持,这是继承与组合之间的中庸之道。讲一个成员对象置于所要构造的类中(就像组合),但与此同时在新类中暴露了该成员对象的所有方法(就像继承)。7.4 结合使用组合和继承同时使用组合和继承是很常见的事。虽然编译器强制初始化基类,并且要求在构造器起始处就要这么做,但是它并不监督必须将成员对象也初始化,这一点需要自己时刻注意。7.4.1 确保正确清理注意对基类清理方法和成员对象清理方法的调用顺序,以防某个子对象依赖于另一个子对象情形的发生。一般而言,所采用的形式应该与C++编译器在其析 阅读全文
posted @ 2012-05-04 12:58 凌紫冥 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 2012-05-03158-163/913Java编程思想第四版——第二十天第7章 复用类复用代码是java众多引人注目的功能之一。Java中所有事物,问题解决都是围绕着类展开的。可以通过创建新类来服用代码,而不必再重头开始编写,可以使用别人业已开发并调试好的类。此方法的窍门在于使用类而不破坏现有程序代码。两种达到此目的的方法:第一种:只需在新的类中产生现有类的对象,称为组合。复用了现有程序代码的功能,而非它的形式。第二种:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新代码,称为继承。编译器可以完成其中大部分工作。继承是面向对象程序设计的基石之一。组合和继承, 阅读全文
posted @ 2012-05-03 13:46 凌紫冥 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 2012-05-02149-158/913Java编程思想第四版——第十九天1.1 java访问权限修饰词public、protected和private这几个java访问权限修饰词在使用时,是置于类中每个成员的定义之前的——无论它是一个域还是一个方法。每个访问权限修饰词仅控制它所修饰的特定定义的访问权。如果不提供任何访问权限修饰词,则意味着它是“包访问权限”。因此,无论如何,所有事物都具有某种形式的访问控制权限。6.2.1 包访问权限一个编译单元(即一个文件),只能隶属于一个包,所以经由包访问权限,处于同一个编译单元中的所有类彼此之间都是自动可访问的。取得对某成员的访问权的唯一途径是:使该成 阅读全文
posted @ 2012-05-02 11:09 凌紫冥 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 2012-04-27142-149/913Java编程思想第四版——第十八天第6章 访问权限控制访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。重构即重写代码,以使得它更可读、更易理解,并因此而更具可维护性。面向对象设计中需要考虑的一个基本问题:如何把变动的事物与保持不变的事物区分开来。访问权限从最大到最小:public、protected、包访问权限(没有关键词)、private。C语言访问事物不受任何限制。访问权限因类是存在于一个相同的包,还是存在于一个单独的包而受到影响。理解访问权限修饰词的全部含义,要学习如何将类库构件置于包中。1.1 包:库单元包内包含有一组类,它们在单一的名 阅读全文
posted @ 2012-04-27 13:13 凌紫冥 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 传智播客Android视频教程——第九天2012-04-2619. 采用ListView实现数据列表显示ListView很多应用都用到了,需要熟悉。例如android系统的设置界面就是用的ListView显示的。SimpleAdapter适配器绑定要适配的数据。SimpleCursorAdapter也可以,但是使用时必须包含一个_id的字段:数据库中主键id名字改成_id,还可以通过SQL中加别名的方法来避免这个错误。自定义适配器,继承android.widget.BaseAdapter抽象类。为ListView的条目加监听事件:ListView.setOnItemClickListener( 阅读全文
posted @ 2012-04-26 19:29 凌紫冥 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 2012-04-25138-142/913Java编程思想第四版——第十七天5.9 枚举类型Java SE5添加了一个小特性,enum关键字,它使得在需要群组并使用枚举类型集时,可以很方便的处理。例子, 一个Spiciness的枚举类型:public enum Spiciness{ NOT, MILD, MEDIUM, HOT, FLAMING}枚举的实例是常量,都用大写字母表示。(多个单词,用下划线隔开)使用enum,需要创建一个该类型的引用,并将其赋值给某个实例:public class SimpleEnumUse{ public static void main(String[] arg 阅读全文
posted @ 2012-04-25 11:19 凌紫冥 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 传智播客Android视频教程——第八天2012-04-2417. 创建数据库与完成数据添删改查SQLite:android平台,集成了SQLite——嵌入式关系型数据库。支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型。虽然只支持这五种,但是实际上也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转换成对应的五种数据类型。SQLite最大的特点:可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。有一种例外:定义为INTEGER PRIMARY KEY的字段只能 阅读全文
posted @ 2012-04-24 19:37 凌紫冥 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 2012-04-24131-138/913Java编程思想第四版——第十六天5.8 数组初始化数组只是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。数组是通过方括号下标操作符【】来定义和使用的。定义一个数组,只需在类型名后加上一对空方括号即可:int[] a1;。方括号也可以置于标识符后面:int a1[];。两种格式含义一样,后一种格式符合C和C++程序员的习惯。前一种格式或许更合理,表明类型是一个int型数组。编译器不允许指定数组的大小。所有数组(无论它们的元素是对象还是基本类型)都有一个固有成员,可以通过它获知数组内包含了多少个元素,但不能对其修改。这个成员就是 阅读全文
posted @ 2012-04-24 13:51 凌紫冥 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 2012-04-23121-131/913Java编程思想第四版——第十五天5.5.3 终结条件通常不能指望finalize(),必须创建其他的“清理”方法,并明确的调用它们。finalize()另一个用法,不依赖于每次都要对finalize()进行调用,这就是对象终结条件的验证。5.5.4 垃圾回收器如何工作垃圾回收器提高对象的创建速度有明显的效果。Java从堆分配空间的速度,可以和其他语言从堆栈上分配空间的速度相媲美。C++的堆——院子,每个对象负责管理自己的地盘,对象被销毁,地盘被重用。Java虚拟机,堆的实现,像一个传送带,每分配一个新对象,就往前移动一格。这意味着对象存储空间的分配速 阅读全文
posted @ 2012-04-23 17:16 凌紫冥 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 2012-04-19118-121/913Java编程思想第四版——第十四天5.4.1 在构造器中调用构造器为一个类写了多个构造器,有时想在一个构造器中调用另一个构造器,以避免重复代码,可用this关键字做到这一点。通常写this的时候,都是指这个对象或者当前对象,而且它本身表示对当前对象的引用。在构造器中,如果为this添加了参数列表,就有了不同的含义,这将产生对符合此参数列表的某个构造器的明确调用,这样,调用其他构造器就有了直接的途径。可以用this调用一个构造器,但不能调用两个。且必须将构造器调用置于最起始处,否则编译器会保错。this.s = s,this.s代表数据成员,s代表参数s 阅读全文
posted @ 2012-04-19 11:28 凌紫冥 阅读(176) 评论(0) 推荐(0) 编辑