大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 本科程序員Java學習路線,bean是個什么概念

本科程序員Java學習路線,bean是個什么概念

更新時間:2019-08-13 14:02:43 來源:動力節點 瀏覽2793次

    bean是個什么概念,Bean的中文含義是“豆子”,顧名思義JavaBean是一段Java小程序。JavaBean實際上是指一種特殊的Java類,它通常用來實現一些比較常用的簡單功能,并可以很容易的被重用或者是插入其他應用程序中去。所有遵循一定編程原則的Java類都可以被稱作JavaBean。


u=413209375,3586319870&fm=11&gp=0.jpg


  一.JavaBean技術概述


  JavaBean是基于Java的組件模型,由屬性、方法和事件3部分組成。在該模型中,JavaBean可以被修改或與其他組件結合以生成新組件或完整的程序。它是一種Java類,通過封裝成為具有某種功能或者處理某個業務的對象。因此,也可以通過嵌在JSP頁面內的Java代碼訪問Bean及其屬性。


  Bean的含義是可重復使用的Java組件。所謂組件就是一個由可以自行進行內部管理的一個或幾個類所組成、外界不了解其內部信息和運行方式的群體。使用它的對象只能通過接口來操作。


  二.JavaBean編寫規范


  JavaBean實際上是根據JavaBean技術標準所指定Bean的命名和設計規范編寫的Java類。這些類遵循一個接口格式,以便于使函數命名、底層行為以及繼承或實現的行為,其最大的優點在于可以實現代碼的可重用性。Bean并不需要繼承特別的基類(BaseClass)或實現特定的接口(Interface)。Bean的編寫規范使Bean的容器(Container)能夠分析一個Java類文件,并將其方法(Methods)翻譯成屬性(Properties),即把Java類作為一個Bean類使用。Bean的編寫規范包括Bean類的構造方法、定義屬性和訪問方法編寫規則。


  2.1.Bean組件的工作機制


  在JavaBeansVersion1.01A規范中定義了該組件的5種重要機制:


  (1)內省(Introspection):組建可以發表其支持的操作和屬性,同時也支持在其他組件中發現重復利用的對象庫,如用戶權限控制和電子郵件自動回復等。


  (2)通信(Communication):生成和收集組件的消息事件。


  (3)持續(Persistence):存放組件的狀態。


  (4)屬性(Properties):支持組件布局的控制,包括組件占用的空間和組件的相對位置。


  (5)定制(Customization):開發者可控制組件所需的改變機制。


  2.2.JavaBean的編寫要求


  編寫JavaBean必須滿足以下幾點要求:


  (1)所有的JavaBean必須放在一個包(Package)中。


  (2)JavaBean必須生成publicclass類,文件名稱應該與類名稱一致。


  (3)所有屬性必須封裝,一個JavaBean類不應有公共實例變量,類變量都為private。


  (4)屬性值應該通過一組存取方法(getXxx和setXxx)來訪問:對于每個屬性,應該有一個帶匹配公用getter和setter方法的專用實例變量。


  (5)JavaBean類必須有一個空的構造函數:類中必須有一個不帶參數的公用構造器,此構造器也應該通過調用各個屬性的設置方法來設置屬性的默認值。


  2.3.JavaBean的命名規范


  JavaBean的命名規范如下:


  (1)包命名:全部字母小寫。


  (2)類命名:每個單詞首字母大寫。


  (3)屬性名:第一個單詞全部小寫,之后每個單詞首字母大寫。


  (4)方法名:與屬性命名方法相同。


  (5)常量名:全部字母大寫。


  2.4.JavaBean的包


  包即package,JavaBean的包和前面章節中介紹的包含義基本上是一樣的,但是也有區別,前面介紹的包都是Java本身定義的,而JavaBean的包是用戶自己定義的。


  每一個JavaBean源文件被編譯成.class文件后,都必須存放在相應的文件夾下,存放這個.class文件的文件夾就是一個包。JavaBean的包必須存放在特定的目錄下,在每個JSP引擎中都規定了存放JavaBean包的位置,不同的JSP引擎對JavaBean存放的位置有不同的規定,如在Tomcat中,JavaBean的所有包都存放在WEB-INF/classes文件夾中。如果存在多級目錄,則需要將.class文件所在目錄的所有上級目錄包含到包名稱中,每一級目錄之間用英文標點“.”隔開。例如下面代碼:packagejsp.example.mybean;


  2.5.JavaBean的結構


  (1)屬性:即JavaBean類的成員變量,用于描述JavaBean對象的狀態,對象屬性值的改變觸發事件,屬性本身就是事件源。


  (2)方法:在JavaBean中,函數和過程統稱為方法,通過方法來改變和獲取屬性的值。方法可以分為構造方法、訪問方法和普通方法等。


  (3)事件:事件實際上是一種特殊的JavaBean,屬性值的改變觸發事件,事件激發相關對象作出反應,通過JavaBean注冊對象事件監聽者機制來接收、處理事件,它實現了JavaBean之間的通信。


  三.JavaBean屬性


  在上一節中我們簡單提到了JavaBean的屬性,JavaBean的屬性與一般Java程序中所指的屬性,或者說與所有面向對象的程序設計語言中對象的屬性是一個概念,在程序中的具體體現就是類中的變量。屬性分為四類,即單值(Simple)、索引(Index)、關聯(Bound)和約束(Constrained)屬性。本節將對這些屬性進行詳細說明。


  3.1.單值(simple)屬性


  單值(Simple)屬性是最普通的屬性類型,該類屬性只有一個單一的數據值,該數據值的數據類型可以是Java中的任意數據類型,包括類和接口等類型。


  定義了屬性,還需定義對應的訪問方法,一般每個單值屬性都伴隨有一對get/set方法。屬性名與和該屬性相關的get/set方法名對應。例如如果有一個名為“xxx”的屬性,則會有setXxx和getXxx方法。


  另外,布爾(Boolean)屬性是一種特殊的單值屬性,它只有兩個允許值:true和false,如果有一個名為“xxx”的布爾屬性,則可以通過isX方法訪問。


  3.2.索引(Indexed)屬性


  如果需要定義一批同類型的屬性,使用單值屬性就會顯得非常煩瑣,為解決此問題,JavaBean中提供了索引(Indexed)屬性,索引屬性是指JavaBean中數組類型的成員變量。使用與該屬性對應的set/get方法可取得數組的值。索引屬性通過對應的訪問方法設置或取得該屬性中某個元素的值,也可以一次設置或取得整個屬性的值。


  3.3.關聯(Bound)屬性


  關聯(Bound)屬性是指當該種屬性的值發生變化時,要通知其他的對象。每次屬性值改變時,這種屬性就觸發一個PropertyChange事件(在Java程序中,事件也是一個對象)。事件中封裝了屬性名、屬性的原值、屬性變化后的新值。這種事件傳遞到其他的Beans,至于接收事件的Beans應做什么動作,由其自己定義。


  屬性的改變稱為JavaBean事件。外部與JavaBean這些事件相關的類對象稱為監聽者(Listener)。監聽者可能只對JavaBean某一屬性相關的事件有興趣,也可能對所有屬性相關的事件有興趣,因此JavaBean提供兩類事件監聽者注冊和注銷的方法,即全局事件監聽者注冊、注銷的方法和一般事件監聽者注冊、注銷的方法。


  3.4.約束(Constrained)屬性


  JavaBean的屬性如果改變時,相關的外部類對象首先要檢查這個屬性改變的合理性再決定是否接受這種改變,這樣的JavaBean屬性叫約束(Constrained)屬性。當約束屬性的改變被拒絕時,改變約束屬性的方法產生一個約束屬性改變異常(PropertyVetoException),通過這個異常處理,JavaBean約束屬性還原回原來的值,并為這個還原操作發送一個新的屬性修改通知。


  約束屬性的改變可能會被拒絕,因此它的setXxx與一般其他JavaBean屬性的setXxx也有所不同。約束屬性的寫方法如下:


  publicvoidsetXxx(xxxTypenewXxx)throwsPropertyVetoException


  四.JavaBean方法


  4.1.構造方法


  JavaBean的構造方法與與之前的普通java類的構造方法意思是一樣的,就是對JavaBean的屬性及其方法進行初始化,即對所定義的屬性及方法設一個初始值,構造方法名要和JavaBean的類名相同。


  4.2.訪問方法


  在定義了Bean的屬性,并通過構造方法將其初始化后,要讓其他程序訪問Bean的這些屬性,就必須為其創建訪問方法。訪問方法就是對組件中定義的屬性的訪問,包括讀和寫兩種訪問方式。讀就是一種用于取出Bean屬性的值的取值函數,即getter;而寫則是一種用于設置Bean屬性的賦值函數,即setter。以下列出的就是Bean屬性訪問方法的具體語法格式:


  publicvoidsetPropertyName(PropertyTypevalue);//給屬性賦值,即寫方法


  publicPropertyTypegetPropertyName();//讀取屬性值,即讀方法


  4.3.一般方法


  除了對屬性的訪問方法外,還可以在Bean創建一般方法來實現對函數的調用,只要將Bean中的一般方法定義成公有的方法,就可以供其他程序調用。


  五.JavaBean事件


  事件處理是JavaBeans體系結構的核心之一。通過事件處理機制,可讓一些組件作為事件源,發出可被描述環境或其他組件接收的事件。這樣,不同的組件就可在構造工具內組合在一起,組件之間通過事件的傳遞進行通信,構成一個應用。從概念上講,事件是一種在“源對象”和“監聽者對象”之間某種狀態發生變化的傳遞機制。事件有許多不同的用途,例如在Windows系統中常要處理的鼠標事件、窗口邊界改變事件、鍵盤事件等。


  5.1.事件模型


  JavaBean事件模型如圖所示,事件源是一個JavaBean類對象,它把屬性改變的時間對象傳遞給事件監聽者,事件監聽者負責事件的處理。事件監聽者必須在事件源注冊。

