| Introducing Java Beans

## Basic Bean Concepts

> Individual Java Beans will vary in functionality, but most share certain common defining features.
> - Support for introspection allowing a builder tool to analyze how a bean works.
> - Support for customization allowing a user to alter the appearance and behavior of a bean.
> - Support for events allowing beans to fire events, and informing builder tools about both the events they can fire and the events they can handle.
> - Support for properties allowing beans to be manipulated programatically, as well as to support the customization mentioned above.
> - Support for persistence allowing beans that have been customized in an application builder to have their state saved and restored. Typically persistence is used with an application builder's save and load menu commands to restore any work that has gone into constructing an application.
> While Beans are intended to be used primarily with builder tools, they need not be. Beans can be manually manipulated by text tools through programatic interfaces. All key APIs, including support for events, properties, and persistence, have been designed to be easily read and understood by human programmers as well as by builder tools.

| Introducing Java Beans