欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

好程序員Java學(xué)習(xí)路線Javabean是個(gè)什么概念

好程序員Java學(xué)習(xí)路線Java bean是個(gè)什么概念,Bean的中文含義是“豆子”,顧名思義JavaBean是一段Java小程序。JavaBean實(shí)際上是指一種特殊的Java類(lèi),它通常用來(lái)實(shí)現(xiàn)一些比較常用的簡(jiǎn)單功能,并可以很容易的被重用或者是插入其他應(yīng)用程序中去。所有遵循一定編程原則的Java類(lèi)都可以被稱作JavaBean。
一. Java Bean技術(shù)概述
??????? Java Bean是基于Java的組件模型,由屬性、方法和事件3部分組成。在該模型中,JavaBean可以被修改或與其他組件結(jié)合以生成新組件或完整的程序。它是一種Java類(lèi),通過(guò)封裝成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對(duì)象。因此,也可以通過(guò)嵌在JSP頁(yè)面內(nèi)的Java代碼訪問(wèn)Bean及其屬性。

創(chuàng)新互聯(lián)成立以來(lái)不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門(mén)戶設(shè)計(jì)推廣、行業(yè)門(mén)戶平臺(tái)運(yùn)營(yíng)、重慶APP開(kāi)發(fā)公司手機(jī)網(wǎng)站制作設(shè)計(jì)、微信網(wǎng)站制作、軟件開(kāi)發(fā)、中國(guó)電信云錦天府等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。

??????? Bean的含義是可重復(fù)使用的Java組件。所謂組件就是一個(gè)由可以自行進(jìn)行內(nèi)部管理的一個(gè)或幾個(gè)類(lèi)所組成、外界不了解其內(nèi)部信息和運(yùn)行方式的群體。使用它的對(duì)象只能通過(guò)接口來(lái)操作。
二. Java Bean編寫(xiě)規(guī)范
??????? Java Bean實(shí)際上是根據(jù)JavaBean技術(shù)標(biāo)準(zhǔn)所指定Bean的命名和設(shè)計(jì)規(guī)范編寫(xiě)的Java類(lèi)。這些類(lèi)遵循一個(gè)接口格式,以便于使函數(shù)命名、底層行為以及繼承或?qū)崿F(xiàn)的行為,其最大的優(yōu)點(diǎn)在于可以實(shí)現(xiàn)代碼的可重用性。Bean并不需要繼承特別的基類(lèi)(BaseClass)或?qū)崿F(xiàn)特定的接口(Interface)。Bean的編寫(xiě)規(guī)范使Bean的容器(Container)能夠分析一個(gè)Java類(lèi)文件,并將其方法(Methods)翻譯成屬性(Properties),即把Java類(lèi)作為一個(gè)Bean類(lèi)使用。Bean的編寫(xiě)規(guī)范包括Bean類(lèi)的構(gòu)造方法、定義屬性和訪問(wèn)方法編寫(xiě)規(guī)則。
2.1. Bean組件的工作機(jī)制
在JavaBeansVersion1.01 A規(guī)范中定義了該組件的5種重要機(jī)制:

(1)內(nèi)省(Introspection):組建可以發(fā)表其支持的操作和屬性,同時(shí)也支持在其他組件中發(fā)現(xiàn)重復(fù)利用的對(duì)象庫(kù),如用戶權(quán)限控制和電子郵件自動(dòng)回復(fù)等。

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

(3)持續(xù)(Persistence):存放組件的狀態(tài)。

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

(5)定制(Customization):開(kāi)發(fā)者可控制組件所需的改變機(jī)制。

2.2. Java Bean的編寫(xiě)要求
??編寫(xiě)JavaBean必須滿足以下幾點(diǎn)要求:

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

(2)JavaBean必須生成public class類(lèi),文件名稱應(yīng)該與類(lèi)名稱一致。

(3)所有屬性必須封裝,一個(gè)JavaBean類(lèi)不應(yīng)有公共實(shí)例變量,類(lèi)變量都為private。

(4)屬性值應(yīng)該通過(guò)一組存取方法(getXxx 和 setXxx)來(lái)訪問(wèn):對(duì)于每個(gè)屬性,應(yīng)該有一個(gè)帶匹配公用getter 和 setter方法的專用實(shí)例變量。

(5)Java Bean 類(lèi)必須有一個(gè)空的構(gòu)造函數(shù):類(lèi)中必須有一個(gè)不帶參數(shù)的公用構(gòu)造器,此構(gòu)造器也應(yīng)該通過(guò)調(diào)用各個(gè)屬性的設(shè)置方法來(lái)設(shè)置屬性的默認(rèn)值。
2.3. Java Bean的命名規(guī)范
???Java Bean的命名規(guī)范如下:

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

