교육과정 기록/☕ Java

자바빈즈 클래스 ( java beans class)

춘식이왔엉 2022. 4. 6. 23:15

 🥔자바클래스 중에, 아래의 조건을 지키는 클래스를

특별히 '자바빈즈(java beans)' 클래스라고 함.

 


      1) private 접근제한자로 필드를 선언한다. (캡술화)      (필수)

   2) 각 필드에 대해서, getter 메소드와 setter 메소드를 갖는다.     (필수)

   3) (매개변수가 없는) 기본 생성자가 반드시 존재해야 된다.          (필수)

   4) implements Serializable ( java.io.Serializable Tag 인터페이스)        (선택)

 


* Getter 메소드

 

  * 각 필드의 값을 반환주는 메소드 (기능)

   * 매개변수를 가지지 않음 (왜? 필드의 값을 반환하는 기능이기 때문에)

* 메소드의 이름을 지을 때, 아래와 같은 규칙(***)

       'get'(prefix) + <필드명> => 필드타입 get필드명()   { ... }

       예: private String name = "Yoseph";

          'get' + name ==> 

          // name 필드에 대한 Getter 메소드 선언
          public String getName() {
             return this.name;
          } // getName

 


* Setter 메소드


   * 각 필드에 새로운 값을 대입(변경)해주는 메소드 (기능)

   * 매개변수를 가져야함 (왜? 필드에 넣어줄 새로운 값이 필요하니까)


   * 메소드의 이름을 지을 때, 아래와 같은 규칙(***)

       'set'(prefix) + <필드명> => void set필드명(필드타입 매개변수명) { ... }

       예: private String name = "Yoseph";

          'set' + name ==> 

          // name 필드에 대한 Setter 메소드 선언
          public void setName(String name) {
             this.name = name;
          } // setName

 


* 일반적인 클래스가, 위의 규칙을 지켜서, "자바빈즈" 클래스가 되면,
  아래의 새로운 성질이 생긴다!

  새로운 성질 ===> "프로퍼티" ( 속성 )

  (1) "프로퍼티" != 필드


  (2) "프로퍼티" = Getter or Setter 메소드에서 접두사(get/set) 제거한 이름

       getName => Name => name : 이게 바로 프로퍼티
       setName => Name => name : 이게 바로 프로퍼티

       만약, 아래와 같이 필드에 대해서 Getter/Setter 이름을 다르게 짓는다면
       이때는 절대 프로퍼티이름 != 필드이름.

       public String getMyName() {  ======> MyName => myName (프로퍼티이름)
             return this.name;
       } // getMyName

       public void setMyName(String name) { => MyName => myName (프로퍼티이름)
            this.name = name;
       } // setMyName

    (3) 자바언어로, Mission Critical(아주 중요한) 기업업무를 웹서비스로 만들때,

이 자바빈즈 클래스로 비지니스 데이터를 저장하는 객체를 만든다.
        - JSP/Servlet, Spring, J2EE, EJB, ....
        - 프로퍼티를 통해, 필드의 값을 조작(읽기/쓰기)
        - 결국 가장 중요한 비지니스 데이터를 보호해주는 역할