해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
- 자바 14에서 Preview로 추가, 16에서 정식 등록
- 데이터의 묶음을 저장하기 위한, 단순한 형태의 클래스
▼ 클래스로 작성한 예시
package sec06.chap07.ex01;
// 기존처럼 클래스로 작성해야 했다면...
public class ChildClass {
private final String name;
private final int birthYear;
private final Gender gender;
public ChildClass(String name, int birthYear, Gender gender) {
this.name = name;
this.birthYear = birthYear;
this.gender = gender;
}
public String getName() { return name; }
public int getBirthYear() { return birthYear; }
public Gender getGender() { return gender; }
}
▼ ★레코드로 작성한 예시★
// ⭐️ 레코드로 작성
public record Child(
String name,
int birthYear,
Gender gender
) {}
- 레코드는 final
- 다른 클래스로 상속되거나 abstract 로 선언 불가
- 레코드의 각 항목들(name,birthYear,gender)은 private, final
- 각각 같은 이름의 getter가 기본으로 만들어짐
- 인스턴스 필드를 가질 수 없음
- 클래스 필드는 가능 ( 아래 예제에서 확인 )