🥔자바클래스 중에, 아래의 조건을 지키는 클래스를
특별히 '자바빈즈(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, ....
- 프로퍼티를 통해, 필드의 값을 조작(읽기/쓰기)
- 결국 가장 중요한 비지니스 데이터를 보호해주는 역할
'교육과정 기록 > ☕ Java' 카테고리의 다른 글
| 4.8 OOP - 싱글톤 / final / 패키지 (0) | 2022.04.08 |
|---|---|
| 4.5~4.6 OOP와 클래스 (0) | 2022.04.07 |
| 4.4 객체지향프로그래밍(OOP) (0) | 2022.04.05 |
| 4.1 열거타입 (0) | 2022.04.02 |
| 4.1 배열 (0) | 2022.04.01 |