반응형
final 키워드의 사용
final 변수 → 값을 변경할 수 없음 → 동적필드이므로 객체마다 저장됨
static final 변수 → 변수의 상수화 → 정적필드이므로 메모리에 한번만 올라감
[접근제한자] [동적/정적] final [변수명];
final 클래스 → 상속할 수 없음
[접근제한자] final class [클래스명] {}
final 메소드 → 오버라이딩할 수 없음
[접근제한자] [동적/정적] final [리턴타입] [메소드명] (매개변수) {}
Wrapper class (포장클래스)
- 기본 자료형을 참조형화 해 놓은 클래스들
- 대부분 java.lang 패키지에 선언되어 있음
- 대부분 static으로 선언되어있음
기본타입 참조타입(class)
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
this()
- 자신의 생성자를 호출할 때 사용
- 생성자블록 안에서만 사용 가능
- this() 함수는 생성자 내부의 첫 줄에서 호출해야함 → 첫줄이 아닌 줄에서 호출하면 컴파일 오류남
public Sunhjuk(int kor, int eng, int mat) {
this("박지성");
this.kor = kor;
this.eng = eng;
this.mat = mat;
// this("박지성"); 에러 → this() 함수는 생성자 내부의 첫줄에서 호출해야함
}
public Sunhjuk() {
// 생성자도 자신의 다른 생성자를 this()를 이용하여 호출할 수 있다
this("손흥민");
}
상속
- 코드의 재 사용성
- 상속을 하면 부모와 자식, 조상과 후손, super 와 sub 의 관계가 성립됨
- super 키워드 사용
- extends 확장(상속), implements 구현(인터페이스)
[public] class [자식클래스명] extends [부모클래스명] {}
상속받은 메소드 오버라이딩의 규칙
→ 부모 메소드의 선언부와 동일해야함
→ 접근 제한을 부모 메소드보다 더 강하게 오버라이딩할 수 없음
→ 새로운 예외를 throws할 수 없음
[public] class [자식클래스명] extends [부모클래스명] {
// 상속 클래스는 무조건 한개만 가능
public [자식클래스명] () { // 자식 클래스의 생성자
super();
// 부모의 기본 생성자를 호출
// 부모 생성자는 자식 생성자의 맨 첫 줄에 숨겨져있음
}
@Override
[부모메소드의 선언부와 동일하게 선언] { // 부모 클래스 메소드 오버라이딩
super.[부모메소드명];
// super 키워드를 이용하여 부모메소드를 재사용
}
}
반응형
'Back-End > Java' 카테고리의 다른 글
Java 예제(3) (0) | 2023.03.17 |
---|---|
Java 예제(2) (0) | 2023.03.16 |
Java(4) (0) | 2023.03.16 |
댓글