文档章节

JavaBeans程序开发

疯狂的小黑
 疯狂的小黑
发布于 2016/10/27 13:44
字数 906
阅读 9
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

JavaBeans程序开发

www.itxdl.cn

JavaBeans的属性   JavaBeans的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。在JavaBeans设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性。

 

  1. Simple属性

 

  一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量。属性名与和该属性相关的get/set方法名对应。例如:如果有setX和getX方法,则暗指有一个名为"X"的属性。如果有一个方法名为isX,则通常暗指"X"是一个布尔属性(即X的值为true或false)。例如在下面这个程序中:

 

  public class alden1 extends Canvas {

  string ourString= "Hello"; //属性名为ourString,类型为字符串

  public alden1(){     //alden1()是alden1的构造函数,

  与C++中构造函数的意义相同

  setBackground(Color.red);

  setForeground(Color.blue);

  }

  /* "set"属性*/

  public void setString(String newString) {

  ourString=newString;

  }

  /* "get"属性 */

  public String getString() {

  return ourString;

  }

  }

 

   2. Indexed属性

 

  一个Indexed属性表示一个数组值。使用与该属性对应的set/get方法可取得数组中的数值。该属性也可一次设置或取得整个数组的值。例:

 

  public class alden2 extends Canvas {

  int[] dataSet={1,2,3,4,5,6}; // dataSet是一个indexed属性

  public alden2() {

  setBackground(Color.red);

  setForeground(Color.blue);

  }

  /* 设置整个数组 */

  public void setDataSet(int[] x){

  dataSet=x;

  }

  /* 设置数组中的单个元素值 */

  public void setDataSet(int index, int x){

  dataSet[index]=x;

  }

  /* 取得整个数组值 */

  public int[] getDataSet(){

  return dataSet;

  }

  /* 取得数组中的指定元素值 */

  public int getDataSet(int x){

  return dataSet[x];

  }

  }

 

  3. Bound属性

 

  一个Bound属性是指当该种属性的值发生变化时,要通知其它的对象。每次属性值改变时,这种属性就点火一个PropertyChange事件(在Java程序中,事件也是一个对象)。事件中封装了属性名、属性的原值、属性变化后的新值。这种事件是传递到其它的Beans,至于接收事件的Beans应做什么动作由其自己定义。当PushButton的background属性与Dialog的background属性bind时,若PushButton的background属性发生变化时,Dialog的background属性也发生同样的变化。 例:

 

  public class alden3 extends Canvas{

  String ourString= "Hello";

  //ourString是一个bound属性

  private PropertyChangeSupport changes = new PropertyChangeSupport(this);

  /** 注:Java是纯面向对象的语言,

  如果要使用某种方法则必须指明是要使用哪个对象的方法,

  在下面的程序中要进行点火事件的操作,

  这种操作所使用的方法是在PropertyChangeSupport类中的。

  所以上面声明并实例化了一个changes对象,

  在下面将使用changes的firePropertyChange方法来点火ourString的属性改变事件。*/

 

  public void setString(string newString){

  String oldString = ourString;

  ourString = newString;

  /* ourString的属性值已发生变化,于是接着点火属性改变事件 */

  changes.firePropertyChange("ourString",oldString,newString);

  }

  public String getString(){

  return ourString;

  }

  /** 以下代码是为开发工具所使用的。

  我们不能预知alden3将与哪些其它的Beans组合成为一个应用,

  无法预知若alden3的ourString属性发生变化时有哪些其它的组件与此变化有关,

  因而alden3这个Beans要预留出一些接口给开发工具,

  开发工具使用这些接口,

  把其它的JavaBeans对象与alden3挂接。*/

 

  public void addPropertyChangeListener(PropertyChangeLisener l){

  changes.addPropertyChangeListener(l);

  }

  public void removePropertyChangeListener(PropertyChangeListener l){

  changes.removePropertyChangeListener(l);

  }

 

  通过上面的代码,开发工具调用changes的addPropertyChangeListener方法,把其它JavaBeans注册入ourString属

© 著作权归作者所有

疯狂的小黑
粉丝 3
博文 96
码字总数 80472
作品 0
东城
程序员
私信 提问
《Spring In Action》第三版中文版 Chapter 1 Piece 1

版权与免责声明:本博客文章翻译自《Spring in action》第三版,原书版权归原作者及其出版单位所有,本人仅出于个人兴趣,翻译其中内容。本人不以盈利为目的,放置在博客中仅为了方便网友阅读...

小宏的爹
2012/01/12
2.5K
0
开发出一个高质量的J2EE系统解析

首先说下, 这篇文章我觉得很强大,很给力,概念性的东西蛮多的,所以需要慢慢的去读,可以加深你对j2ee的理解和应用。值得大家阅读。 J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各...

dengzhangtao
2010/12/06
289
0
Web Beans 的第一个Beta版发布

Web Beans为Java EE环境定义了一套服务,使Java EE的Web应用程序开发更容易。Web Beans层在现有的Java组件上增强了生命周期和互动模式,如JavaBeans和Enterprise Java Beans。 该测试版本增加...

红薯
2009/03/10
118
0
JComponentPack3.0正式发布

奇新Java控件---Java控件提供商和Java RIA, Web, J2ME解决方案开发商 我们为您提供了一系列方便易用的Java控件,帮助开发人员提高工作效率,加快开发进程。 最新动态: JComponentPack3.0正式...

fralepg
2009/04/11
263
0
使用IntrospectorCleanupListener 解决quartz引起的内存泄漏

"在服务器运行过程中,Spring不停的运行的计划任务和OpenSessionInViewFilter,使得Tomcat反复加载对象而产生框架并用时可能产生的内存泄漏,则使用IntrospectorCleanupListener作为相应的解...

Zero零_度
2015/05/13
356
0

没有更多内容

加载失败,请刷新页面

加载更多

003-ES集群

ES 集群 详情: https://my.oschina.net/u/3635512/blog/3140294 将实验机器/etc/elasticsearch/elasticsearch.yml 中配置文件改为 cluster.name: myes   #ES集群名称node.name:......

伟大源于勇敢的开始
17分钟前
6
0
法国电力项目二期正式验收

2019年12月10日, 法国电力项目二期正式验收 并就未来的合作技术方向进行了探讨: 去中心化数据存储/搜索引擎 可信计算/零知识证明 能源虚拟机改造 出席的人有: 法国电力总部 CIO&CTO Step...

怎当她临去时秋波那一转
33分钟前
3
0
谷歌助手

参照: https://www.mxblog.com.cn/mac%E7%89%88chrome%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AE%89%E8%A3%85%E8%B0%B7%E6%AD%8C%E8%AE%BF%E9%97%AE%E5%8A%A9%E6%89%8B.html......

T型人才追梦者
42分钟前
5
0
索引延迟关联

前言 今天在看代码的时候学习到了一种索引的优化,就先在此记录下来。 具体 举个例子,原sql如下: SELECT * FROM TABLE WHERE INDEX = '' LIMIT 10000, 10; 现象 就算INDEX用了查询索引,...

无敌小杰杰
今天
5
0
tomcat_jdk安装,安装zrlog,nginx代理tomcat,第二个java应用

tomcat_jdk安装 要跑tomcat 首先要安装 jdk jdk 有两个版本 一个是 open jdk,一个是 oracle jdk open jdk 是 oracle jdk 的开源版本 两个版本都可以使用 这次实验先使用 open jdk 来做 如果...

doomcat
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部