所谓 javabean, 就是 java 下的组件 , 可以重复利用,遵循一定地规范,除了自身能完成一定地功能外还可以和其他地组件组合完成整个应用程序地功能 .
17:02:39
这样说太抽象了
我就以电视机和遥控器来说明 .
17:02:51
我画一张图给大家看一下
17:03:48
17:04:18
这张图下面还要用
17:04:44
17:04:44
电视机和遥控器都是独立地组件
叶枫 17:05:03
我们可以认为都是独立地 javabean
17:05:28
一下说道组件大家认为都是 javabean
17:05:59
他们分开都有自己地功能
17:06:17
合在一块就可以完成我们要遥控电视地目的
17:06:39
这就是我上面说得组件有
独立地功能并且具备和其他组件合作完成一个完整地功能
17:07:02
就是可以控制另外一些组件来达到完成的功能?
17:16:39
恩 , 比较形象 . 不错 !!!
17:07:22
那么,一个 javabean 究竟应该具备哪些特征才是 javabean?
17:07:39
1. 接口
17:08:09
17:07:02
就是可以控制另外一些组件来达到完成的功能?
----------
后面我会讲
17:08:23
要完成一定的功能并且和其他组件协作
17:09:01
组件必须开放一些能够让其他组件或组件服务器 ( 最简单的 JVM) 使用的接口
17:09:32
其他组件通过调用这个接口可以完成一定的功能 .
17:09:50
同时也应该允许其他组件能够修改组件内部的一些属性
17:09:59
比如: -
17:10:30
我画的遥控器 , 遥控器就有许多按钮,我们要遥控电视只要按按钮就可以了,这个按钮就是接口
17:11:02
2. 事件
17:09:50
同时也应该允许其他组件能够修改组件内部的一些属性
——————————————————————
这么说 javabean 都应该是 public 类型的
17:11:12
是的
17:11:34
这是组件一个最主要的特征
17:11:56
注意:这是组件一个最主要的特征 ,
不是必须具备的哦
17:12:22
大家有 windows 下编程经验的都知道
17:12:42
windows 编程是事件驱动方式的或者说是消息驱动的
17:13:00
对于 javabean 来讲也是一样
17:13:23
javabean 的事件是指 javabean 不仅能接收事件
17:13:38
处理事件
17:13:49
还能触发事件
17:14:06
触发事件可以是 :-
17:14:21
1. 自身内部的事件
17:14:34
2. 其他 javabean 的事件
17:14:48
比如: -
17:15:07
我们要换电视频道
17:15:23
只要按下遥控器的频道按钮
17:15:35
当手指按下按钮
17:16:02
就触发了遥控器的按钮事件 ( 接收事件 )
17:16:19
遥控器接收这个事件
17:17:14
开始通知遥控器内部电路要换频道 ( 触发内部事件 ), 发出红外线 ( 处理事件 )
17:17:20
处理事件也写在 bean 里面吗??
17:17:31
是的
17:18:26
发出红外线给电视触发电视更改频道 ( 触发其他 javabean ,即电视更改频道 )
17:19:29
这就是一个完整的 javabean 事件 , 深入的 javabean 事件模型我后面讲
17:19:38
这是难点
17:19:54
是的
特征 3. 状态持久
17:20:24
所谓的持久是指 javabean 能保持本身的状态
17:20:59
通俗地说:-就是属性值等
17:21:19
当我们变换了频道
17:21:27
关掉电视
17:21:37
下次直接开机
17:21:50
电视还是保留上次的频道,
17:22:05
还有色彩啊什么的 , 这就是状态保持
17:22:21
通过遥控器开机也是一样
17:22:36
那他的属性放在那里保存呢??
17:22:46
呵呵,别着急
17:23:18
4. 可视化编程
17:23:40
可视化编程并不是说
17:24:09
javabean 运行后要有个图形界面什么的 , 或者我们能够看到的一个什么东西
17:24:37
就像桥刚才说的可视化 javabean.
17:24:48
是指 :-
17:25:08
我们可以通过可视化的工具编写 javabean
17:25:54
比如我们可以用 eclipse,notrpad 等写 javabean.
17:26:07
以前 dos 底下就有一个命令就是无法可视化编辑文本文件
17:26:30
比如自己写一个特定功能的 JButton
这是可视化 javabean 么
17:27:05
是的 . 注意我说的 :- 可视化编程
17:27:18
不是可视化 jababean
17:27:30
呵呵
17:27:44
说了这么多,简单的说, javabean=property+method+event 组成的
17:28:32
这里面,大家注意到我前面说的 event 是主要特征,不是必须的特征
17:28:53
至于大家要深入学习的话
17:29:08
就要注意学习事件
17:29:14
和状态持久
17:29:29
事件我简单地说一下事件模型
17:29:57
即如何创建事件,传递(触发)事件
17:30:15
事件模型:
17:30:30
一个事件模型是由三部分组成的
17:30:45
制造事件的组件
17:30:52
也就是事件源
17:31:15
还有事件本身 (EventObject),
17:31:30
另一个就是监听器 (EventListener)
17:31:45
我画个图
17:32:45
可以看到么 ?
17:32:52
17:33:07
source 就是事件源
天琦 (19385413) 17:42:43
OK
17:33:31
这个图是这个意思 :
17:33:49
每个组件都有事件监听器
空天☆色蓝 (21155728) 17:34:06
source 是摇控器还是电视机
17:34:15
可以是有多个事件监听器
17:34:38
不要即
17:35:07
每个都监听指定的事件
17:35:48
当事件源需要触发一个事件时就把事件对象发送到指定组件的指定监听器
17:36:28
当其他的组件接受到这个事件和事件对象后就可以作相应的工作了
17:36:47
看图上的 " 注册 "
17:37:52
这说明 , 一个监听器要工作的话 , 必须在指定的组件上注册才可以监听事件
17:38:25
以遥控器为例 :-
17:38:49
我按下按钮
17:39:11
我是事件源 , 事件是我创建的
17:39:32
我的事件就是 " 按指定的按钮 "
17:40:01
按钮上有监听器
17:40:21
它接受我按钮这个动作或者说事件
17:40:36
之后
17:41:15
按钮要把我的消息处理后 , 要告诉内部电路发红外线
17:41:30
这时按钮是事件源
17:42:02
事件我们简单地认为也是我们刚才发给按钮的事件
17:42:35
这是遥控器内部
17:42:42
对于遥控器和电视
17:42:56
那么遥控器就是事件源
17:43:16
它把更改频道这个事件发给电视
17:43:49
电视有个开外接口起着监听器的作用来接受这个事件
17:43:59
电视有个红外接口起着监听器的作用来接受这个事件
17:44:15
这酒是一个完整的事件模型
17:44:52
关于状态持久就留给大家 :- 但我提示大家如何学习
17:45:04
要注意的是
17:45:13
javabean 要实现持久
17:45:36
1. javabean 本身需要什么条件 ( 比如实现什么接口啊什么的 )
17:45:54
2. 持久是持久那些内容
17:46:19
3. 什么样的数据或数据类型可以持久或不可以持久 , 不可以持久的怎么处理
17:46:48
4. 如何持久 ( 就是刚才谁问的保存的问题了 )
17:46:59
5. 持久后下次如何恢复
17:47:13
6. 既然 javabean 是可以持久化的
17:47:24
多个 javabean 组成一个应用程序
17:47:30
那么这个应用程序是否也可以持久化 ?
桔子树 (517725099) 17:47:39
数据库用来实现持久?
17:47:42
如果可以 , 对 javabean 有什么要求 ?
17:47:50
应该通过那种方式实现 ?
17:48:05
还有属性的问题
17:48:16
javabean 可以有什么样的属性 ?
17:48:31
各种属性如何操作 ? 各用在什么用途?
17:48:43
都有那些局限性 ? 有没有替代方案 ?
空天☆色蓝 (21155728) 17:49:27
看来要保持持久还要考虑到多方面
17:50:50
今天我就说道这里 , 有兴趣的可以根据我的问题去找答案 , 不要跟别人要 , 别人给你的始终是别人的 . 你自己的摸索过程就是你深入理解的过程 , 所以我建议大家养成这个习惯
17:51:01
当然了
天琦 (19385413) 18:00:47
THX SO MUCH, 不但把 javaben 说了一通 , 而且把 JAVA 处理事件的整个流程很明朗!
17:51:20
今天所所说的仅仅局限于 javabean
等大家学习了其他相关技术 . 到时我会提一些交叉的问题 ,
这些如果大家都融会贯通了 , 就不是普通的程序员了
——————————————————————————————————
——————————————————————————————————
以上内容來自我們每天都進步的群的讨论。
以上内容來自我們每天都進步的群的讨论。