image.png

  5.2.事件狀態對象


  與事件發生有關的狀態信息一般都封裝在事件狀態對象(EventStateObject)中,這種對象是java.util.EventObject的子類。按設計習慣,這種事件狀態對象類的名應以Event結尾。例如代碼是一個鼠標移動事件實例。


  5.3.事件監聽者接口與事件監聽者


  由于Java事件模型是基于方法調用的,因此需要一個定義并組織事件操縱方法的方式。JavaBeans中,事件操縱方法都被定義在

image.png

  繼承了java.util.EventListener類的事件監聽者(EventListener)接口中,按規定,EventListener接口的命名要以Listener結尾。任何一個類如果想操縱在EventListener接口中,定義的方法都必須以實現這個接口方式進行。這個類就是事件監聽者。例如如下代碼:


  //先定義了一個鼠標移動事件對象


  publicclassMouseMovedExampleEventextendsjava.util.EventObject{


  //在此類中包含了與鼠標移動事件有關的狀態信息


  ...


  }


  //定義了鼠標移動事件的監聽者接口


  interfaceMouseMovedExampleListenerextendsjava.util.EventListener{


  //在這個接口中定義了鼠標移動事件監聽者所應支持的方法


  voidmouseMoved(MouseMovedExampleEventmme);


  }


  5.4.事件監聽者注冊與注銷


  為了讓各種可能的事件監聽者把自己注冊入合適的事件源中,就建立源與事件監聽者間的事件流,事件源必須為事件監聽者提供注冊和注銷的方法。在實際中,事件監聽者的注冊和注銷要使用以下標準的設計格式:


  publicvoidadd<ListenerType>(<ListenerType>listener);


  publicvoidremove<ListenerType>(<ListenerType>listener);


  下面是一個具體的實例,首先定義了一個事件監聽者接口:


  importjava.util.*;


  publicinterfaceModelChangedListenerextendsEventListener


  {voidmodelChanged(EventObjecte);}


  5.5.適配類


  適配類是Java事件模型中極其重要的一部分。在一些應用場合,事件從源到監聽者之間的傳遞要通過適配類來“轉發”。例如:當事件源發出一個事件,而有幾個事件監聽者對象都可接收該事件,但只有指定對象做出反應時,就要在事件源與事件監聽者之間插入一個事件適配器類,由適配器類來指定事件應該是由哪些監聽者來響應。適配類成為了事件監聽者,事件源實際是把適配類作為監聽者注冊入監聽者隊列中,而真正的事件響應者并未在監聽者隊列中,事件響應者應做的動作由適配類決定。目前絕大多數的開發工具在生成代碼時,事件處理都是通過適配類來進行的。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产福利视频一区二区三区 | 亚洲精品一区henhen色 | 99久久99久久 | 精品亚洲性xxx久久久 | 亚洲欧美一区二区三区二厂 | 国产在线2021 | 久久久成人影院 | 成人亚洲网 | 亚洲视频免费播放 | 精品视频入口 | 久久中文字幕一区二区 | 欧美乱妇高清无乱码视频在线 | 亚洲图区综合 | 日韩一区二区三区在线观看 | 青青青青在线成人视99 | 夜夜爱夜夜爽夜夜做夜夜欢 | 特级黄毛片 | 精品国产麻豆 | 我色综合 | 伊人久久99 | 欧美乱理伦另类视频 | 99九九成人免费视频精品 | 亚洲国产激情在线一区 | 欧美一级爱操视频 | 亚洲综合在线另类色区奇米 | 精品久久久中文字幕二区 | 九九热视频免费观看 | 亚洲综合久久久久久888 | 香蕉视频在线免费 | 久久精品视频1 | 亚洲最大在线 | 五月花在线观看播放视频 | 米奇久久 | 99综合| 毛片一级在线观看 | 亚洲国产爱久久全部精品 | 日韩精美视频 | 日日摸夜夜添夜夜添影院视频 | 免费日韩毛片 | 欧美三区在线 | 亚洲精品久久久久久下一站 |