버글버글
Java 수업 기록 (13) 라이브러리 - Bean 본문
반응형
▶ Bean( = Vo, Dto)
1. 여러데이터를 모아 놓은 객체(데이터를 보관하는 용도)
* 프로젝트 안에 롬복 넣는 방법.
▷ jar을 선택
사용 예시)
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
private String id;
private String pw;
public static void main(String[] args) {
User user = new User();
user.setId("admin");
System.out.println(user.getId());
}
}
▶ constructor
@NoArgsContructor | @AllArgsContructor |
public employee () {} | public Employee(int empNo, String name) { super(); this.empNo = empNo; this.name = name; } |
생성자 라이브러리는 위의 표와 동일하다. (같은 의미)
▶ Singleton 패턴
1. singleton 객체는 하나만 생성된다.
(new 로 생성 불가.)
* static 필드
1. 객체 생성 이전에 메모리에 미리 만들어 두는 필드
* static 메소드(클래스 메소드)
1. 클래스가 생성될 때 함께 생성되는 메소드
2. 객체 생성 이전에 만들어지기 때문에 객체로 접근하지 않는다.
3. 클래스이름으로 접근한다.
ex) User user = User.getInstance();
public class User {
// static 필드
// 객체 생성 이전에 메모리에 미리 만들어 두는 필드
private static User user = new User();
private User() { // User 객체 생성은 User 내부에서만 가능하다.
}
// static 메소드(클래스 메소드)
public static User getInstance() {
return user;
}
public class Main {
public static void main(String[] args) {
// singleton 객체는 하나만 생성된다.
User user1 = User.getInstance();
System.out.println(user1);
User user2 = User.getInstance();
System.out.println(user2);
// User user = new User(); 외부에서는 새로운 객체를 생성할 수 없음.
}
▶ Builder 패턴
1. User 클래스 내부에 Builder 클래스 생성
2. User 클래스를 이용해서 호출하기 위해 static 처리
public class User {
// 필드(Builder 객체가 가진 값을 받아 옴)
private int userNo;
private String id;
private String email;
// 디폴트 생성자.
// Builder 클래스의 build() 메소드가 호출하는 생성자
public User(Builder builder) {
this.userNo = builder.userNo;
this.id = builder.id;
this.email = builder.email;
}
// Builder 반환 메소드
public static Builder builder(){
return new Builder();
}
// User 클래스 내부에 Builder 클래스 생성
// User 클래스를 이용해서 호출하기 위해 static 처리
public static class Builder {
// 내부 필드(여기에 값을 전달 받아서 User의 필드로 보내는 원리)
private int userNo;
private String id;
private String email;
// userNo() 메소드
public Builder userNo(int userNo) {
this.userNo = userNo;
return this;
}
// id() 메소드
public Builder id(String id) {
this.id = id;
return this;
}
// email() 메소드
public Builder email(String email) {
this.email = email;
return this;
}
// build() 메소드
public User build() {
return new User(this);
// 여기서 this는 builder (필드) 객체를 의미함. (userNo, id, email을 가지고 있는 객체)를 의미함.
}
} // class Builder
public class Main {
public static void main(String[] args) {
User user = User.builder()
.userNo(1)
.id("admin")
.email("admin@naver.com")
.build(); // 여기까지 만들어 주세요. 끝남을 알리는 명령어.
System.out.println(user);
}
반응형
'java > java 수업 기록' 카테고리의 다른 글
Java 수업 기록 (15) Exception (0) | 2022.08.07 |
---|---|
Java 수업 기록 (14) 상속-Interface (0) | 2022.08.05 |
Java 수업 기록 (12) 상속-abstract (0) | 2022.08.03 |
Java 수업 기록 (11) Object (0) | 2022.08.02 |
Java 수업 기록 (10) 상속 (0) | 2022.08.01 |