티스토리 뷰
1. final 클래스
final class FinalClass {
}
public class FinalTest extends FinalClass { //컴파일 에러
}
final
이 클래스 앞에 사용되면 다른 클래스가 상속할 수 없다.
final class FinalClass extends FinalClass{
}
public class FinalTest {
}
반대로, final
클래스가 다른 클래스는 상속할 수 있다.
2. final 메소드
메소드에 final
이 붙게 되면 재정의(Overriding)
을 할 수 없다.
public class FinalTest extends FinalClass {
public void test() { // 컴파일 에러, 'test()' cannot override 'test()' in 'FinalClass'; overridden method is final
}
}
class FinalClass {
public final void test() {
System.out.println("final Method");
}
}
3. final 변수
final
변수는 선언할 때, 초기값을 넣어 줘야 한다. final
이 붙은 변수는 상수 역할을 하기 때문에 값 변경이 안된다.
public class FinalTest {
final int maxValue = 100;
public void change() {
maxValue = 200; // 에러 발생
}
}
final
변수가 무조건 선언과 동시에 초기값을 넣어줘야 하는 것은 아니다.
아래 코드 처럼, 생성자(constructor)
를 통해서 값을 설정할 수 있다.
public class FinalTest {
private final int maxValue;
public FinalTest(int maxValue) {
this.maxValue = maxValue;
}
}
'Programming > Java&Spring' 카테고리의 다른 글
[Java] String, StringBuffer, StringBuilder 차이 (0) | 2020.05.26 |
---|---|
Springboot jar 패키징 후 실행 방법 (0) | 2019.11.27 |
Maven과 Gradle (0) | 2019.11.23 |
[Spring] 생성자 주입을 사용해야 하는 이유, 필드인젝션이 안좋은 이유(+Lombok를 사용한 생성자 주입 방법) (0) | 2019.11.20 |
Lombok 사용 시 @JsonIgnore 동작안하는 문제 해결 (0) | 2019.11.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 토비의스프링
- 자바
- EmbededTomcat
- java
- Tomcat
- 413
- JsonIgnore
- 스프링프레임워크
- 템플릿
- AOP
- DI
- jar 실행
- JsonProperty
- mod_jk
- shellscript
- lombok
- IoC
- 쉘스크립트
- StringBuilder
- Spring
- final
- apache
- springboot
- 빌드도구
- gradle
- 스프링
- 애플리케이션컨텍스트
- 연동
- stringbuffer
- 빈팩토리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함