首頁 資料庫 mysql教程 JavaBeans程序开发_MySQL

JavaBeans程序开发_MySQL

Jun 01, 2016 pm 02:06 PM
public 屬性 程式開發

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
如何在Python中取得整數位面量屬性而不是SyntaxError? 如何在Python中取得整數位面量屬性而不是SyntaxError? Aug 20, 2023 pm 07:13 PM

要獲得intliteral屬性而不是語法錯誤,請使用空格或括號。intliteral是Python中NumericLiterals的一部分。NumericLiterals還包括以下四種不同的數字類型-int(有符號整數) - 它們通常被稱為整數或整數,是正數

如何在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()函數是一個內建函數,

iOS的developer版和public版有什麼不同? iOS的developer版和public版有什麼不同? Mar 01, 2024 pm 12:55 PM

每年Apple發布新的iOS和macOS大版本之前,用戶都可以提前幾個月下載測試版搶先體驗一番。由於大眾和開發人員都使用該軟體,蘋果公司為兩者推出了developer和public版即開發者測試版的公共測試版。 iOS的developer版和public版有什麼差別呢?從字面上的意思來說,developer版是開發者測試版,public版是公共測試版。 developer版和public版面向的物件不同。 developer版是蘋果公司給開發者測試使用的,需要蘋果開發者帳號才能收到下載併升級,是

Win11磁碟屬性未知怎麼辦 Win11磁碟屬性未知怎麼辦 Jul 03, 2023 pm 04:17 PM

  Win11磁碟屬性未知怎麼辦?近期Win11用戶在電腦的使用中,發現系統出現提示磁碟錯誤的情況,這是怎麼回事?而且該如何解決呢?很多小夥伴不知道怎麼詳細操作,小編下面整理了Win11磁碟出錯的解決步驟,如果你有興趣的話,跟著小編一起往下看看吧! Win11磁碟出錯的解決步驟1、首先,按鍵盤上的Win+E組合鍵,或點選工作列上的檔案總管;  2、檔案總管的右側邊欄,找到邊右鍵點選本機磁碟(C :),在開啟的選單項目中,選擇屬性;  3、本機磁碟(C:)屬性窗口,切換到工具選

使用Vue.set函數實作動態新增屬性的方法和範例 使用Vue.set函數實作動態新增屬性的方法和範例 Jul 24, 2023 pm 07:22 PM

使用Vue.set函數實作動態新增屬性的方法和範例在Vue中,如果我們想要動態地新增一個屬性到一個已經存在的物件上,通常會使用Vue.set函數來實作。 Vue.set函數是Vue.js提供的一個全域方法,它能夠在新增屬性時保證響應式更新。本文將介紹Vue.set的使用方法,並提供一個具體的範例。首先,在Vue中,我們通常會使用data選項來宣告響應式的資料。

爐石戰記絕望線縷屬性介紹 爐石戰記絕望線縷屬性介紹 Mar 20, 2024 pm 10:36 PM

絕望線縷是暴雪娛樂旗下佳作《爐石戰記》中的一張稀有卡牌,在「威茲班的工坊」卡包中有機會獲得。可消耗100/400點奧術之塵合成普通/金色版本。爐石戰記絕望線縷屬性介紹答:在威茲班的工坊卡包中有幾率獲得,也可以透過奧術之塵合成。稀有度:稀有類型:法術職業:死亡騎士法力值:1效果:使所有隨從獲得亡語:對所有隨從造成1點傷害

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

如果您想要取得文件從視窗左上角捲動到的像素,請使用pageXoffset和pageYoffset屬性。對水平像素使用pageXoffset。範例您可以嘗試執行以下程式碼來了解如何在JavaScript中使用pageXOffset屬性-現場示範<!DOCTYPEhtml><html>  <head>   <style>  &amp

See all articles