(2)類(lèi)命名:每個(gè)單詞首字母大寫(xiě)。

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

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

(5)常量名:全部字母大寫(xiě)。
2.4. Java Bean的包
??????? 包即package,JavaBean的包和前面章節(jié)中介紹的包含義基本上是一樣的,但是也有區(qū)別,前面介紹的包都是Java本身定義的,而JavaBean的包是用戶自己定義的。

??????? 每一個(gè)JavaBean源文件被編譯成.class文件后,都必須存放在相應(yīng)的文件夾下,存放這個(gè).class文件的文件夾就是一個(gè)包。JavaBean的包必須存放在特定的目錄下,在每個(gè)JSP引擎中都規(guī)定了存放JavaBean包的位置,不同的JSP引擎對(duì)JavaBean存放的位置有不同的規(guī)定,如在Tomcat中,JavaBean的所有包都存放在WEB-INF/classes文件夾中。如果存在多級(jí)目錄,則需要將.class文件所在目錄的所有上級(jí)目錄包含到包名稱中,每一級(jí)目錄之間用英文標(biāo)點(diǎn)“.”隔開(kāi)。例如下面代碼:packagejsp.example.mybean;
2.5. Java Bean的結(jié)構(gòu)
(1)屬性:即Java Bean類(lèi)的成員變量,用于描述JavaBean對(duì)象的狀態(tài),對(duì)象屬性值的改變觸發(fā)事件,屬性本身就是事件源。

(2)方法:在Java Bean中,函數(shù)和過(guò)程統(tǒng)稱為方法,通過(guò)方法來(lái)改變和獲取屬性的值。方法可以分為構(gòu)造方法、訪問(wèn)方法和普通方法等。

(3)事件:事件實(shí)際上是一種特殊的Java Bean,屬性值的改變觸發(fā)事件,事件激發(fā)相關(guān)對(duì)象作出反應(yīng),通過(guò)Java Bean注冊(cè)對(duì)象事件監(jiān)聽(tīng)者機(jī)制來(lái)接收、處理事件,它實(shí)現(xiàn)了Java Bean之間的通信。
三. Java Bean屬性
??????? 在上一節(jié)中我們簡(jiǎn)單提到了JavaBean的屬性,Java Bean的屬性與一般Java程序中所指的屬性,或者說(shuō)與所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言中對(duì)象的屬性是一個(gè)概念,在程序中的具體體現(xiàn)就是類(lèi)中的變量。屬性分為四類(lèi),即單值(Simple)、索引(Index)、關(guān)聯(lián)(Bound)和約束(Constrained)屬性。本節(jié)將對(duì)這些屬性進(jìn)行詳細(xì)說(shuō)明。
3.1. 單值(simple)屬性
??????? 單值(Simple)屬性是最普通的屬性類(lèi)型,該類(lèi)屬性只有一個(gè)單一的數(shù)據(jù)值,該數(shù)據(jù)值的數(shù)據(jù)類(lèi)型可以是Java中的任意數(shù)據(jù)類(lèi)型,包括類(lèi)和接口等類(lèi)型。

??????? 定義了屬性,還需定義對(duì)應(yīng)的訪問(wèn)方法,一般每個(gè)單值屬性都伴隨有一對(duì)get/set方法。屬性名與和該屬性相關(guān)的get/set方法名對(duì)應(yīng)。例如如果有一個(gè)名為“xxx”的屬性,則會(huì)有setXxx和getXxx方法。

??????? 另外,布爾(Boolean)屬性是一種特殊的單值屬性,它只有兩個(gè)允許值:true和false,如果有一個(gè)名為“xxx”的布爾屬性,則可以通過(guò)isX方法訪問(wèn)。
3.2. 索引(Indexed)屬性
??????? 如果需要定義一批同類(lèi)型的屬性,使用單值屬性就會(huì)顯得非常煩瑣,為解決此問(wèn)題,JavaBean中提供了索引(Indexed) 屬性,索引屬性是指JavaBean中數(shù)組類(lèi)型的成員變量。使用與該屬性對(duì)應(yīng)的set/get方法可取得數(shù)組的值。索引屬性通過(guò)對(duì)應(yīng)的訪問(wèn)方法設(shè)置或取得該屬性中某個(gè)元素的值,也可以一次設(shè)置或取得整個(gè)屬性的值。

