2021-06-18 강의록_클래스2, 접근제한자

MIN.DI·2021년 6월 18일
0

강의록

목록 보기
9/54

Lombok annotation

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

main()

  • main()을 static으로 호출하는 이유?
    main() = Startup Point. Entry Point.
    static 키워드가 없으면 인스턴스필드와 같아짐. >> new 연산자로 객체가 생성되어야 메모리에 할당되어 접근/호출이 가능.
    하지만 static 키워드를 사용하여 Clazz객체로 만들면 JVM에서 객체 생성 없이 메모리에 할당시켜 바로 호출 가능한 형태가 됨.
    자바 프로그램을 실행하면 JVM은 클래스의 static으로 선언된 메서드를 객체 생성 없이 메모리에 할당시키고, 할당된 메서드 중 main으로 네이밍 된 메서드를 찾아 호출함.
    즉,(메인 클래스).main() 이 실행됨.
    따라서 Entry Point, 즉 main()은 satic이어야 한다.

Getter/Setter 메소드

  • Getter : 감춰진 필드의 값(캡슐화 된 필드)을 외부로 반환해주는 것.

    메소드 이름의 관례

    • get + 필드명
    • 예외 : boolean 타입의 필드는 is + 필드명
  • Setter : 메소드가 호출될 때 전달인자(argument) 값으로 받은 값을 필드에 대입, 변경해주는 것.
    (전달받은 값이 필드의 값으로 유효한지(올바른지) 검증한 후 대입 > 필드의 무결성 유지)

    메소드 이름의 관례

    • set + 필드명 ( 매개변수 선언부 - 매개변수명을 필드명과 동일하게 지정)
    • boolean 타입도 상관 없이 set + 필드명으로 작성

오버로딩 Overloading

  • 메소드 오버로딩의 대전제
    : 이름이 같고, 하는 역할이 같은 n개의 메소드들은
    매개변수의 1)개수, 2)순서, 3)타입
    이 세가지 중 단 하나라도 달라야 함.
    리턴타입은 무관.

오버로딩과 헷갈리면 Override = Overwrite 로 기억하면 편하다.


Static initializer

(여기서 이어짐_클릭)

생성자 : 객체 생성시(new) 인스턴스 필드의 초기화 역할
Static initializer : 클래스에 선언된 static field의 초기화 역할

Static initializer는 Class loader에 의해 해당 .class파일을 찾아서 바이트 코드를 읽고 >>
Class타입의 객체(CLazz)로 만들어 >>
메소드 영역에 집어넣기 전에 단 한 번 호출됨.


접근제한자


위 표의 적용대상 확인!
클래스 선언부에 붙일 수 있는 접근제한자는 public, default만 가능.
(default는 키워드가 없음. 접근제한자 키워드를 생략하는 것이 default)

  • public
  • protected (= default + @(상속받는 자식 클래스))
  • default
  • private
    캡슐화, 필드의 무결성을 위한 수단.

final

final 메소드 : 더이상의 오버라이딩 불허함
final 클래스 : 더이상의 상속 불허함

profile
내가 보려고 쓰는 블로그

0개의 댓글

관련 채용 정보