import lombok.extern.log4j.Log4j;
import lombok.NoArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.AllArgsConstructor;
@Log4j
@NoArgsConstructor(access=lombok.AccessLevel.PUBLIC) //기본생성자
@Getter //Getter메소드
@Setter //Setter메소드
@AllArgsConstructor
public class TTT{
;;
}//end class
기본생성자만 있을 때, 롬복 이용하여 명시적으로 표시 (..??)
access 는 annotation의 속성 지정.
PUBLIC은 Default로 지정되므로 생략 가능.
Getter, Setter 는 필드영역에도 적용 가능
public class TTT {
@Setter private String name; //필드영역에 적용
@Setter @Getter private int age;
private double weight;
private boolean gender;
} //end class
Getter : 감춰진 필드의 값(캡슐화 된 필드)을 외부로 반환해주는 것.
메소드 이름의 관례
- get + 필드명
- 예외 : boolean 타입의 필드는 is + 필드명
Setter : 메소드가 호출될 때 전달인자(argument) 값으로 받은 값을 필드에 대입, 변경해주는 것.
(전달받은 값이 필드의 값으로 유효한지(올바른지) 검증한 후 대입 > 필드의 무결성 유지)
메소드 이름의 관례
- set + 필드명 ( 매개변수 선언부 - 매개변수명을 필드명과 동일하게 지정)
- boolean 타입도 상관 없이 set + 필드명으로 작성
오버로딩과 헷갈리면 Override = Overwrite 로 기억하면 편하다.
생성자 : 객체 생성시(new) 인스턴스 필드의 초기화 역할
Static initializer : 클래스에 선언된 static field의 초기화 역할
Static initializer는 Class loader에 의해 해당 .class파일을 찾아서 바이트 코드를 읽고 >>
Class타입의 객체(CLazz)로 만들어 >>
메소드 영역에 집어넣기 전에 단 한 번 호출됨.
위 표의 적용대상 확인!
클래스 선언부에 붙일 수 있는 접근제한자는 public, default만 가능.
(default는 키워드가 없음. 접근제한자 키워드를 생략하는 것이 default)
final 메소드 : 더이상의 오버라이딩 불허함
final 클래스 : 더이상의 상속 불허함