3.3. 關(guān)聯(lián)(Bound)屬性
??????? 關(guān)聯(lián)(Bound)屬性是指當(dāng)該種屬性的值發(fā)生變化時(shí),要通知其他的對(duì)象。每次屬性值改變時(shí),這種屬性就觸發(fā)一個(gè)PropertyChange事件(在Java程序中,事件也是一個(gè)對(duì)象)。事件中封裝了屬性名、屬性的原值、屬性變化后的新值。這種事件傳遞到其他的Beans,至于接收事件的Beans應(yīng)做什么動(dòng)作,由其自己定義。

??????? 屬性的改變稱為JavaBean事件。外部與Java Bean這些事件相關(guān)的類(lèi)對(duì)象稱為監(jiān)聽(tīng)者(Listener)。監(jiān)聽(tīng)者可能只對(duì)JavaBean某一屬性相關(guān)的事件有興趣,也可能對(duì)所有屬性相關(guān)的事件有興趣,因此JavaBean提供兩類(lèi)事件監(jiān)聽(tīng)者注冊(cè)和注銷(xiāo)的方法,即全局事件監(jiān)聽(tīng)者注冊(cè)、注銷(xiāo)的方法和一般事件監(jiān)聽(tīng)者注冊(cè)、注銷(xiāo)的方法。
3.4. 約束(Constrained)屬性
??????? Java Bean的屬性如果改變時(shí),相關(guān)的外部類(lèi)對(duì)象首先要檢查這個(gè)屬性改變的合理性再?zèng)Q定是否接受這種改變,這樣的JavaBean屬性叫約束(Constrained)屬性。當(dāng)約束屬性的改變被拒絕時(shí),改變約束屬性的方法產(chǎn)生一個(gè)約束屬性改變異常(PropertyVetoException),通過(guò)這個(gè)異常處理,JavaBean約束屬性還原回原來(lái)的值,并為這個(gè)還原操作發(fā)送一個(gè)新的屬性修改通知。

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

??????? public void setXxx(xxxType newXxx)throws PropertyVetoException
四. Java Bean方法
4.1. 構(gòu)造方法
??????? Java Bean的構(gòu)造方法與與之前的普通java類(lèi)的構(gòu)造方法意思是一樣的,就是對(duì)JavaBean的屬性及其方法進(jìn)行初始化,即對(duì)所定義的屬性及方法設(shè)一個(gè)初始值,構(gòu)造方法名要和JavaBean的類(lèi)名相同。
4.2. 訪問(wèn)方法
?????? 在定義了Bean的屬性,并通過(guò)構(gòu)造方法將其初始化后,要讓其他程序訪問(wèn)Bean的這些屬性,就必須為其創(chuàng)建訪問(wèn)方法。訪問(wèn)方法就是對(duì)組件中定義的屬性的訪問(wèn),包括讀和寫(xiě)兩種訪問(wèn)方式。讀就是一種用于取出Bean屬性的值的取值函數(shù),即getter;而寫(xiě)則是一種用于設(shè)置Bean屬性的賦值函數(shù),即setter。以下列出的就是Bean屬性訪問(wèn)方法的具體語(yǔ)法格式:

??????? public void setPropertyName(PropertyTypevalue);//給屬性賦值,即寫(xiě)方法

??????? public PropertyType getPropertyName();//讀取屬性值,即讀方法

4.3. 一般方法
??????? 除了對(duì)屬性的訪問(wèn)方法外,還可以在Bean創(chuàng)建一般方法來(lái)實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用,只要將Bean中的一般方法定義成公有的方法,就可以供其他程序調(diào)用。
五. Java Bean事件
??????? 事件處理是JavaBeans體系結(jié)構(gòu)的核心之一。通過(guò)事件處理機(jī)制,可讓一些組件作為事件源,發(fā)出可被描述環(huán)境或其他組件接收的事件。這樣,不同的組件就可在構(gòu)造工具內(nèi)組合在一起,組件之間通過(guò)事件的傳遞進(jìn)行通信,構(gòu)成一個(gè)應(yīng)用。從概念上講,事件是一種在“源對(duì)象”和“監(jiān)聽(tīng)者對(duì)象”之間某種狀態(tài)發(fā)生變化的傳遞機(jī)制。事件有許多不同的用途,例如在Windows系統(tǒng)中常要處理的鼠標(biāo)事件、窗口邊界改變事件、鍵盤(pán)事件等。

5.1. 事件模型

??????? Java Bean事件模型如圖所示,事件源是一個(gè)JavaBean類(lèi)對(duì)象,它把屬性改變的時(shí)間對(duì)象傳遞給事件監(jiān)聽(tīng)者,事件監(jiān)聽(tīng)者負(fù)責(zé)事件的處理。事件監(jiān)聽(tīng)者必須在事件源注冊(cè)。
好程序員Java學(xué)習(xí)路線Java bean是個(gè)什么概念
5.2. 事件狀態(tài)對(duì)象

