반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 백준 1935
- 네트워크
- 스프링
- TCP/IP 4계층
- 빈 타입 조회
- 후위표기식
- www.naver.com치면 발생하는일
- Class Loader
- 스프링 싱글톤
- 백준 2164
- removeAll
- @Tranctional
- 전략 패턴
- try-catch
- 팩토리패턴
- 자바의 면접
- SOLID원칙
- 옵저버 패턴
- mvvm패턴
- 쇠막대기
- 참조형 반환타입
- 팩토리 패턴
- k번째큰수
- 싱글톤 패턴
- 스프링 빈
- 참조형 매개변수
- 리버스 프록시
- 포워드 프록시
- 기본형 매개변수
- 스프링 컨테이너
Archives
- Today
- Total
스파이더 웹 개발
자바 final 키워드 본문
728x90
반응형
final 필드
public class Test {
final int number = 3;
public void change(){
number=5;
}
}
final 키워드가 필드에 사용되면 해당 필드는 더 이상 수정이 불가하다.
위에 코드처럼 final 키워드가 붙은 필드를 선언해주고 메서드에서 값을 5로 대입하려 하지만 변경이 불가하여 컴파일 오류가 발생한다
final 객체
class Study {
String subject = "국사";
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
}
public class Test {
public static void main(String[] args) {
final Study study = new Study();
Study study1 = new Study();
//study = study1; 컴파일 오류 발생
study1 = study;
study.setSubject("국어");
}
}
객체 변수에 final로 선언하면 그 변수에 다른 참조 값을 지정할 수 없다 즉, 한번 생성된 final 객체는 같은 타입으로 재생성이 불가능합니다. 객체자체는 변경이 불가능하지만 객체 내부 변수는 변경 가능합니다.
final 클래스
final class Car {
}
//상속 불가
class Bus extends Car{
}
클래스에 final을 사용하면 해당 클래스는 최종상태가 되어 상속할 수 없다
final 메서드
class Car {
public final void start(){
System.out.println("출발합니다");
}
}
class Bus extends Car
//메서드 재정의 불가
@Override
public void start() {
System.out.println("버스 출발");
}
}
메서드에 final 키워드를 사용하면, 하위클래스에서 상위클래스의 메서드를 재정의 할 수 없다
728x90
반응형
'Java' 카테고리의 다른 글
Parameter와 Arguement의 차이 (1) | 2022.07.20 |
---|---|
클래스 변수, 인스턴스 변수, 지역 변수 (0) | 2022.07.20 |
런타임 vs 컴파일 타임 (0) | 2022.07.20 |
메서드와 함수의 차이 (0) | 2022.07.20 |
부동 소수점 오차 문제점 (0) | 2022.07.20 |
Comments