2014-04-03 204 views
4

根據定義,我在網上找到了一個JavaBean是滿足這些條件的Java類:JavaBean除了getter和setter之外還有其他方法嗎?

  • 所有實例的屬性是私人
  • 所有實例的屬性有公共的getter和setter
  • 類有一個參數的構造函數
  • 類實現Serializable接口

我想知道的是,如果我向Javabean添加方法,我們仍然可以將它稱爲Javabean?

例如我們可以說下面的類是JavaBean嗎?

public class Person implements Serializable { 
    private String name; 
    public Person(){} 
    public String getName(){...} 
    public void setName(String name){...} 
    public void sayHello(){} 
} 
+0

是什麼讓你知道它不能? 如果您給汽車(汽車)提供飛行/開航/開車的能力,它會停止成爲汽車/汽車嗎? –

+0

是的,它可以。明智地使用它。 –

+0

爲什麼不呢?如果添加方法,該類仍然滿足條件:) – hsluo

回答

7

是的,Java Bean肯定有行爲。沒有附加方法的Java Bean類具有非常有限的適用性,因爲它們封裝了沒有有用行爲的數據。

甲骨文mentions this in one of their tutorials on Java Beans

bean的方法有事情可以做。任何不屬於屬性定義的公共方法都是一個bean方法。在NetBeans等構建工具的上下文中使用bean時,可以將bean的方法用作應用程序的一部分。例如,你可以連線一個按鈕來調用你的一個bean的方法。

2

是的,java bean可以有附加功能。引入了約定來以結構化的方式訪問屬性,並添加了否決等功能。它用於例如swing中的GUI組件,其中bean機制用於配置GUI元素。特別是在GUI編輯器中,需要動態訪問未知屬性。當然,這些GUI組件有很多功能。如果您限制爲您的條件集,您會得到什麼是DTO(數據傳輸對象),它僅傳輸數據,但沒有附加功能。

相關問題