搜索
首页数据库mysql教程JavaBeans程序开发_MySQL

JavaBeans程序开发

  

  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属性的监听者队列l中,l是一个Vector数组,可存储任何Java对象。

  开发工具也可使用changes的removePropertyChangeListener方法,从l中注销指定的对象,使alden3的ourString属性的改变不再与这个对象有关。

  当然,当程序员手写代码编制程序时,也可直接调用这两个方法,把其它Java对象与alden3挂接。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Python中获取整数字面量属性而不是SyntaxError?如何在Python中获取整数字面量属性而不是SyntaxError?Aug 20, 2023 pm 07:13 PM

TogetintliteralattributeinsteadofSyntaxError,useaspaceorparenthesis.TheintliteralisapartifNumericLiteralsinPython.NumericLiteralsalsoincludesthefollowingfourdifferentnumericaltypes−int(signedintegers)−Theyareoftencalledjustintegersorints,arepositiveo

如何在Java中使用Gson重命名JSON的属性?如何在Java中使用Gson重命名JSON的属性?Aug 27, 2023 pm 02:01 PM

Gson@SerializedName注释可以序列化为JSON,并将提供的名称值作为其字段名称。此注释可以覆盖任何FieldNamingPolicy,包括可能已在Gson实例上设置的默认字段命名策略。可以使用GsonBuilder类设置不同的命名策略。语法@Retention(value=RUNTIME)@Target(value={FIELD,METHOD})public@interfaceSerializedName示例importcom.google.gson.annotations.*;

Python的dir()函数:查看对象的属性和方法Python的dir()函数:查看对象的属性和方法Nov 18, 2023 pm 01:45 PM

Python的dir()函数:查看对象的属性和方法,需要具体代码示例摘要:Python是一种强大而灵活的编程语言,其内置函数和工具为开发人员提供了许多方便的功能。其中一个非常有用的函数是dir()函数,它允许我们查看一个对象的属性和方法。本文将介绍dir()函数的用法,并通过具体的代码示例来演示其功能和用途。正文:Python的dir()函数是一个内置函数,

Win11磁盘属性未知怎么办Win11磁盘属性未知怎么办Jul 03, 2023 pm 04:17 PM

  Win11磁盘属性未知怎么办?近期Win11用户在电脑的使用中,发现系统出现提示磁盘错误的情况,这是怎么回事儿呢?而且应该如何解决呢?很多小伙伴不知道怎么详细操作,小编下面整理了Win11磁盘出错的解决步骤,如果你感兴趣的话,跟着小编一起往下看看吧!  Win11磁盘出错的解决步骤  1、首先,按键盘上的Win+E组合键,或点击任务栏上的文件资源管理器;  2、文件资源管理器的右侧边栏,找到边右键点击本地磁盘(C:),在打开的菜单项中,选择属性;  3、本地磁盘(C:)属性窗口,切换到工具选

pageXOffset属性在JavaScript中的作用是什么?pageXOffset属性在JavaScript中的作用是什么?Sep 16, 2023 am 09:17 AM

如果您想获取文档从窗口左上角滚动到的像素,请使用pageXoffset和pageYoffset属性。对水平像素使用pageXoffset。示例您可以尝试运行以下代码来了解如何在JavaScript中使用pageXOffset属性-现场演示<!DOCTYPEhtml><html>&nbsp;&nbsp;<head>&nbsp;&nbsp;&nbsp;<style>&nbsp;&nbsp;&

使用Vue.set函数实现动态添加属性的方法和示例使用Vue.set函数实现动态添加属性的方法和示例Jul 24, 2023 pm 07:22 PM

使用Vue.set函数实现动态添加属性的方法和示例在Vue中,如果我们想要动态地添加一个属性到一个已经存在的对象上,通常会使用Vue.set函数来实现。Vue.set函数是Vue.js提供的一个全局方法,它能够在添加属性时保证响应式更新。本文将介绍Vue.set的使用方法,并提供一个具体的示例。首先,在Vue中,我们通常会使用data选项来声明响应式的数据。

position有哪些属性position有哪些属性Oct 10, 2023 am 11:18 AM

position属性取值有static、relative、absolute、fixed和sticky等。详细介绍:1、static是position属性的默认值,表示元素按照正常的文档流进行布局,不进行特殊的定位,元素的位置由其在HTML文档中的先后顺序决定,无法通过top、right、bottom和left属性进行调整;2、relative是相对定位等等。

电脑双击文件夹打开的是属性怎么办电脑双击文件夹打开的是属性怎么办Jan 01, 2021 pm 04:04 PM

电脑双击文件夹打开的是属性的解决方法:1、打开控制面板,进入“轻松使用”选项;2、点击“轻松使用设置中心”下方的更改键盘工作方式选项;3、取消勾选使用粘滞键,点击“应用”即可。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具