╠α≥σ≡Φαδ δ■ßστφε ∩≡σΣε±≥αΓδσφ Ωε∞∩αφΦσΘ Jet Infosystems
═αΩε∩δσφΦσ Φ Φ±∩εδⁿτεΓαφΦσ ∩≡επ≡α∞∞Φ±≥±ΩΦ⌡ τφαφΦΘ - Ωδ■≈σΓεΘ Γε∩≡ε± ±εΓ≡σ∞σφφ√⌡ Φφ⌠ε≡∞α÷Φεφφ√⌡ ≥σ⌡φεδεπΦΘ. ╤σΘ≈α± φσ Φ∞σσ≥ ßεδⁿ°επε τφα≈σφΦ , φα±ΩεδⁿΩε ≤Σεßφε Γ ≥ε∞ ΦδΦ Φφε∞ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ ∩≡εσΩ≥Φ≡εΓα≥ⁿ Φ ≡σαδΦτεΓ√Γα≥ⁿ ∩≡επ≡α∞∞√ "± φ≤δ " - Γ δ■ßε∞ ±δ≤≈ασ Σδ ßεδⁿ°εΘ Φφ⌠ε≡∞α÷ΦεφφεΘ ±Φ±≥σ∞√ ²≥ε ß≤Σσ≥ ±δεµφ√Θ, ∞φεπεδσ≥φΦΘ ∩≡ε÷σ±±. ┬∩≡ε≈σ∞, ΩαΩ ∩≡αΓΦδε, ²≥ε Φ φσ φ≤µφε. ╬≈σφⁿ ∞φεπΦσ Γσ∙Φ ≤µσ φα∩Φ±αφ√ (∩≡Φ≈σ∞ ∩ε ∞φεπε ≡ατ), ≥αΩ ≈≥ε ε±≥ασ≥± ≥εδⁿΩε φα±≥≡εΦ≥ⁿ Φ⌡ Σεδµφ√∞ εß≡ατε∞ Φ "∩≡εΦφ≥σπ≡Φ≡εΓα≥ⁿ", ≥ε σ±≥ⁿ ±εß≡α≥ⁿ Γ σΣΦφ≤■ ±Φ±≥σ∞≤.
┼±δΦ ∩≡εΓεΣΦ≥ⁿ αφαδεπΦ■ ±ε ±≥≡εΦ≥σδⁿ±≥Γε∞, ≥ε Γ φα±≥ε ∙σσ Γ≡σ∞ φαΦßεδσσ ∩σ≡±∩σΩ≥ΦΓφ√∞Φ ∩≡σΣ±≥αΓδ ■≥± Ω≡≤∩φεßδε≈φ√σ ±ßε≡ε≈φ√σ ≥σ⌡φεδεπΦΦ. ┬ ∩≡επ≡α∞∞Φ≡εΓαφΦΦ ²≥ε φα∩≡αΓδσφΦσ ≡ατΓΦΓασ≥± ΣαΓφε Φ ∩εΣ ≡ατφ√∞Φ φατΓαφΦ ∞Φ - ßΦßδΦε≥σΩΦ ±≥αφΣα≡≥φ√⌡ ∩≡επ≡α∞∞, ∩αΩσ≥√ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞ Φ ≥.∩. ╨ατ≡αßε≥αφ√ ∞φεπε≈Φ±δσφφ√σ "∞απΦ", ≡σαδΦτ≤■∙Φσ ⌠≡απ∞σφ≥√, ±∩σ÷Φ⌠Φ≈φ√σ Σδ ε∩σ≡α÷Φεφφεπε εΩ≡≤µσφΦ ΦδΦ ∩≡σΣ∞σ≥φεΘ εßδα±≥Φ.
╩ε∞∩εφσφ≥φ√σ εß·σΩ≥φ√σ ±≡σΣ√ - ²≥ε φαΦßεδσσ ±εΓ≡σ∞σφφ√Θ Φ σ±≥σ±≥Γσφφ√Θ ⌠≤φΣα∞σφ≥ Σδ φαΩε∩δσφΦ Φ Φ±∩εδⁿτεΓαφΦ ∩≡επ≡α∞∞Φ±≥±ΩΦ⌡ τφαφΦΘ. ╧εΣεßφα ±≡σΣα ßατΦ≡≤σ≥± φα Ωε∞∩εφσφ≥φεΘ εß·σΩ≥φεΘ ∞εΣσδΦ Φ ΓΩδ■≈ασ≥ Γ ±σß πε≥εΓ√σ Ωε∞∩εφσφ≥√, α ≥αΩµσ Φφ±≥≡≤∞σφ≥αδⁿφεσ εΩ≡≤µσφΦσ, ∩ετΓεδ ■∙σσ Γ√ß≡α≥ⁿ ∩εΣ⌡εΣ ∙Φσ Ωε∞∩εφσφ≥√, φα±≥≡εΦ≥ⁿ Φ⌡ Φ ±Γ τα≥ⁿ ∞σµΣ≤ ±εßεΘ, εß·σΣΦφΦΓ Γ πε≥εΓεσ ∩≡ΦδεµσφΦσ.
╩ε∞∩εφσφ≥φ√σ εß·σΩ≥φ√σ ±≡σΣ√ εßδαΣα■≥ Γ±σ∞Φ Σε±≥εΦφ±≥Γα∞Φ, ∩≡Φ±≤∙Φ∞Φ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφε∞≤ ∩εΣ⌡εΣ≤:
╩≡ε∞σ ≥επε, εß·σΣΦφσφΦσ Ωε∞∩εφσφ≥εΓ Γ ≡α∞Ωα⌡ σΣΦφεπε Ωεφ≥σΘφσ≡α, ± εΣφεΘ ±≥ε≡εφ√, ∩ετΓεδ σ≥ ±≥≡εΦ≥ⁿ Φσ≡α≡⌡ΦΦ ± φσßεδⁿ°Φ∞ ≈Φ±δε∞ ±≤∙φε±≥σΘ φα ΩαµΣε∞ ≤≡εΓφσ (²≥ε φσεß⌡εΣΦ∞εσ ≤±δεΓΦσ ≤±∩σ°φεΘ ≡αßε≥√ ± δ■ßεΘ ±δεµφεΘ ±Φ±≥σ∞εΘ), α, ± Σ≡≤πεΘ ±≥ε≡εφ√ (Φ ²≥ε ε≈σφⁿ Γαµφε ± ∞σ≥εΣεδεπΦ≈σ±ΩΦ⌡ ∩ετΦ÷ΦΘ), ∩≡σΣε±≥αΓδ σ≥ ∞σ⌡αφΦτ∞ εß≡ατεΓαφΦ φεΓ√⌡ ∩εφ ≥ΦΘ ΩαΩ Γε Γ≡σ∞ ≡ατ≡αßε≥ΩΦ ∩≡επ≡α∞∞φεΘ ±Φ±≥σ∞√, ≥αΩ Φ Γ ∩≡ε÷σ±±σ σσ Φ±∩εδⁿτεΓαφΦ .
JavaBeans - φσ σΣΦφ±≥Γσφφα Φ φσ ∩σ≡Γα Ωε∞∩εφσφ≥φα εß·σΩ≥φα ±≡σΣα, εΣφαΩε, ≤≈Φ≥√Γα επ≡ε∞φ≤■ ∩ε∩≤δ ≡φε±≥ⁿ Java-≥σ⌡φεδεπΦΦ, ∞√ ≡σ°ΦδΦ ≡α±±∞ε≥≡σ≥ⁿ Φ∞σφφε JavaBeans, ±ε±≡σΣε≥ε≈ΦΓ°Φ±ⁿ φα Ωε∞∩εφσφ≥φεΘ εß·σΩ≥φεΘ ∞εΣσδΦ. ═α°σ ΦτδεµσφΦσ ε±φεΓ√Γασ≥± φα Γσ≡±ΦΦ ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans [1] ε≥ 25 Φ■δ 1997 πεΣα. ╚±∩εδⁿτ≤■≥± ≥αΩµσ φσΩε≥ε≡√σ Σ≡≤πΦσ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Φ Φ⌡ ∩≡εσΩ≥√ [2, 3, 4, 5].
╠√ ∩ετΓεδΦ∞ ±σßσ Ωε≡ε≥Ωε φα∩ε∞φΦ≥ⁿ ≈Φ≥α≥σδ ∞ φσΩε≥ε≡√σ ±ΓσΣσφΦ ε τ√Ωσ Java, Ωε≥ε≡√σ ∩εφαΣεß ≥± φα∞ Σδ ΣαδⁿφσΘ°σπε ΦτδεµσφΦ . ┴εδσσ ∩εδφεσ ε∩Φ±αφΦσ τ√Ωα Φ α±±ε÷ΦΦ≡εΓαφφεΘ ≥σ⌡φεδεπΦΦ ∞εµφε φαΘ≥Φ, φα∩≡Φ∞σ≡, Γ ±≥α≥ⁿσ [6].
Java - εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ τ√Ω. ┬ σπε ε±φεΓσ δσµΦ≥ ∩εφ ≥Φσ Ωδα±±α. ╩δα±± Γδ σ≥± °αßδεφε∞ Σδ ±ετΣαφΦ εß·σΩ≥εΓ; εφ ∞εµσ≥ ±εΣσ≡µα≥ⁿ Σαφφ√σ Φ ∞σ≥εΣ√. ╤≤∙σ±≥Γ≤■≥ ≡ατδΦ≈φ√σ ≡σµΦ∞√ Σε±≥≤∩α Ω ²δσ∞σφ≥α∞ Ωδα±±α - private, protected, public.
Java - ∩εδφε±≥ⁿ■ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ τ√Ω, ΩαµΣε∞≤ ∩εφ ≥Φ■ Ωε≥ε≡επε (Ωδα±±, εß·σΩ≥, ∞σ≥εΣ Φ ≥.∩.) ±εε≥Γσ≥±≥Γ≤σ≥ Ωδα±±, ∩εΣΣσ≡µΦΓα■∙ΦΘ ∩≡επ≡α∞∞φ≤■ εß≡αßε≥Ω≤ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ "∩εφ ≥ΦΘφ√⌡" εß·σΩ≥εΓ.
╩δα±±√ Γ τ√Ωσ Java εß·σΣΦφ ■≥± Γ ∩αΩσ≥√. ╩αµΣ√Θ ∩αΩσ≥ ε∩≡σΣσδ σ≥ ε≥Σσδⁿφεσ ∩≡ε±≥≡αφ±≥Γε Φ∞σφ. ┬±σ Ωδα±±√, Γ⌡εΣ ∙Φσ Γ εΣΦφ ∩αΩσ≥, Γδ ■≥± Σ≡≤µσ±≥Γσφφ√∞Φ ∩ε ε≥φε°σφΦ■ Σ≡≤π Ω Σ≡≤π≤, ≥ε σ±≥ⁿ Φ∞σ■≥ ΓταΦ∞φ√Θ Σε±≥≤∩ Ω ∩σ≡σ∞σφφ√∞ Φ ∞σ≥εΣα∞, σ±δΦ ∩≡ε≥ΦΓφεσ φσ επεΓε≡σφε Γφε ∩ε±≡σΣ±≥Γε∞ ±∩σ÷Φ⌠ΦΩα≥ε≡εΓ private ΦδΦ protected.
─δ εßετφα≈σφΦ φα±δσΣεΓαφΦ Φ±∩εδⁿτ≤σ≥± Ωδ■≈σΓεσ ±δεΓε extends. ╩δα±± Object - ²≥ε Ωε≡σφⁿ Σσ≡σΓα φα±δσΣεΓαφΦ . ╚∞σσ≥± ∩≡σΣε∩≡σΣσδσφφα Φσ≡α≡⌡Φ Ωδα±±εΓ, ε∩Φ±αφφα Γ ∩αΩσ≥σ java.lang.
┬ τ√Ωσ Java ε≥±≤≥±≥Γ≤σ≥ ∞φεµσ±≥Γσφφεσ φα±δσΣεΓαφΦσ, εΣφαΩε φαδΦ≈Φσ ∩εφ ≥Φ Φφ≥σ≡⌠σΘ±α ∩ετΓεδ σ≥ ±∞ π≈Φ≥ⁿ ²≥ε επ≡αφΦ≈σφΦσ. ╚φ≥σ≡⌠σΘ± ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ φαßε≡ ε∩Φ±αφΦΘ ∞σ≥εΣεΓ. ╩δα±±√ ∞επ≤≥ ≡σαδΦτεΓ√Γα≥ⁿ Φφ≥σ≡⌠σΘ±√. ▌≥ε≥ ⌠αΩ≥ εßετφα≈ασ≥± Ωδ■≈σΓ√∞ ±δεΓε∞ implements Γ ταπεδεΓΩσ Ωδα±±α.
╩δα±± Class Φ±∩εδⁿτ≤σ≥± Σδ ∩εδ≤≈σφΦ Γε Γ≡σ∞ Γ√∩εδφσφΦ Φφ⌠ε≡∞α÷ΦΦ ε "Ωδα±±εΓ√⌡" ±ΓεΘ±≥Γα⌡ εß·σΩ≥εΓ. ╥Φ∩Φ≈φ√σ ∞σ≥εΣ√ ²≥επε Ωδα±±α - forName (∩εδ≤≈σφΦσ εß·σΩ≥α Ωδα±±α Class ∩ε ≥σΩ±≥εΓε∞≤ Φ∞σφΦ), newInstance (∩ε≡εµΣσφΦσ φεΓεπε εß·σΩ≥α Σαφφεπε Ωδα±±α), getMethods (∩εδ≤≈σφΦσ ∞α±±ΦΓα εß·σΩ≥εΓ, ε∩Φ±√Γα■∙Φ⌡ public-∞σ≥εΣ√ Ωδα±±α, Γ ≥ε∞ ≈Φ±δσ ≤φα±δσΣεΓαφφ√σ).
Java-Ωδα±±√ ∞επ≤≥ ß√≥ⁿ αß±≥≡αΩ≥φ√∞Φ, ≥ε σ±≥ⁿ φσ Σε Ωεφ÷α ΩεφΩ≡σ≥ΦτΦ≡εΓαφφ√∞Φ. ▌≥ε ετφα≈ασ≥, ≈≥ε Γ Ωδα±±σ ε∩Φ±αφ√ ∞σ≥εΣ√, ε∩≡σΣσδσφΦ Ωε≥ε≡√⌡ ε≥±≤≥±≥Γ≤■≥. ╥αΩΦσ ∞σ≥εΣ√ (ΩαΩ Φ ±α∞ Ωδα±±) Σεδµφ√ ±φαßµα≥ⁿ± ε∩Φ±α≥σδσ∞ abstract Φ ΩεφΩ≡σ≥ΦτΦ≡εΓα≥ⁿ± Γ ∩≡εΦτΓεΣφ√⌡ Ωδα±±α⌡.
─δ εß≡αßε≥ΩΦ Φ±Ωδ■≈Φ≥σδⁿφ√⌡ ±Φ≥≤α÷ΦΘ, ΓετφΦΩα■∙Φ⌡ Γε Γ≡σ∞ Γ√∩εδφσφΦ ∩≡επ≡α∞∞√, Γ τ√Ωσ Java Φ±∩εδⁿτ≤σ≥± Ωεφ±≥≡≤Ω÷Φ try/catch/finally. ─δ ∩σ≡σΣα≈Φ Φφ⌠ε≡∞α÷ΦΦ εß Φ±Ωδ■≈Φ≥σδⁿφεΘ ±Φ≥≤α÷ΦΦ Φ±∩εδⁿτ≤■≥± εß·σΩ≥√ Ωδα±±εΓ - φα±δσΣφΦΩεΓ Ωδα±±α Throwable.
╠σ⌡αφΦτ∞ ∩ε≥εΩεΓ - εß τα≥σδⁿφα ≈σ≡≥α ±εΓ≡σ∞σφφ√⌡ ε∩σ≡α÷Φεφφ√⌡ ±≡σΣ. ┬ τ√Ωσ Java ∩ε≥εΩΦ ∩≡σΣ±≥αΓδσφ√ ∩ε±≡σΣ±≥Γε∞ Ωδα±±α Thread, Φφ≥σ≡⌠σΘ±α Runnable, ±∩σ÷Φ⌠ΦΩα≥ε≡α ∞σ≥εΣα synchronized Φ ∞σ≥εΣεΓ Ωδα±±α Object wait Φ notify.
Java-∩≡επ≡α∞∞√ ∩εΣ≡ατΣσδ ■≥± φα ΣΓα ΓΦΣα - ±α∞ε±≥ε ≥σδⁿφ√σ ∩≡ΦδεµσφΦ Φ α∩δσ≥√. ╧ε±δσΣφΦσ Γ√∩εδφ ■≥± Γ ±≡σΣσ Web-φαΓΦπα≥ε≡α Φ ∞επ≤≥ ∩ε±≥≤∩α≥ⁿ ∩ε ±σ≥Φ. ╧≡ΦδεµσφΦ Φ α∩δσ≥√ ±≤∙σ±≥Γσφφε ≡ατδΦ≈α■≥± ∩ε ∞σ≡α∞ ßστε∩α±φε±≥Φ, ∩≡ΦφΦ∞ασ∞√∞ Γ ∩≡ε÷σ±±σ Φ⌡ ≡αßε≥√ (α∩δσ≥√ Ωεφ≥≡εδΦ≡≤■≥± τφα≈Φ≥σδⁿφε µσ±≥≈σ).
Java-Ωε∞∩Φδ ≥ε≡ ≥≡αφ±δΦ≡≤σ≥ Φ±⌡εΣφ√σ ≥σΩ±≥√ ∩≡επ≡α∞∞ Γ ΩεΣ√ ΓΦ≡≥≤αδⁿφεΘ Java-∞α°Φφ√. ╩ε∞∩Φδ ≥ε≡ ∩ε≡εµΣασ≥ ⌠αΘδ√ Ωδα±±εΓ, ±εΣσ≡µα∙Φσ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞√σ ΩεΣ√ Φ Σε∩εδφΦ≥σδⁿφ≤■ Φφ⌠ε≡∞α÷Φ■, Φ±∩εδⁿτ≤σ∞≤■ φα ²≥α∩σ Γ√∩εδφσφΦ . ╤∩σ÷Φ⌠ΦΩα÷ΦΦ Java-∞α°Φφ√ εßσ±∩σ≈ΦΓα■≥ φσταΓΦ±Φ∞ε±≥ⁿ ±Ωε∞∩ΦδΦ≡εΓαφφ√⌡ ∩≡επ≡α∞∞ ε≥ ∩εΣΣσ≡µΦΓα■∙σΘ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞√.
╤≡σΣα JavaBeans Γδ σ≥± φαΣ±≥≡εΘΩεΘ φαΣ ±≥αφΣα≡≥φεΘ Java-≥σ⌡φεδεπΦσΘ. ╬φα φα±δσΣ≤σ≥ ∩εφ ≥Φ Φ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Java, ≥αΩΦσ ΩαΩ εß·σΩ≥φα ε≡Φσφ≥Φ≡εΓαφφε±≥ⁿ, ∞φεπε∩ε≥εΩεΓε±≥ⁿ, Φ±∩εδⁿτεΓαφΦσ ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√, φσταΓΦ±Φ∞ε±≥ⁿ ε≥ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞√, Φφ⌠ε≡∞α÷Φεφφα ßστε∩α±φε±≥ⁿ Φ ≥.∩. ┬ JavaBeans φσ≥ φΦ≈σπε, φσ Γ√≡ατΦ∞επε Γ ≥σ≡∞Φφα⌡ τ√Ωα Java.
╬±φεΓεΘ ±≡σΣ√ JavaBeans Γδ σ≥± Ωε∞∩εφσφ≥φα εß·σΩ≥φα ∞εΣσδⁿ, ∩≡σΣ±≥αΓδ ■∙α ±εßεΘ ±εΓεΩ≤∩φε±≥ⁿ α≡⌡Φ≥σΩ≥≤≡√ Φ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞φ√⌡ Φφ≥σ≡⌠σΘ±εΓ. └≡⌡Φ≥σΩ≥≤≡≤ εß≡ατ≤■≥ ε±φεΓφ√σ ∩εφ ≥Φ Φ ±Γ τΦ ∞σµΣ≤ φΦ∞Φ. ╧≡ΦΩδαΣφ√σ ∩≡επ≡α∞∞φ√σ Φφ≥σ≡⌠σΘ±√ ⌡α≡αΩ≥σ≡Φτ≤■≥ φαßε≡ ±σ≡ΓΦ±εΓ, ∩≡σΣε±≥αΓδ σ∞√⌡ ²δσ∞σφ≥α∞Φ ±≡σΣ√. ╬φΦ ε∩Φ±√Γα■≥± Γ ≥σ≡∞Φφα⌡ ±Φφ≥αΩ±Φ±α Φ ±σ∞αφ≥ΦΩΦ Java-Ωδα±±εΓ Φ Φφ≥σ≡⌠σΘ±εΓ.
╩ ≈Φ±δ≤ ε±φεΓφ√⌡ ∩εφ ≥ΦΘ α≡⌡Φ≥σΩ≥≤≡√ JavaBeans ε≥φε± ≥± Ωε∞∩εφσφ≥√ Φ Ωεφ≥σΘφσ≡√. ╩εφ≥σΘφσ≡√ ∞επ≤≥ ΓΩδ■≈α≥ⁿ Γ ±σß ∞φεµσ±≥Γε Ωε∞∩εφσφ≥εΓ, εß≡ατ≤ εß∙ΦΘ Ωεφ≥σΩ±≥ ΓταΦ∞εΣσΘ±≥ΓΦ ± Σ≡≤πΦ∞Φ Ωε∞∩εφσφ≥α∞Φ Φ ± εΩ≡≤µσφΦσ∞. ╩εφ≥σΘφσ≡√ ∞επ≤≥ Γ√±≥≤∩α≥ⁿ Γ ≡εδΦ Ωε∞∩εφσφ≥εΓ Σ≡≤πΦ⌡ Ωεφ≥σΘφσ≡εΓ.
═σ⌠ε≡∞αδⁿφε Ωε∞∩εφσφ≥ ("Ωε⌠σΘφεσ τσ≡φε" - Java Bean) ∞εµφε ε∩≡σΣσδΦ≥ⁿ ΩαΩ ∞φεπεΩ≡α≥φε Φ±∩εδⁿτ≤σ∞√Θ ∩≡επ≡α∞∞φ√Θ εß·σΩ≥, Σε∩≤±Ωα■∙ΦΘ εß≡αßε≥Ω≤ Γ π≡α⌠Φ≈σ±Ωε∞ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ Φ ±ε⌡≡αφσφΦσ Γ ΣεδπεΓ≡σ∞σφφεΘ ∩α∞ ≥Φ. ╤ ≡σαδΦτα÷ΦεφφεΘ ≥ε≈ΩΦ τ≡σφΦ Ωε∞∩εφσφ≥ - ²≥ε Java-Ωδα±± Φ, Γετ∞εµφε, φαßε≡ α±±ε÷ΦΦ≡εΓαφφ√⌡ Σε∩εδφΦ≥σδⁿφ√⌡ Ωδα±±εΓ.
╩αµΣ√Θ Ωε∞∩εφσφ≥ ∩≡σΣε±≥αΓδ σ≥ φαßε≡ ∞σ≥εΣεΓ, Σε±≥≤∩φ√⌡ Σδ Γ√τεΓα Φτ Σ≡≤πΦ⌡ Ωε∞∩εφσφ≥εΓ Φ/ΦδΦ Ωεφ≥σΘφσ≡εΓ.
╩ε∞∩εφσφ≥√ ∞επ≤≥ εßδαΣα≥ⁿ ±ΓεΘ±≥Γα∞Φ. ╤εΓεΩ≤∩φε±≥ⁿ τφα≈σφΦΘ ±ΓεΘ±≥Γ ε∩≡σΣσδ σ≥ ±ε±≥ε φΦσ Ωε∞∩εφσφ≥α. ╤ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ Σε±≥≤∩φ√ φα ≈≥σφΦσ Φ/ΦδΦ τα∩Φ±ⁿ ∩ε±≡σΣ±≥Γε∞ ∞σ≥εΣεΓ Γ√ßε≡ΩΦ Φ ≤±≥αφεΓΩΦ.
╩ε∞∩εφσφ≥√ ∞επ≤≥ ∩ε≡εµΣα≥ⁿ ±εß√≥Φ (ß√≥ⁿ Φ±≥ε≈φΦΩα∞Φ ±εß√≥ΦΘ), ΦτΓσ∙α ε φΦ⌡ Σ≡≤πΦσ Ωε∞∩εφσφ≥√, τα≡σπΦ±≥≡Φ≡εΓαΓ°Φσ± Γ Ωα≈σ±≥Γσ ∩εΣ∩Φ±≈ΦΩεΓ. ╚τΓσ∙σφΦσ (φατ√Γασ∞εσ ≥αΩµσ ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥Φ ) ταΩδ■≈ασ≥± Γ Γ√τεΓσ ε∩≡σΣσδσφφεπε ∞σ≥εΣα εß·σΩ≥εΓ-∩εΣ∩Φ±≈ΦΩεΓ.
╥Φ∩Φ≈φ√∞ ∩≡Φ∞σ≡ε∞ ±εß√≥Φ Γδ σ≥± Φτ∞σφσφΦσ ±ΓεΘ±≥Γ Ωε∞∩εφσφ≥α. ┬ εß∙σ∞ ±δ≤≈ασ Ωε∞∩εφσφ≥ ∞εµσ≥ ∩≡σΣε±≥αΓδ ≥ⁿ ∩εΣ∩Φ±Ω≤ φα ∩εδ≤≈σφΦσ Φφ⌠ε≡∞α÷ΦΦ εß Φτ∞σφσφΦΦ Φ φα ∩≡αΓε τα∩≡σ∙α≥ⁿ Φτ∞σφσφΦσ.
╠σ≥εΣ√, ±ΓεΘ±≥Γα Φ ±εß√≥Φ εß≡ατ≤■≥ φαßε≡ α⌠Φ°Φ≡≤σ∞√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥α, ≥ε σ±≥ⁿ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ, Σε±≥≤∩φ√⌡ Φφ±≥≡≤∞σφ≥αδⁿφε∞≤ εΩ≡≤µσφΦ■ Φ Σ≡≤πΦ∞ Ωε∞∩εφσφ≥α∞. ▌≥ε≥ φαßε≡ ∞εµσ≥ ß√≥ⁿ Γ√ ±φσφ ∩ε±≡σΣ±≥Γε∞ ∞σ⌡αφΦτ∞α Φφ≥≡ε±∩σΩ÷ΦΦ.
╤ε±≥ε φΦσ Ωε∞∩εφσφ≥εΓ ∞εµσ≥ ß√≥ⁿ ±ε⌡≡αφσφε Γ ΣεδπεΓ≡σ∞σφφεΘ ∩α∞ ≥Φ. ═αδΦ≈Φσ ∞σ≥εΣεΓ Σδ ∩εΣεßφεπε ±ε⌡≡αφσφΦ Γ√Σσδ σ≥ Ωε∞∩εφσφ≥√ JavaBeans ±≡σΣΦ ∩≡εΦτΓεδⁿφ√⌡ Java-Ωδα±±εΓ.
╩ε∞∩εφσφ≥√ JavaBeans ∞επ≤≥ ≤∩αΩεΓ√Γα≥ⁿ± Σδ ßεδσσ ²⌠⌠σΩ≥ΦΓφεπε ⌡≡αφσφΦ Φ ∩σ≡σΣα≈Φ ∩ε ±σ≥Φ. ╬∩Φ±αφΦσ ±εε≥Γσ≥±≥Γ≤■∙σπε ⌠ε≡∞α≥α Γδ σ≥± ≈α±≥ⁿ■ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans.
╞Φτφσφφ√Θ ÷ΦΩδ Ωε∞∩εφσφ≥εΓ JavaBeans ∞εµφε ∩εΣ≡ατΣσδΦ≥ⁿ φα ≥≡Φ ²≥α∩α:
╨ατ≡αßε≥Ωα Φ ≡σαδΦτα÷Φ Ωε∞∩εφσφ≥εΓ JavaBeans ∩ε ±≤≥Φ φσ ε≥δΦ≈ασ≥± ε≥ ±ετΣαφΦ ∩≡εΦτΓεδⁿφ√⌡ Java-εß·σΩ≥εΓ, ⌡ε≥ Φ ∞εµσ≥ ΓΩδ■≈α≥ⁿ ≡σαδΦτα÷Φ■ ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ∞σ≥εΣεΓ.
╤ßε≡Ωα ∩≡ΦδεµσφΦΘ Γ√∩εδφ σ≥± , ΩαΩ ∩≡αΓΦδε, Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ, ∩ετΓεδ ■∙σ∞ ∩≡εαφαδΦτΦ≡εΓα≥ⁿ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Ωε∞∩εφσφ≥εΓ, φα±≥≡εΦ≥ⁿ τφα≈σφΦ ±ΓεΘ±≥Γ, τα≡σπΦ±≥≡Φ≡εΓα≥ⁿ ∩εΣ∩Φ±Ω≤ φα ∩εδ≤≈σφΦσ ±εß√≥ΦΘ, ε≡παφΦτεΓαΓ ≥σ∞ ±α∞√∞ ΓταΦ∞εΣσΘ±≥ΓΦσ Ωε∞∩εφσφ≥εΓ. ╨ατ≡αßε≥≈ΦΩ Ωε∞∩εφσφ≥α ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ ±∩σ÷Φαδⁿφ√σ ∞σ≥εΣ√ Σδ Φ±∩εδⁿτεΓαφΦ Φ±Ωδ■≈Φ≥σδⁿφε Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ (φα∩≡Φ∞σ≡, ≡σΣαΩ≥ε≡ ±ΓεΘ±≥Γ).
╩ε∞∩εφσφ≥√ ΓταΦ∞εΣσΘ±≥Γ≤■≥ ∞σµΣ≤ ±εßεΘ Φ ± Φφ±≥≡≤∞σφ≥αδⁿφ√∞ εΩ≡≤µσφΦσ∞. ┬ταΦ∞εΣσΘ±≥ΓΦσ ε±≤∙σ±≥Γδ σ≥± ΣΓ≤∞ ±∩ε±εßα∞Φ - Γ√τεΓε∞ ∞σ≥εΣεΓ Φ ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥ΦΘ.
╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ε∩Φ±√Γα■≥ ≥εδⁿΩε δεΩαδⁿφεσ ΓταΦ∞εΣσΘ±≥ΓΦσ Ωε∞∩εφσφ≥εΓ, ε±≤∙σ±≥Γδ σ∞εσ Γ ∩≡σΣσδα⌡ εΣφεΘ ΓΦ≡≥≤αδⁿφεΘ Java-∞α°Φφ√. (═α∩ε∞φΦ∞, Γ∩≡ε≈σ∞, ≈≥ε Java-α∩δσ≥√ ≡α±±≈Φ≥αφ√ φα ∩σ≡σΣα≈≤ ∩ε ±σ≥Φ, ≥αΩ ≈≥ε Γετ∞εµφε ±εß≡α≥ⁿ ∩≡ΦδεµσφΦσ Φτ Ωε∞∩εφσφ≥εΓ, ∩σ≡Γεφα≈αδⁿφε ≡α±∩≡σΣσδσφφ√⌡ ∩ε ±σ≥Φ.) ╙Σαδσφφ√σ εß·σΩ≥√ ∞επ≤≥ ±Γ τ√Γα≥ⁿ± ∩ε ∩≡ε≥εΩεδα∞ α≡⌡Φ≥σΩ≥≤≡√ CORBA [7], ± ∩ε∞ε∙ⁿ■ ≤Σαδσφφεπε Γ√τεΓα ∞σ≥εΣεΓ (Remote Method Invocation - RMI) ΦδΦ Φφ√∞Φ ±∩ε±εßα∞Φ, φσ ε≥φε± ∙Φ∞Φ± Ω εßδα±≥Φ ΣσΘ±≥ΓΦ ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans (≡Φ±. 1).
─αδσσ ∞√ ∩εΣ≡εßφε ≡α±±∞ε≥≡Φ∞, ΩαΩ ε∩Φ±αφφ√σ ε±φεΓφ√σ ∩εφ ≥Φ ≡σαδΦτ≤■≥± Γ ±≡σΣσ JavaBeans.
┬ ±≡σΣσ JavaBeans ±≤∙σ±≥Γ≤■≥ ±∩ε±εß√ ΣΦφα∞Φ≈σ±Ωεπε (≥ε σ±≥ⁿ φσ ∩ε Φ±⌡εΣφ√∞ ≥σΩ±≥α∞) Γ√ ±φσφΦ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥εΓ. ╩ ≥αΩΦ∞ ⌡α≡αΩ≥σ≡Φ±≥ΦΩα∞ ε≥φε± ≥± :
╧εΣεßφεσ Γ√ ±φσφΦσ Γ ≥σ≡∞ΦφεδεπΦΦ JavaBeans φατ√Γασ≥± Φφ≥≡ε±∩σΩ÷ΦσΘ*.
╚φ≥≡ε±∩σΩ÷Φ Φ±∩εδⁿτ≤σ≥± ∩≡σµΣσ Γ±σπε φα ²≥α∩σ ≡ατ≡αßε≥ΩΦ, Γ ≡α∞Ωα⌡ Φφ±≥≡≤∞σφ≥αδⁿφεπε εΩ≡≤µσφΦ , ∩ετΓεδ ≤ΓΦΣσ≥ⁿ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Φ ± Φ⌡ ∩ε∞ε∙ⁿ■ φα±≥≡εΦ≥ⁿ Ωε∞∩εφσφ≥ Φ ±Γ τα≥ⁿ σπε ± Σ≡≤πΦ∞Φ ²δσ∞σφ≥α∞Φ ∩≡ΦδεµσφΦ .
╧≡Φφ÷Φ∩Φαδⁿφα Γετ∞εµφε±≥ⁿ Φφ≥≡ε±∩σΩ÷ΦΦ ß√δα Φτφα≈αδⁿφε ταδεµσφα Γ Java-≥σ⌡φεδεπΦΦ. ╘αΘδ√ Ωδα±±εΓ ±εΣσ≡µα≥ Σε±≥α≥ε≈φε Φφ⌠ε≡∞α÷ΦΦ Σδ Γ√ ±φσφΦ Γ±σ⌡ φσεß⌡εΣΦ∞√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ εß·σΩ≥εΓ. ┬ε±∩εδⁿτεΓα≥ⁿ± ²≥εΘ Φφ⌠ε≡∞α÷ΦσΘ ∞εµφε ± ∩ε∞ε∙ⁿ■ Ωδα±±α Class, ∩αΩσ≥α java.lang.reflect Φ φσΩε≥ε≡√⌡ Σ≡≤πΦ⌡ ±≡σΣ±≥Γ, Ωε≥ε≡√σ ß≤Σ≤≥ ≡α±±∞ε≥≡σφ√ Σαδσσ. ╫≥εß√ ε÷σφΦ≥ⁿ ∩εδφε≥≤ ±ΓσΣσφΦΘ, ∩≡σΣε±≥αΓδ σ∞√⌡ Java-±≡σΣεΘ, ÷σδσ±εεß≡ατφε ≡α±±∞ε≥≡σ≥ⁿ ⌠≡απ∞σφ≥√ ε∩Φ±αφΦΘ Ωδα±±α Class (δΦ±≥Φφπ 1), α ≥αΩµσ Ωδα±±α Method Φτ ∩αΩσ≥α java.lang.reflect (δΦ±≥Φφπ 2).
╥αΩΦ∞ εß≡ατε∞, ≡ατ≡αßε≥≈ΦΩΦ Φ ∩εδⁿτεΓα≥σδΦ Ωε∞∩εφσφ≥εΓ ΓσΣ≤≥ ≡αßε≥≤ Φ±Ωδ■≈Φ≥σδⁿφε Java-±≡σΣ±≥Γα∞Φ. ┴εδσσ ≥επε, Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ≡ατ≡αßε≥≈ΦΩ≤, ≈≥εß√ ±Σσδα≥ⁿ Ωδα±± ∩εδφε÷σφφ√∞ ²δσ∞σφ≥ε∞ ±≡σΣ√ JavaBeans, Σε±≥α≥ε≈φε ∩≡ΦΣσ≡µΦΓα≥ⁿ± ε∩≡σΣσδσφφεΘ ΣΦ±÷Φ∩δΦφ√ ε∩Φ±αφΦ ∞σ≥εΣεΓ, φσ ∩≡Φßσπα Ω Γφε∞≤ α⌠Φ°Φ≡εΓαφΦ■ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ. ═α∩≡Φ∞σ≡, ∩ε ≤∞εδ≈αφΦ■ Γ ≈Φ±δε α⌠Φ°Φ≡≤σ∞√⌡ ∩ε∩αΣα■≥ Γ±σ public-∞σ≥εΣ√ Ωε∞∩εφσφ≥α.
╤∩ε±εßφε±≥ⁿ Ωε∞∩εφσφ≥α ±≡σΣ√ JavaBeans ∩ε ±≤∙σ±≥Γ≤ ßστ Σε∩εδφΦ≥σδⁿφ√⌡ ≤±ΦδΦΘ ±ε ±≥ε≡εφ√ ≡ατ≡αßε≥≈ΦΩα ∩≡σΣε±≥αΓδ ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ±Γεσ∞ Φφ≥σ≡⌠σΘ±σ φατ√Γασ≥± ≡σ⌠δσΩ±ΦσΘ. ╨σ⌠δσΩ±Φ ßατΦ≡≤σ≥± φα ΣΦ±÷Φ∩δΦφσ ε∩≡σΣσδσφΦ ∞σ≥εΣεΓ. ▌≥α ΣΦ±÷Φ∩δΦφα ±ε±≥εΦ≥ Γ ±δσΣεΓαφΦΦ ταΣαφφ√∞ °αßδεφα∞ ∩≡Φ Γ√ßε≡σ Φ∞σφ ∞σ≥εΣεΓ, α ≥αΩµσ ≥Φ∩εΓ ⌠ε≡∞αδⁿφ√⌡ ∩α≡α∞σ≥≡εΓ Φ ≡στ≤δⁿ≥α≥εΓ. ─αδσσ, ∩ε ⌡εΣ≤ ΦτδεµσφΦ , ∞√ ß≤Σσ∞ ∩≡ΦΓεΣΦ≥ⁿ ²≥Φ °αßδεφ√.
╤≡σΣα JavaBeans ∩≡εσΩ≥Φ≡εΓαδα±ⁿ ≥αΩΦ∞ εß≡ατε∞, ≈≥εß√ Γ ≥Φ∩Φ≈φ√⌡ ±δ≤≈α ⌡ Φ ΣσΘ±≥ΓΦ ≡ατ≡αßε≥≈ΦΩεΓ, Φ Γφ≤≥≡σφφ ≡σαδΦτα÷Φ ε±≥αΓαδΦ±ⁿ ∩≡ε±≥√∞Φ; Σε∩εδφΦ≥σδⁿφ√σ ≤±ΦδΦ Φ ≤≥ µσδσφΦσ Ωε∞∩εφσφ≥εΓ Σεδµφ√ ≥≡σßεΓα≥ⁿ± ≥εδⁿΩε ≥επΣα, ΩεπΣα ²≥επε µσδασ≥ ±α∞ ∩≡επ≡α∞∞Φ±≥. ┬ Σαφφε∞ ±δ≤≈ασ, σ±δΦ ≡ατ≡αßε≥≈ΦΩ≤ φσ ⌡Γα≥ασ≥ Γ√≡ατΦ≥σδⁿφεΘ ±Φδ√ ≡σ⌠δσΩ±ΦΦ, εφ ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ Φφ≥σ≡⌠σΘ± BeanInfo, Γφ√∞ εß≡ατε∞ ε∩Φ±√Γα■∙ΦΘ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Ωε∞∩εφσφ≥α.
╚φ≥σ≡⌠σΘ± BeanInfo ±εΣσ≡µΦ≥ ∞σ≥εΣ√, ∩ετΓεδ ■∙Φσ ∩εδ≤≈Φ≥ⁿ εß·σΩ≥√-ε∩Φ±α≥σδΦ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥α. ┬ ≈Φ±δε ²≥Φ⌡ ∞σ≥εΣεΓ Γ⌡εΣ ≥ getBeanDescriptor, getMethodDescriptors Φ ≥.Σ. (±∞. δΦ±≥ΦφπΦ 3 Φ 4). ╧ε±ΩεδⁿΩ≤ ≡σαδΦτα÷Φ ∞σ≥εΣεΓ ∞εµσ≥ ß√≥ⁿ ±Ωεδⁿ ≤πεΣφε Φτε∙≡σφφεΘ, ≤ ≡ατ≡αßε≥≈ΦΩα ∩ε Γδ σ≥± Γετ∞εµφε±≥ⁿ α±±ε÷ΦΦ≡εΓα≥ⁿ ± Ωε∞∩εφσφ≥ε∞ ≡σ±≤≡±√ (φα∩≡Φ∞σ≡, ⌠αΘδ√), ±εΣσ≡µα∙Φσ ε∩Φ±α≥σδⁿφ≤■ Φφ⌠ε≡∞α÷Φ■. ╩δα±± SimpleBeanInfo, Γ⌡εΣ ∙ΦΘ Γ ∩αΩσ≥ java.beans, Γδ σ≥± "∩≤±≥εΘ" ≡σαδΦτα÷ΦσΘ Φφ≥σ≡⌠σΘ±α BeanInfo, ε≥≡Φ÷α■∙σΘ φαδΦ≈Φσ ≤ Ωε∞∩εφσφ≥α ΩαΩΦ⌡-δΦßε α⌠Φ°Φ≡≤σ∞√⌡ ∞σ≥εΣεΓ, ±ΓεΘ±≥Γ Φ ±εß√≥ΦΘ. ╨ατ≡αßε≥≈ΦΩ ∞εµσ≥ ±ετΣα≥ⁿ ∩≡εΦτΓεΣφ√Θ Ωδα±± Φ Γ√ßε≡ε≈φε ∩σ≡σε∩≡σΣσδΦ≥ⁿ ∞σ≥εΣ√ Ωδα±±α SimpleBeanInfo.
╩δα±± Introspector ≡σαδΦτ≤σ≥ ∩≡ε÷σ±± Φφ≥≡ε±∩σΩ÷ΦΦ. ╧ε ταΣαφφε∞≤ Ωε∞∩εφσφ≥≤ εφ Ωεφ±≥≡≤Φ≡≤σ≥ εß·σΩ≥ Ωδα±±α BeanInfo (±∞. δΦ±≥Φφπ 5). ─σΘ±≥Γ≤σ≥ Introspector ±δσΣ≤■∙Φ∞ εß≡ατε∞. ╤φα≈αδα εφ ∩√≥ασ≥± φαΘ≥Φ Ωδα±±, Φ∞ Ωε≥ε≡επε ∩εδ≤≈ασ≥± Φτ Φ∞σφΦ Ωδα±±α Ωε∞∩εφσφ≥α ∩≡Φ∩Φ±√ΓαφΦσ∞ ≥σΩ±≥α "BeanInfo". ┼±δΦ ≥αΩεΘ Ωδα±± φα⌡εΣΦ≥± , α σπε ∞σ≥εΣ√ ΓετΓ≡α∙α■≥ φσ∩≤±≥√σ Σσ±Ω≡Φ∩≥ε≡√, ±εε≥Γσ≥±≥Γ≤■∙α Φφ⌠ε≡∞α÷Φ Φ±∩εδⁿτ≤σ≥± ∩≡Φ Ωεφ±≥≡≤Φ≡εΓαφΦΦ ≡στ≤δⁿ≥Φ≡≤■∙σπε εß·σΩ≥α BeanInfo. ┬ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ Introspector ∩εδαπασ≥± φα ∞σ⌡αφΦτ∞ ≡σ⌠δσΩ±ΦΦ Φ αφαδΦτΦ≡≤σ≥ Φ∞σφα Φ ≥Φ∩√ ∩α≡α∞σ≥≡εΓ public-∞σ≥εΣεΓ Ωδα±±α Ωε∞∩εφσφ≥α Φ σπε ∩≡σΣ°σ±≥ΓσφφΦΩεΓ.
╒α≡αΩ≥σ≡φα ε±εßσφφε±≥ⁿ Java-≥σ⌡φεδεπΦΦ ±ε±≥εΦ≥ Γ φαδΦ≈ΦΦ ±≥≡εΘφεΘ ∞εΣσδΦ ßστε∩α±φε±≥Φ. ╧≡Φ∞σφΦ≥σδⁿφε Ω Φφ≥≡ε±∩σΩ÷ΦΦ ΣσΘ±≥Γ≤■≥ ΣΓα τα∙Φ≥φ√⌡ ≡≤ßσµα:
╩≡ε∞σ ≥επε, α∩δσ≥√ ∩εΣΓσ≡πα■≥± Σε∩εδφΦ≥σδⁿφε∞≤ Ωεφ≥≡εδ■.
─σ≥αδⁿφ√Θ αφαδΦτ ∞εΣσδΦ ßστε∩α±φε±≥Φ Java Γ√⌡εΣΦ≥ τα ≡α∞ΩΦ ΣαφφεΘ ±≥α≥ⁿΦ. ╟Σσ±ⁿ ∞√ ε≥∞σ≥Φ∞ δΦ°ⁿ, ≈≥ε Ωε∞∩εφσφ≥φα εß·σΩ≥φα ±≡σΣα φσ ∩≡ΦΓφε±Φ≥ ΩαΩΦ⌡-δΦßε φεΓ√⌡, ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ≤π≡ετ, ∩ε±ΩεδⁿΩ≤ εφα ∩εδφε±≥ⁿ■ ε∩Φ±√Γασ≥± Γ ≥σ≡∞Φφα⌡ τ√Ωα Java.
╤επδα±φε ±∩σ÷Φ⌠ΦΩα÷Φ ∞ JavaBeans, ≤ ΩαµΣεπε ±εß√≥Φ σ±≥ⁿ Φ±≥ε≈φΦΩ Φ, ß√≥ⁿ ∞εµσ≥, εΣΦφ ΦδΦ φσ±ΩεδⁿΩε ∩εΣ∩Φ±≈ΦΩεΓ (∩εδ≤≈α≥σδσΘ).
╚±≥ε≈φΦΩ εß ταφ:
┬ ±Γε■ ε≈σ≡σΣⁿ, ∩εΣ∩Φ±≈ΦΩ Σεδµσφ ∩≡σΣ∩≡Φφ ≥ⁿ ±δσΣ≤■∙Φσ ΣσΘ±≥ΓΦ :
╨α±±∞ε≥≡Φ∞ ∩σ≡σ≈Φ±δσφφ√σ °απΦ ßεδσσ ∩εΣ≡εßφε.
╚±≥ε≈φΦΩ ±εß√≥Φ ∩ε ±Γεσ∞≤ Γ√ßε≡≤ φατφα≈ασ≥ Φ∞ ∞σ≥εΣα, Γ√τ√Γασ∞επε Γ Ωε∞∩εφσφ≥α⌡-∩εΣ∩Φ±≈ΦΩα⌡ ∩≡Φ ≡α±∩≡ε±≥≡αφσφΦΦ ±εß√≥Φ . ╫≥εß√ ±Σσδα≥ⁿ Γετ∞εµφεΘ αΓ≥ε∞α≥Φ≈σ±Ω≤■ Φφ≥≡ε±∩σΩ÷Φ■ Ωε∞∩εφσφ≥εΓ φα ∩≡σΣ∞σ≥ ≡α±∩≡ε±≥≡αφ σ∞√⌡ Φ∞Φ ±εß√≥ΦΘ (≥ε σ±≥ⁿ Σδ ∩εΣΣσ≡µΩΦ ≡σ⌠δσΩ±ΦΦ), Σαφφ√Θ ∞σ≥εΣ ε∩Φ±√Γασ≥± Γ ≡α±°Φ≡σφΦΦ ∩≤±≥επε Φφ≥σ≡⌠σΘ±α java.util.EventListener, Φπ≡α■∙σπε ≡εδⁿ ²≥ΦΩσ≥ΩΦ. ╧≡Φ∞σ≡ ≡α±°Φ≡σφΦ ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 6.
╧ε ±επδα°σφΦ■, ε∩ ≥ⁿ-≥αΩΦ φα∩≡αΓδσφφε∞≤ φα ∩εΣΣσ≡µΩ≤ ≡σ⌠δσΩ±ΦΦ, Φ∞ Φφ≥σ≡⌠σΘ±α-≡α±°Φ≡σφΦ Σεδµφε εΩαφ≈ΦΓα≥ⁿ± ÷σ∩ε≈ΩεΘ ±Φ∞ΓεδεΓ "Listener".
┼±δΦ Φ±≥ε≈φΦΩ µσδασ≥ ≡α±∩≡ε±≥≡αφ ≥ⁿ φσ±ΩεδⁿΩε ≡ατδΦ≈φ√⌡ ±εß√≥ΦΘ, Σε∩≤±Ωασ≥± ε∩Φ±αφΦσ Γ εΣφε∞ Φφ≥σ≡⌠σΘ±σ ±εε≥Γσ≥±≥Γ≤■∙σπε ≈Φ±δα ∞σ≥εΣεΓ Φ⌡ εß≡αßε≥ΩΦ.
╠σ≥εΣ εß≡αßε≥ΩΦ ±εß√≥Φ Σεδµσφ Φ∞σ≥ⁿ εΣΦφ α≡π≤∞σφ≥, Ωε≥ε≡√∞ Γδ σ≥± ≥αΩ φατ√Γασ∞√Θ ±εß√≥ΦΘφ√Θ εß·σΩ≥ - ∩≡σσ∞φΦΩ Ωδα±±α java.util. EventObject. ╧ε±≡σΣ±≥Γε∞ ²≥επε εß·σΩ≥α ∩εΣ∩Φ±≈ΦΩ≤ ∩σ≡σΣασ≥± Φφ⌠ε≡∞α÷Φ εß Φ±≥ε≈φΦΩσ Φ Σ≡≤πΦσ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ ±εß√≥Φ . ╬∩≡σΣσδσφΦσ Ωδα±±α EventObject ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 7. ╦Φ±≥Φφπ 8 ±εΣσ≡µΦ≥ Γετ∞εµφεσ ε∩Φ±αφΦσ Ωδα±±α KeyPressedEvent (εΩεφ≈αφΦσ "Event" - σ∙σ εΣφε ≥≡σßεΓαφΦσ ≡σ⌠δσΩ±ΦΦ).
╨σαδΦτα÷Φ ∞σ≥εΣεΓ ≡σπΦ±≥≡α÷ΦΦ ∩εΣ∩Φ±≈ΦΩεΓ, αφφ≤δΦ≡εΓαφΦ ≡σπΦ±≥≡α÷ΦΦ, α ≥αΩµσ ±εß±≥Γσφφε ≡α±∩≡ε±≥≡αφσφΦ ±εß√≥Φ ∞εµσ≥ ß√≥ⁿ Γ√∩εδφσφα ±∩ε±εßε∞, ∩≡ΦΓσΣσφφ√∞ φα δΦ±≥Φφπσ 9. ╬≥∞σ≥Φ∞, ≈≥ε ∩≡Φ ≡α±∩≡ε±≥≡αφσφΦΦ ±εß√≥Φ Γ√τεΓ ∞σ≥εΣεΓ ∩εΣ∩Φ±≈ΦΩεΓ ∩≡εΦτΓεΣΦ≥± ±Φφ⌡≡εφφ√∞ εß≡ατε∞, Γ ≡α∞Ωα⌡ ∩ε≥εΩα Φ±≥ε≈φΦΩα ±εß√≥Φ .
╬ß≡α≥Φ∞ ΓφΦ∞αφΦσ φα ΣΓα α±∩σΩ≥α ∩≡επ≡α∞∞φεπε ≥σΩ±≥α, ∩≡ΦΓσΣσφφεπε φα δΦ±≥Φφπσ 9. ┬ε-∩σ≡Γ√⌡, Γ Φ±≥ε≈φΦΩσ φσεß⌡εΣΦ∞ε εßσ±∩σ≈Φ≥ⁿ ßστε∩α±φε±≥ⁿ ≡αßε≥√ Γ ∞φεπε∩ε≥εΩεΓεΘ ±≡σΣσ. ╠σ≥εΣ√ add/remove Γ√∩εδφ ■≥± Γ ≡α∞Ωα⌡ ∩ε≥εΩεΓ ∩εΣ∩Φ±≈ΦΩεΓ, ∩ε²≥ε∞≤ εφΦ φ≤µΣα■≥± Γ ±Φφ⌡≡εφΦτα÷ΦΦ. ┬ ∞σ≥εΣσ fire ≥αΩµσ ±δσΣ≤σ≥ ≤≈Φ≥√Γα≥ⁿ Γετ∞εµφε±≥ⁿ ≡σπΦ±≥≡α÷Φεφφ√⌡ ΣσΘ±≥ΓΦΘ ∩α≡αδδσδⁿφε ± ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥Φ . ╬≥±■Σα ≥≡Φ Γ⌡εµΣσφΦ Ωδ■≈σΓεπε ±δεΓα synchronized.
┬ε-Γ≥ε≡√⌡, ≡σπΦ±≥≡α÷Φεφφ√σ ∞σ≥εΣ√ Σεδµφ√ ∩εΣΣσ≡µΦΓα≥ⁿ ≡σ⌠δσΩ±Φ■ Φ ε∩≡σΣσδ ≥ⁿ± ∩ε ±δσΣ≤■∙Φ∞ °αßδεφα∞:
public void add<Φ∞ Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > (<Φ∞ Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > ∩εΣ∩Φ±≈ΦΩ); public void remove<Φ∞ Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > (<Φ∞ Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > ∩εΣ∩Φ±≈ΦΩ);
╬∩≡σΣσδσφΦσ ∞σ≥εΣα fire - Γφ≤≥≡σφφσσ Σσδε Φ±≥ε≈φΦΩα ±εß√≥Φ .
╨σαδΦτα÷Φ Φφ≥σ≡⌠σΘ±α ±εß√≥Φ - ε±φεΓφεσ ΣσΘ±≥ΓΦσ, Γ√∩εδφ σ∞εσ ∩εΣ∩Φ±≈ΦΩε∞. ┼πε ±εΣσ≡µα≥σδⁿφα ±≥ε≡εφα ταΓΦ±Φ≥ ε≥ ±∩σ÷Φ⌠ΦΩΦ ∩εΣ∩Φ±≈ΦΩα. ╫Φ±≥ε ≥σ⌡φΦ≈σ±ΩΦσ ∞ε∞σφ≥√ ε≥≡αµσφ√ φα δΦ±≥Φφπσ 10.
╨σπΦ±≥≡α÷Φ ∩εΣ∩Φ±ΩΦ ∩≡εΦτΓεΣΦ≥± εß≡α∙σφΦσ∞ Ω ±εε≥Γσ≥±≥Γ≤■∙σ∞≤ add-∞σ≥εΣ≤ Φ±≥ε≈φΦΩα ±εß√≥Φ .
╬ß∙α ±⌡σ∞α ΓταΦ∞εΣσΘ±≥ΓΦ Φ±≥ε≈φΦΩα Φ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥Φ ∩≡σΣ±≥αΓδσφα φα ≡Φ±. 2. ┼±δΦ ∩≡εΓεΣΦ≥ⁿ αφαδεπΦ■ ± εß√≈φεΘ ∩εΣ∩Φ±ΩεΘ φα πατσ≥√ Φ µ≤≡φαδ√, ≥ε ßατεΓ√Θ ∞σ⌡αφΦτ∞, ε∩Φ±αφφ√Θ Γ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ JavaBeans, ±εε≥Γσ≥±≥Γ≤σ≥ ε⌠ε≡∞δσφΦ■ ∩εΣ∩Φ±ΩΦ Γ ≡σΣαΩ÷ΦΦ ΩαµΣεπε ΦτΣαφΦ (α φσ Γ ε≥ΣσδσφΦΦ ±Γ τΦ). ┬ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ ≤∩ε∞Φφασ≥± ≥αΩµσ ε Γετ∞εµφε±≥Φ ≡σαδΦτα÷ΦΦ αΣα∩≥σ≡εΓ - ∩ε±≡σΣφΦΩεΓ, ßσ≡≤∙Φ⌡ φα ±σß ÷σφ≥≡αδΦτεΓαφφεσ ε⌠ε≡∞δσφΦσ ∩εΣ∩Φ±ΩΦ Φ ≡σαδΦτα÷Φ■ ε∩≡σΣσδσφφεΘ ΣΦ±÷Φ∩δΦφ√ ≡α±∩≡ε±≥≡αφσφΦ ±εß√≥ΦΘ. ╧≡Φ φαδΦ≈ΦΦ αΣα∩≥σ≡α ±⌡σ∞α ΓταΦ∞εΣσΘ±≥ΓΦ Φ±≥ε≈φΦΩεΓ Φ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥ΦΘ ∞εµσ≥ Γ√πδ Σσ≥ⁿ ≥αΩ, ΩαΩ ∩εΩαταφε φα ≡Φ±. 3. ╬≈σΓΦΣφε, ∩εΣεßφα ±⌡σ∞α εßδσπ≈ασ≥ µΦτφⁿ Γ±σ∞ ΓταΦ∞εΣσΘ±≥Γ≤■∙Φ∞ ±≥ε≡εφα∞ (φσ ±≈Φ≥α αΣα∩≥σ≡α, Ωε≥ε≡√Θ φσεß⌡εΣΦ∞ε ≡σαδΦτεΓα≥ⁿ).
╧≡Φ ≤±≥αφεΓδσφΦΦ ΓταΦ∞εΣσΘ±≥ΓΦ ∞σµΣ≤ Φ±≥ε≈φΦΩα∞Φ Φ ∩εΣ∩Φ±≈ΦΩα∞Φ ±εß√≥ΦΘ τφα≈Φ≥σδⁿφα ≈α±≥ⁿ ≡αßε≥√ ∞εµσ≥ ß√≥ⁿ Γ√∩εδφσφα Φφ±≥≡≤∞σφ≥αδⁿφεΘ ±≡σΣεΘ. ▌≥α ±≡σΣα ∞εµσ≥ ±πσφσ≡Φ≡εΓα≥ⁿ ΩεΣ, ±εΣσ≡µα∙ΦΘ εß≡α∙σφΦσ Ω add-∞σ≥εΣα∞, εßσ±∩σ≈Φ≥ⁿ ±επδα±εΓαφφε±≥ⁿ φατΓαφΦΘ ∞σ≥εΣεΓ εß≡αßε≥ΩΦ ±εß√≥ΦΘ, ±πσφσ≡Φ≡εΓαΓ ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ Γ±∩ε∞επα≥σδⁿφ√σ Ωδα±±√, Φ ≥.∩.
╧≡Φ ∩≡εσΩ≥Φ≡εΓαφΦΦ ∞σ⌡αφΦτ∞α ±εß√≥ΦΘ ≡ατ≡αßε≥≈ΦΩα∞ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans ∩≡Φ°δε±ⁿ ≤≈Φ≥√Γα≥ⁿ ÷σδ≤■ πα∞∞≤ ≥≡σßεΓαφΦΘ:
╥αΩΦ∞ εß≡ατε∞, ταΣα≈α ∩σ≡σΣ ≡ατ≡αßε≥≈ΦΩα∞Φ ±≥ε δα ≥≡≤Σφα , Φ, φα φα° Γτπδ Σ, εφΦ φσ ±≤∞σδΦ φαΘ≥Φ Σε±≥α≥ε≈φε ⌡ε≡ε°σπε ≡σ°σφΦ , Σε∩≤±≥ΦΓ ≡ Σ ∞σ≥εΣεδεπΦ≈σ±ΩΦ⌡ ∩≡ε±≈σ≥εΓ.
┼±δΦ σ±≥ⁿ ±Φ±≥σ∞α, ±εΣσ≡µα∙α n Φ±≥ε≈φΦΩεΓ ±εß√≥ΦΘ Φ m ∩εΣ∩Φ±≈ΦΩεΓ, ≥ε ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ßατεΓεπε ∞σ⌡αφΦτ∞α ≈Φ±δε ±Γ τσΘ, Ωε≥ε≡√σ φσεß⌡εΣΦ∞ε ∩εΣΣσ≡µΦΓα≥ⁿ, Φ∞σσ≥ ∩ε≡ ΣεΩ n * m. ▌≥ε ∞φεπε. ═α∩ε∞φΦ∞, ≈≥ε εΣφΦ∞ Φτ ε±φεΓφ√⌡ ∩εß≤ΣΦ≥σδⁿφ√⌡ ∞ε≥ΦΓεΓ ≡ατΓΦ≥Φ εß·σΩ≥φ√⌡ ≥σ⌡φεδεπΦΘ ß√δε ∩εφΦµσφΦσ Γφ≤≥≡σφφσΘ ±δεµφε±≥Φ ∩≡επ≡α∞∞φ√⌡ ±Φ±≥σ∞ ∩≤≥σ∞ εßσ±∩σ≈σφΦ ε≥φε±Φ≥σδⁿφεΘ φσταΓΦ±Φ∞ε±≥Φ Ωε∞∩εφσφ≥εΓ. ╚±∩εδⁿτεΓαφΦσ αΣα∩≥σ≡εΓ ∩ετΓεδ σ≥ ≤∞σφⁿ°Φ≥ⁿ ΩεδΦ≈σ±≥Γε ±Γ τσΘ Σε ΓσδΦ≈Φφ√ ∩ε≡ ΣΩα n + m, εΣφαΩε εφε φ≤µΣασ≥± Γ ±≥αφΣα≡≥Φτα÷ΦΦ.
╧≡σΣδαπασ∞√Θ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ ∩δε⌡ε ∩α≡α∞σ≥≡Φτ≤σ≥± , ∩≡σµΣσ Γ±σπε ∩ε≥ε∞≤, ≈≥ε Φ∞σφα ∞σ≥εΣεΓ εß≡αßε≥ΩΦ ⌠ΦΩ±Φ≡≤■≥± φα ≤≡εΓφσ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ. ╚τ-τα ²≥επε ≥≡≤Σφε ∩Φ±α≥ⁿ ∩≡επ≡α∞∞√, ±Φ±≥σ∞α≥Φ≈σ±ΩΦ εß≡αßα≥√Γα■∙Φσ ≡ατδΦ≈φ√σ ±εß√≥Φ . ╧≡Φ⌡εΣΦ≥± ΩαΩ ∞ΦφΦ∞≤∞ φα≡α∙ΦΓα≥ⁿ εß·σ∞ ∩≡επ≡α∞∞, ≈≥ε Γ±≥≤∩ασ≥ Γ ∩≡ε≥ΦΓε≡σ≈Φσ ± ε±φεΓφ√∞Φ ∩εδεµσφΦ ∞Φ Java-≥σ⌡φεδεπΦΦ.
╧≡ε±≥≡αφ±≥Γε ±εß√≥ΦΘ φσ ±≥≡≤Ω≥≤≡Φ≡εΓαφε, ⌡ε≥ φσΩε≥ε≡√σ ΣσΘ±≥ΓΦ Γ φσΩε≥ε≡√⌡ ≈α±≥ ⌡ ±≡σΣ√ Java (φα∩≡Φ∞σ≡, Γ αß±≥≡αΩ≥φε∞ εΩεφφε∞ Φφ±≥≡≤∞σφ≥α≡ΦΦ, AWT) Γ ²≥ε∞ φα∩≡αΓδσφΦΦ ∩≡σΣ∩≡Φφ ≥√. ┬ετ∞εµφε±≥ⁿ Φσ≡α≡⌡Φ≈σ±ΩεΘ ε≡παφΦτα÷ΦΦ ²δσ∞σφ≥εΓ - εΣφε Φτ φσεß⌡εΣΦ∞√⌡ ≤±δεΓΦΘ ≤±∩σ°φεπε ±ετΣαφΦ Φ ±ε∩≡εΓεµΣσφΦ ±δεµφ√⌡ ±Φ±≥σ∞. ╟Σσ±ⁿ ²≥ε ≤±δεΓΦσ φα≡≤°σφε (Ωεφσ≈φε µσ, Φσ≡α≡⌡ΦΦ Ωδα±±εΓ Γ Σαφφε∞ ±δ≤≈ασ φσΣε±≥α≥ε≈φε).
╤ΩδαΣ√Γασ≥± Γ∩σ≈α≥δσφΦσ, ≈≥ε Γ ∩≡σΣδαπασ∞ε∞ ΓΦΣσ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ Γδ σ≥± ±δΦ°Ωε∞ ∩≡ε±≥√∞, Γ φσ∞ φσ ⌡Γα≥ασ≥ ≡ Σα ∩εφ ≥ΦΘ. ╧ε ±≤∙σ±≥Γ≤ ²≥ε ±∩ε±εß ΣΦ±∩σ≥≈σ≡Φτα÷ΦΦ Γ√τεΓεΓ ∞σ≥εΣεΓ. ╩αΩα -δΦßε "±εß√≥ΦΘφε±≥ⁿ" Γ ≥αΩεΘ ≥≡αΩ≥εΓΩσ ∩ε∩≡ε±≥≤ ε≥±≤≥±≥Γ≤σ≥. ╬ß√≈φε ±εß√≥Φ ΓετφΦΩα■≥ ± ≈α±≥ε≥εΘ, ε∩≡σΣσδ σ∞εΘ ⌠αΩ≥ε≡α∞Φ, Γφσ°φΦ∞Φ ∩ε ε≥φε°σφΦ■ Ω ∩≡επ≡α∞∞φεΘ ±Φ±≥σ∞σ, ≥αΩ ≈≥ε φσεß⌡εΣΦ∞ε ∞ΦφΦ∞ΦτΦ≡εΓα≥ⁿ ∩ε Ω≡αΘφσΘ ∞σ≡σ Γ≡σ∞ ≡α±∩≡ε±≥≡αφσφΦ ±εß√≥Φ . ╧≡Φ ∩≡σΣδαπασ∞ε∞ ±Φφ⌡≡εφφε∞ Γ√τεΓσ ∞σ≥εΣεΓ ε÷σφΦ≥ⁿ Γ≡σ∞ ≡α±∩≡ε±≥≡αφσφΦ φσ ∩≡σΣ±≥αΓδ σ≥± Γετ∞εµφ√∞. ┴εδσσ ≥επε, φσεß⌡εΣΦ∞ε ∩εταßε≥Φ≥ⁿ± ε ∩≡ε≥ΦΓεΣσΘ±≥ΓΦΦ α≥αΩα∞ φα Σε±≥≤∩φε±≥ⁿ, ∩≡εΦτΓεΣΦ∞√∞ ∩≤≥σ∞ ≡σπΦ±≥≡α÷ΦΦ ∩εΣ∩Φ±≈ΦΩα, ∞σ≥εΣ εß≡αßε≥ΩΦ Ωε≥ε≡επε φσ ΓετΓ≡α∙ασ≥ ≤∩≡αΓδσφΦ . ╫α±≥ⁿ ²≥Φ⌡ ∩≡εßδσ∞ ∞εµφε ≡σ°Φ≥ⁿ, ≡σαδΦτεΓαΓ Φφ≥σδδσΩ≥≤αδⁿφ√Θ ∞φεπε∩ε≥εΩεΓ√Θ αΣα∩≥σ≡, φε ≥επΣα ∩≡ΦΣσ≥± ε≥Σσδⁿφε ≡σ°α≥ⁿ Γε∩≡ε±√ ßστε∩α±φε±≥Φ, ≥αΩ ΩαΩ ≡ Σ τα∙Φ≥φ√⌡ ∞σ≡ Γ Java-≥σ⌡φεδεπΦΦ ε±φεΓαφ φα ∩≡ε±δσµΦΓαφΦΦ ±≥σΩα Γ√τεΓεΓ, Φ ε∩α±φε±≥ⁿ ∞εµσ≥ π≡ετΦ≥ⁿ ±ε ±≥ε≡εφ√ τδεΓ≡σΣφεπε Φ±≥ε≈φΦΩα ±εß√≥ΦΘ.
╧≡Φ ∩εΣπε≥εΓΩσ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans ∩≡Φ°δε±ⁿ ∩σ≡σ±∞ε≥≡σ≥ⁿ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ, ∩σ≡Γεφα≈αδⁿφε ∩≡σΣ≤±∞α≥≡ΦΓαΓ°ΦΘ± αß±≥≡αΩ≥φ√∞ εΩεφφ√∞ Φφ±≥≡≤∞σφ≥α≡Φσ∞. ┬σ±ⁿ∞α Γετ∞εµφε, ≈≥ε Φ Γσ≡±Φ 1.01 ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans φσ Γδ σ≥± Γ ²≥ε∞ ±∞√±δσ εΩεφ≈α≥σδⁿφεΘ. ┬∩≡ε≈σ∞, Σδ ±Φ±≥σ∞ φσßεδⁿ°επε Φ ±≡σΣφσπε ∞α±°≥αßα εφα ∩≡σΣ±≥αΓδ σ≥± Γ∩εδφσ ≤ΣεΓδσ≥Γε≡Φ≥σδⁿφεΘ.
╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ (≥αΩΦσ ΩαΩ ÷Γσ≥ Φτεß≡αµσφΦ , ≡ατ∞σ≡ Φ ≥.∩.) ∞εµφε ∩≡σΣ±≥αΓδ ≥ⁿ ±σßσ Γ ΓΦΣσ ∩εδσΘ εß·σΩ≥εΓ; Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ≥αΩ εφΦ Φ ≡σαδΦτ≤■≥± . ╥σ∞ φσ ∞σφσσ, ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans, Γ ±εε≥Γσ≥±≥ΓΦΦ ± ∩ε±δσΣεΓα≥σδⁿφ√∞ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√∞ ∩εΣ⌡εΣε∞, ∩≡σΣ≤±∞α≥≡ΦΓα■≥ Σε±≥≤∩ Ω ±ΓεΘ±≥Γα∞ ≥εδⁿΩε ∩ε±≡σΣ±≥Γε∞ ±∩σ÷Φαδⁿφ√⌡ ∞σ≥εΣεΓ Γ√ßε≡ΩΦ Φ ≤±≥αφεΓΩΦ, ≥αΩ ≈≥ε Γ ∩≡Φφ÷Φ∩σ ±ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ ≤±≥≡εσφ√ ±Ωεδⁿ ≤πεΣφε ±δεµφ√∞ εß≡ατε∞.
╠σµΣ≤ ±ΓεΘ±≥Γα∞Φ ≡ατφ√⌡ Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ±≤∙σ±≥ΓεΓα≥ⁿ ±Γ τΦ ΣΓε Ωεπε ≡εΣα. ┬ε-∩σ≡Γ√⌡, ∩≡Φ Φτ∞σφσφΦΦ εΣφεπε ±ΓεΘ±≥Γα ∞εµσ≥ ∩ε≥≡σßεΓα≥ⁿ± ∞εΣΦ⌠ΦΩα÷Φ Σ≡≤πΦ⌡ ±ΓεΘ±≥Γ ΦδΦ Φφ√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ. ╥αΩΦσ ±ΓεΘ±≥Γα φατ√Γα■≥± ±Γ ταφφ√∞Φ. ┬ε-Γ≥ε≡√⌡, φσΩε≥ε≡√σ Φτ∞σφσφΦ ∞επ≤≥ ≥≡αΩ≥εΓα≥ⁿ± ΩαΩ φσΩε≡≡σΩ≥φ√σ Φ τα∩≡σ∙α≥ⁿ± . ╤εε≥Γσ≥±≥Γ≤■∙Φσ ±ΓεΘ±≥Γα φατ√Γα■≥± επ≡αφΦ≈σφφ√∞Φ. ╥σ∞ ±α∞√∞ ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ∩≡σΣε±≥αΓδ ■≥ ±≡σΣ±≥Γα Ωεφ≥≡εδ ÷σδε±≥φε±≥Φ εß·σΩ≥φεΘ ±≡σΣ√.
╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ∩εΣΓσ≡πα≥ⁿ± φα±≥≡εΘΩσ. ╬ß√≈φε φα±≥≡εΘΩα ∩≡εΦτΓεΣΦ≥± Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ ∩≡Φ ±ßε≡Ωσ ∩≡ΦδεµσφΦΘ, εΣφαΩε, Γεεß∙σ πεΓε≡ , εφα ∞εµσ≥ ε±≤∙σ±≥Γδ ≥ⁿ± Φ Γε Γ≡σ∞ Γ√∩εδφσφΦ .
╧σ≡σΘΣσ∞ Ω Σσ≥αδⁿφε∞≤ ≡α±±∞ε≥≡σφΦ■ τα Γδσφφ√⌡ ≥σ∞.
╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ß√≥ⁿ ±Ωαδ ≡φ√∞Φ Φ ΦφΣσΩ±Φ≡≤σ∞√∞Φ. ┬√ßε≡Ωα Φ ≤±≥αφεΓΩα ±Ωαδ ≡φ√⌡ ±ΓεΘ±≥Γ ε±≤∙σ±≥Γδ σ≥± ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ get/set:
public <≥Φ∩_±ΓεΘ±≥Γα> get<Φ∞ _±ΓεΘ±≥Γα> (); public void set<Φ∞ _±ΓεΘ±≥Γα> (<≥Φ∩_±ΓεΘ±≥Γα> p); (≥αΩεΘ °αßδεφ ταπεδεΓΩεΓ ∞σ≥εΣεΓ φσεß⌡εΣΦ∞ Σδ ∩εΣΣσ≡µΩΦ ≡σ⌠δσΩ±ΦΦ).
═α∩≡Φ∞σ≡, σ±δΦ ±ΓεΘ±≥Γε∞ Ωε∞∩εφσφ≥α Γδ σ≥± ÷Γσ≥, ±εε≥Γσ≥±≥Γ≤■∙Φσ ∞σ≥εΣ√ ∞επ≤≥ ε∩Φ±√Γα≥ⁿ± ΩαΩ
public Color getColor (); public void setColor (Color c); (Ωδα±± Color ε∩≡σΣσδ σ≥± Γ ∩αΩσ≥σ java.awt).
╬±εß√Θ °αßδεφ ∩≡σΣ≤±∞ε≥≡σφ Σδ Γ√ßε≡ΩΦ ß≤δσΓ√⌡ ±ΓεΘ±≥Γ:
public boolean is<Φ∞ _±ΓεΘ±≥Γα> ();
┬εεß∙σ πεΓε≡ , ±ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ Σε±≥≤∩φ√ ≥εδⁿΩε φα ≈≥σφΦσ ΦδΦ ≥εδⁿΩε φα τα∩Φ±ⁿ; ≥επΣα Σδ φΦ⌡ ε∩≡σΣσδ σ≥± δΦ°ⁿ εΣΦφ Φτ ∞σ≥εΣεΓ - get ΦδΦ set ±εε≥Γσ≥±≥Γσφφε.
╚φΣσΩ±Φ≡≤σ∞√σ ±ΓεΘ±≥Γα εß≡ατ≤■≥ ∞α±±ΦΓ√ ± ÷σδε≈Φ±δσφφ√∞Φ ΦφΣσΩ±α∞Φ. ╤ ²≥Φ∞Φ ∞α±±ΦΓα∞Φ ∞εµφε ≡αßε≥α≥ⁿ ∩εΩε∞∩εφσφ≥φε ΦδΦ ΩαΩ ± σΣΦφ√∞ ÷σδ√∞. ╪αßδεφ√ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ ∞σ≥εΣεΓ Φ Φ⌡ ∩≡Φ∞σ≡√ ∩≡ΦΓσΣσφ√ φα δΦ±≥Φφπσ 11 (∩εΣ <≥Φ∩ε∞_±ΓεΘ±≥Γα> τΣσ±ⁿ ∩εφΦ∞ασ≥± ≥Φ∩ ²δσ∞σφ≥α ∞α±±ΦΓα).
╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ∩≡σΣ≤±∞α≥≡ΦΓα■≥ φαδΦ≈Φσ ±Γ ταφφ√⌡ ±ΓεΘ±≥Γ, ∩ε±δσ Φτ∞σφσφΦ Ωε≥ε≡√⌡ Γετß≤µΣασ≥± ±εß√≥Φσ propertyChange. ─≡≤πΦσ Ωε∞∩εφσφ≥√ ∞επ≤≥ ∩εΣ∩Φ±α≥ⁿ± φα ²≥ε ±εß√≥Φσ Φ, ±δσΣεΓα≥σδⁿφε, ∩εδ≤≈α≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ∩≡εΦτΓεΣΦ∞√⌡ Φτ∞σφσφΦ ⌡, αφαδΦτΦ≡≤ εß·σΩ≥-∩α≡α∞σ≥≡ PropertyChangeEvent, ⌠≡απ∞σφ≥ ε∩Φ±αφΦ Ωε≥ε≡επε ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 12.
╠σ≥εΣ propertyChange, Γ√τ√Γασ∞√Θ Σδ εß≡αßε≥ΩΦ Φτ∞σφσφΦ τφα≈σφΦ ±ΓεΘ±≥Γα, ε∩Φ±αφ Γ Φφ≥σ≡⌠σΘ±σ PropertyChangeListener (δΦ±≥Φφπ 13). ╚±≥ε≈φΦΩ ±εß√≥Φ , Γ ±εε≥Γσ≥±≥ΓΦΦ ± εß∙Φ∞Φ ∩≡αΓΦδα∞Φ (±∞. ≡ατΣσδ "╠σ⌡αφΦτ∞ ±εß√≥ΦΘ"), Σεδµσφ ≡σαδΦτεΓα≥ⁿ ∞σ≥εΣ√ addPropertyChangeListener Φ removePropertyChangeListener, εßσ±∩σ≈ΦΓα ≡σπΦ±≥≡α÷Φ■ ∩εΣ∩Φ±≈ΦΩεΓ.
┬±∩ε∞επα≥σδⁿφ√Θ Ωδα±± PropertyChangeSupport, Γ⌡εΣ ∙ΦΘ Γ ∩αΩσ≥ java.beans, ≡σαδΦτ≤σ≥ ≡≤≥Φφφ√σ ΣσΘ±≥ΓΦ , ⌡α≡αΩ≥σ≡φ√σ Σδ εß±δ≤µΦΓαφΦ ±Γ ταφφ√⌡ ±ΓεΘ±≥Γ (±∞. δΦ±≥Φφπ 14). ┼±≥σ±≥Γσφφε, ≡ατ≡αßε≥≈ΦΩΦ Ωε∞∩εφσφ≥εΓ ∞επ≤≥ Γε±∩εδⁿτεΓα≥ⁿ± ²≥Φ∞ Ωδα±±ε∞.
╧ε∞Φ∞ε ±Γ ταφφ√⌡, ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ε∩Φ±√Γα■≥ επ≡αφΦ≈σφφ√σ ±ΓεΘ±≥Γα, ∩σ≡σΣ Φτ∞σφσφΦσ∞ τφα≈σφΦΘ Ωε≥ε≡√⌡ ≡α±∩≡ε±≥≡αφ σ≥± ±εß√≥Φσ vetoableChange ± ∩α≡α∞σ≥≡ε∞ PropertyChangeEvent. ╧εΣ∩Φ±≈ΦΩΦ ²≥επε ±εß√≥Φ ∞επ≤≥ ε≥ΩδεφΦ≥ⁿ ∩δαφΦ≡≤σ∞εσ Φτ∞σφσφΦσ, Γετß≤ΣΦΓ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ PropertyVetoException. ╠σ≥εΣ set Σεδµσφ ε≥≡σαπΦ≡εΓα≥ⁿ φα ∩εΣεßφεσ Γσ≥ε, Γσ≡φ≤Γ ∩≡σµφσσ τφα≈σφΦσ, "ΦτΓΦφΦΓ°Φ±ⁿ" ∩σ≡σΣ ≤µσ ε∩εΓσ∙σφφ√∞Φ ∩εΣ∩Φ±≈ΦΩα∞Φ (≥ε σ±≥ⁿ Γ√τΓαΓ Φ⌡ ∞σ≥εΣ√ vetoableChange ± εß≡α≥φεΘ ∩α≡εΘ φεΓεσ/±≥α≡εσ τφα≈σφΦσ) Φ ∩σ≡σΣαΓ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ ΦφΦ÷Φα≥ε≡≤ Φτ∞σφσφΦ . ╤εε≥Γσ≥±≥Γσφφε, ταπεδεΓεΩ set-∞σ≥εΣα Σδ επ≡αφΦ≈σφφ√⌡ ±ΓεΘ±≥Γ ∩≡Φεß≡σ≥ασ≥ ±δσΣ≤■∙ΦΘ ΓΦΣ:
public void set<Φ∞ _±ΓεΘ±≥Γα> (<≥Φ∩_±ΓεΘ±≥Γα> p) throws PropertyVetoException;
╤Φφ≥αΩ±Φ≈σ±ΩΦ ±Γ ταφφ√σ Φ επ≡αφΦ≈σφφ√σ ±ΓεΘ±≥Γα αφαδεπΦ≈φ√, φε ≡σαδΦτα÷Φ ∩ε±δσΣφΦ⌡ ≥≡σß≤σ≥ πε≡ατΣε ßεδⁿ°σΘ αΩΩ≤≡α≥φε±≥Φ Φ ε≥ Φ±≥ε≈φΦΩεΓ (set-∞σ≥εΣεΓ), Φ ε≥ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥Φ vetoableChange. ╚±≥ε≈φΦΩ≤ ≡σΩε∞σφΣ≤σ≥± Γε±∩εδⁿτεΓα≥ⁿ± Γ±∩ε∞επα≥σδⁿφ√∞ Ωδα±±ε∞ java.beans.VetoableChangeSupport, αΩΩ≤≡α≥φε Γ√∩εδφ ■∙Φ∞ Γ±σ φσεß⌡εΣΦ∞√σ ΣσΘ±≥ΓΦ . ╧εΣ∩Φ±≈ΦΩα∞ ß≤Σσ≥ ∩≡ε∙σ, σ±δΦ ±Σσδα≥ⁿ ±ΓεΘ±≥Γε Φ επ≡αφΦ≈σφφ√∞, Φ ±Γ ταφφ√∞. ┬ ≥αΩε∞ ±δ≤≈ασ Σε Φτ∞σφσφΦ (∩≡Φ εß≡αßε≥Ωσ ±εß√≥Φ vetoableChange) ∩εΣ∩Φ±≈ΦΩΦ ταßε≥ ≥± ≥εδⁿΩε ε πεδε±εΓαφΦΦ "τα" Φ "∩≡ε≥ΦΓ", α ∩ε±δσ Φτ∞σφσφΦ (∩≡Φ εß≡αßε≥Ωσ ±εß√≥Φ propertyChange) εφΦ Γ√ ±φ ■≥, ΩαΩΦ∞ µσ ±≥αδε φεΓεσ τφα≈σφΦσ.
╩ε∞∩εφσφ≥ εß·σΩ≥φεΘ ±≡σΣ√ ε±εßσφφε ∩εδστσφ ≥επΣα, ΩεπΣα σπε ∞εµφε φα±≥≡εΦ≥ⁿ. ╬ß√≈φε φα±≥≡εΘΩα Γ√∩εδφ σ≥± Γε Γ≡σ∞ ±ßε≡ΩΦ ∩≡ΦδεµσφΦ Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ.
─δ φσ±δεµφ√⌡ Ωε∞∩εφσφ≥εΓ ∞εµφε ∩≡σΣ±≥αΓΦ≥ⁿ ±σßσ ±⌡σ∞≤ φα±≥≡εΘΩΦ, ∩≡Φ Ωε≥ε≡εΘ εΩ≡≤µσφΦσ ∩≤≥σ∞ Φφ≥≡ε±∩σΩ÷ΦΦ Γ√ Γδ σ≥ α⌠Φ°Φ≡≤σ∞√σ ±ΓεΘ±≥Γα Φ ∩ε≡εµΣασ≥ ²δσΩ≥≡εφφ√Θ ßδαφΩ, ΩαµΣα Ωδσ≥Ωα Ωε≥ε≡επε ±εε≥Γσ≥±≥Γ≤σ≥ εΣφε∞≤ ±ΓεΘ±≥Γ≤. ╨σΣαΩ≥Φ≡εΓαφΦσ ±εΣσ≡µΦ∞επε Ωδσ≥ΩΦ Γ√∩εδφ σ≥± ±εε≥Γσ≥±≥Γ≤■∙Φ∞ ≡σΣαΩ≥ε≡ε∞ ±ΓεΘ±≥Γα. ╨σΣαΩ≥ε≡√ ±ΓεΘ±≥Γ, ∩≡ΦφαΣδσµα∙Φ⌡ ±≥αφΣα≡≥φ√∞ ≥Φ∩α∞, Γ⌡εΣ ≥ Γ Java-εΩ≡≤µσφΦσ; Γ ßεδσσ ±δεµφ√⌡ ±δ≤≈α ⌡ Σεδµσφ ±≤∙σ±≥ΓεΓα≥ⁿ ±∩σ÷ΦαδΦτΦ≡εΓαφφ√Θ ≡σΣαΩ≥ε≡, ∩ε±≥αΓδ σ∞√Θ ± Ωε∞∩εφσφ≥ε∞ ΦδΦ ± Φφ±≥≡≤∞σφ≥αδⁿφ√∞ εΩ≡≤µσφΦσ∞.
╩δα±±-≡σΣαΩ≥ε≡ ±ΓεΘ±≥Γα Σεδµσφ ≡σαδΦτεΓ√Γα≥ⁿ Φφ≥σ≡⌠σΘ± PropertyEditor (±∞. δΦ±≥Φφπ 15). ╬ß τα≥σδⁿφ√∞Φ Σδ ≡σαδΦτα÷ΦΦ Γδ ■≥± ∞σ≥εΣ setValue () Φ εΣΦφ Φτ ∞σ≥εΣεΓ ∩≡ε≡Φ±εΓΩΦ Φ ≡σΣαΩ≥Φ≡εΓαφΦ ±ΓεΘ±≥Γα - Γ π≡α⌠Φ≈σ±Ωε∞ ΦδΦ ≥σΩ±≥εΓε∞ ∩≡σΣ±≥αΓδσφΦΦ. ╧ε εß∙Φ∞ ∩≡αΓΦδα∞, ∩≡Φ Φτ∞σφσφΦΦ τφα≈σφΦ ±ΓεΘ±≥Γα ≡σΣαΩ≥ε≡ Σεδµσφ Γετß≤µΣα≥ⁿ ±εß√≥Φσ propertyChange. ╬≥±■Σα φσεß⌡εΣΦ∞ε±≥ⁿ Γ ≡σαδΦτα÷ΦΦ ∞σ≥εΣεΓ add/remove.
─δ ≤±≥αφεΓδσφΦ α±±ε÷Φα÷ΦΘ ∞σµΣ≤ ≥Φ∩α∞Φ Σαφφ√⌡ Φ Φ⌡ ≡σΣαΩ≥ε≡α∞Φ ±δ≤µΦ≥ Ωδα±± PropertyEditorManager. ╬φ ∩εΣΣσ≡µΦΓασ≥ Ωα≥αδεπ τα≡σπΦ±≥≡Φ≡εΓαφφ√⌡ ≡σΣαΩ≥ε≡εΓ; σ±δΦ µσ Γφα ≡σπΦ±≥≡α÷Φ ε≥±≤≥±≥Γ≤σ≥, PropertyEditorManager ∩√≥ασ≥± ε≥√±Ωα≥ⁿ Ωδα±±, Φ∞ Ωε≥ε≡επε εß≡ατεΓαφε ∩≡Φ∩Φ±√ΓαφΦσ∞ Ω Φ∞σφΦ ≥Φ∩α ≥σΩ±≥α "Editor" (±∞. δΦ±≥Φφπ 16).
─δ φα±≥≡εΘΩΦ ±δεµφ√⌡ Ωε∞∩εφσφ≥εΓ ± ßεδⁿ°Φ∞ ≈Φ±δε∞ ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ±ΓεΘ±≥Γ ∞εµσ≥ ∩ε≥≡σßεΓα≥ⁿ± ±∩σ÷ΦαδΦτΦ≡εΓαφφ√Θ Ωδα±±, εßδσπ≈α■∙ΦΘ ΣσΘ±≥ΓΦ ∩εδⁿτεΓα≥σδσΘ ∩ε ±≡αΓφσφΦ■ ±ε ±≥αφΣα≡≥φ√∞ ≡σΣαΩ≥Φ≡εΓαφΦσ∞ ßδαφΩα. ╥αΩεΘ Ωδα±±-φα±≥≡εΘ∙ΦΩ Σεδµσφ ß√≥ⁿ ∩≡ ∞√∞ ΦδΦ Ωε±Γσφφ√∞ ∩≡σσ∞φΦΩε∞ Ωδα±±α java.awt.Component, εΣφεΓ≡σ∞σφφε ≡σαδΦτ≤ Φφ≥σ≡⌠σΘ± java.beans. Customizer (ε∩Φ±αφΦσ ∩ε±δσΣφσπε ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 17).
╫≥εß√ ΦτΓσ±≥Φ≥ⁿ εΩ≡≤µσφΦσ ε φαδΦ≈ΦΦ φα±≥≡εΘ∙ΦΩα, Ωε∞∩εφσφ≥ Σεδµσφ ∩≡σΣε±≥αΓδ ≥ⁿ Ωδα±± BeanInfo Φ, Γ ≈α±≥φε±≥Φ, ≡σαδΦτεΓ√Γα≥ⁿ ∞σ≥εΣ getCustomizerClass Ωδα±±α BeanDescriptor (±∞. ≡ατΣσδ "└⌠Φ°Φ≡εΓαφΦσ Φ Γ√ ±φσφΦσ Φφ≥σ≡⌠σΘ±εΓ").
═α φα° Γτπδ Σ, ∞σ⌡αφΦτ∞ ±ΓεΘ±≥Γ ±∩σ÷Φ⌠Φ÷Φ≡εΓαφ Γ ±≡σΣσ JavaBeans Γσ±ⁿ∞α ΩΓαδΦ⌠Φ÷Φ≡εΓαφφε. ┬ ∩≡ε±≥√⌡ ±Φ≥≤α÷Φ ⌡ ≡ατ≡αßε≥≈ΦΩ≤ Ωε∞∩εφσφ≥α φσ φ≤µφε Σσδα≥ⁿ φΦ≈σπε; Γ ±δεµφ√⌡ µσ ±δ≤≈α ⌡ εφ Φ∞σσ≥ ∩≡αΩ≥Φ≈σ±ΩΦ ∩εδφ≤■ ±ΓεßεΣ≤ Σδ ±α∞√⌡ Φτε∙≡σφφ√⌡ ≡σαδΦτα÷ΦΘ.