??????? 與事件發(fā)生有關(guān)的狀態(tài)信息一般都封裝在事件狀態(tài)對(duì)象 (EventState Object) 中,這種對(duì)象是java.util.EventObject的子類(lèi)。按設(shè)計(jì)習(xí)慣,這種事件狀態(tài)對(duì)象類(lèi)的名應(yīng)以Event結(jié)尾。例如代碼是一個(gè)鼠標(biāo)移動(dòng)事件實(shí)例。

5.3. 事件監(jiān)聽(tīng)者接口與事件監(jiān)聽(tīng)者

??????? 由于Java事件模型是基于方法調(diào)用的,因此需要一個(gè)定義并組織事件操縱方法的方式。JavaBeans中,事件操縱方法都被定義在好程序員Java學(xué)習(xí)路線Java bean是個(gè)什么概念繼承了java.util.EventListener類(lèi)的事件監(jiān)聽(tīng)者(EventListener)接口中,按規(guī)定,EventListener接口的命名要以Listener結(jié)尾。任何一個(gè)類(lèi)如果想操縱在EventListener接口中,定義的方法都必須以實(shí)現(xiàn)這個(gè)接口方式進(jìn)行。這個(gè)類(lèi)就是事件監(jiān)聽(tīng)者。例如如下代碼:

//先定義了一個(gè)鼠標(biāo)移動(dòng)事件對(duì)象

public class MouseMovedExampleEventextends java.util.EventObject {

//在此類(lèi)中包含了與鼠標(biāo)移動(dòng)事件有關(guān)的狀態(tài)信息

...

}

//定義了鼠標(biāo)移動(dòng)事件的監(jiān)聽(tīng)者接口

interface MouseMovedExampleListener extends java.util.EventListener {

//在這個(gè)接口中定義了鼠標(biāo)移動(dòng)事件監(jiān)聽(tīng)者所應(yīng)支持的方法

void mouseMoved(MouseMovedExampleEvent mme);

}

5.4. 事件監(jiān)聽(tīng)者注冊(cè)與注銷(xiāo)

??????? 為了讓各種可能的事件監(jiān)聽(tīng)者把自己注冊(cè)入合適的事件源中,就建立源與事件監(jiān)聽(tīng)者間的事件流,事件源必須為事件監(jiān)聽(tīng)者提供注冊(cè)和注銷(xiāo)的方法。在實(shí)際中,事件監(jiān)聽(tīng)者的注冊(cè)和注銷(xiāo)要使用以下標(biāo)準(zhǔn)的設(shè)計(jì)格式:

public void add<ListenerType>(< ListenerType> listener);

public void remove<ListenerType>(< ListenerType> listener);

??????? 下面是一個(gè)具體的實(shí)例,首先定義了一個(gè)事件監(jiān)聽(tīng)者接口:

import java.util.*;

public interface ModelChangedListenerextends EventListener

{ void modelChanged(EventObjecte);}

5.5. 適配類(lèi)
??????? 適配類(lèi)是Java事件模型中極其重要的一部分。在一些應(yīng)用場(chǎng)合,事件從源到監(jiān)聽(tīng)者之間的傳遞要通過(guò)適配類(lèi)來(lái)“轉(zhuǎn)發(fā)”。例如:當(dāng)事件源發(fā)出一個(gè)事件,而有幾個(gè)事件監(jiān)聽(tīng)者對(duì)象都可接收該事件,但只有指定對(duì)象做出反應(yīng)時(shí),就要在事件源與事件監(jiān)聽(tīng)者之間插入一個(gè)事件適配器類(lèi),由適配器類(lèi)來(lái)指定事件應(yīng)該是由哪些監(jiān)聽(tīng)者來(lái)響應(yīng)。適配類(lèi)成為了事件監(jiān)聽(tīng)者,事件源實(shí)際是把適配類(lèi)作為監(jiān)聽(tīng)者注冊(cè)入監(jiān)聽(tīng)者隊(duì)列中,而真正的事件響應(yīng)者并未在監(jiān)聽(tīng)者隊(duì)列中,事件響應(yīng)者應(yīng)做的動(dòng)作由適配類(lèi)決定。目前絕大多數(shù)的開(kāi)發(fā)工具在生成代碼時(shí),事件處理都是通過(guò)適配類(lèi)來(lái)進(jìn)行的。

網(wǎng)站題目:好程序員Java學(xué)習(xí)路線Javabean是個(gè)什么概念
文章轉(zhuǎn)載:http://www.chinadenli.net/article34/pigope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站收錄標(biāo)簽優(yōu)化動(dòng)態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)