본문 바로가기
Back-End/Java

Java(5)

by newny 2023. 3. 17.
반응형

final 키워드의 사용

final 변수 → 값을 변경할 수 없음 → 동적필드이므로 객체마다 저장됨
static final 변수 → 변수의 상수화 → 정적필드이므로 메모리에 한번만 올라감

[접근제한자] [동적/정적] final [변수명]; 

final 클래스 → 상속할 수 없음

[접근제한자] final class [클래스명] {}

final 메소드 → 오버라이딩할 수 없음

[접근제한자] [동적/정적] final [리턴타입] [메소드명] (매개변수) {}

 

Wrapper class (포장클래스)

  • 기본 자료형을 참조형화 해 놓은 클래스들
  • 대부분 java.lang 패키지에 선언되어 있음
  • 대부분 static으로 선언되어있음

기본타입 참조타입(class)

booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter

 

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

댓글