java核心技术卷2 第八版_Java核心技术卷II(第8版) – 读书笔记 – 第8章

惯例跳过GUI部分,回头有空应该看一下第7章,讲了不少绘图的东西,可能还有点用。

第8章主要是JavaBean。

1、JavaBean的官方定义:一个Bean就是一个可重用的软件构建,并且能够在开发工具中可视化地操作(如NetBeans)。我凹凸了,原来JavaBean的初衷是为了方便GUI的可视化编程开发。。

2、其实也很好理解,就是希望一个JavaBean可以像VB那样具有不同的属性,可以直接在IDE上点点就可以完成对它的配置,而不需要swing那样整屏整屏的刷代码。

3、对于JavaBean来说,并没有一个通用的“父类”可以拿来继承。开发工具不会根据某个类的父类来“了解”JavaBean,而是根据精巧的命名,因此,JavaBean的命名必须支持某种规范。

4、模式比较简单:

public type getPropertyName();

public void setPropertyName(Type newValue);

如上所述,PropertyName是一个整体,用陀峰命名法(如果含2个或更多单词)。

而对于type是boolean类型的,是一个特例,他们采用如下的命名规则:

public boolean isPropertyName();

public void setPropertyName(boolean b);

5、上面说过了PropertyName要用驼峰标示法玛,例如filename,应该写为setFileName()。如果开头两个字母都是大写,如URL,那么就setURL吧,不要写setUrl。

6、由于上述规则具有一定技巧性,请一定注意不要和父类、接口继承的函数重名,否则可能会带来其他难以发现的Bug。

7、为了方便GUI(awt事件),还将检查结尾为Event的,IDE将认为此处可以拓展添加事件。

8、JavaBean的数据还可以返回数组(供索引下标):

// 直接返回、设置数组

Type[] getPropertyName();

void setPropertyName(Type [] newValue);

// 返回某一个

Type getPropertyName(int i);

void setPropertyName(int i, Type newValue);

但注意:上述方法不能扩充数组!即i必须小于内部属性的length。

9、还可以对JavaBean设置属性变化的通知事件。

10、跳过大段和GUI相关的……

11、JavaBean的持久化是指:用JavaBean的属性保存Bean内状态。在之后某个时刻,或者在另一个虚拟机中再将他们读取出来。

12、XMLEncoder可以完成将对象->流->XML文件的转化:

(java.beans.XMLDecoder / java.beans.XMLEncoder)

// 序列化

XMLEncoder out = new XMLEncoder(new FileOutputSteram(...));

out.writeObject(xxbean);

out.close();

// 反序列化

XMLDecoder in = new XMLDecoder(new FileInputStream(...));

XXXBean bean = in.readObject();

in.close();

13、上述XMLDecoder/XMLEncoder内置支持了如下数据类型:

null、所有基本数据类型及包装类、枚举、String、数组、集合、映射、AWT的很多类。

14、如果要实现自己的输出、解析包装,可以继承java.beans.PersistenceDelegate,需要覆盖如下函数:

protected abstract Expression instantiate(Object oldInstance, Encoder out)

15、JavaBean适于存储的是:

长期存储、小且快、易于生成、易于人工编辑、是标准Java的一部分。

本章GUI涉及过多。。跳过了很多。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值