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 |
Tags
- Spring
- Junit5
- Git
- MVC
- GitHub
- MVC모듈
- springboot
- springsecurity
- 컴퓨터과학
- assuming That
- 팀과제
- 원격저장소
- assume
- .idea
- springmvc
- 부스트코스
- Swagger
- CS50
- 스프링프레임워크
- assume True
- assume That
- 파일삭제
- gitbash
- container
- swaggerUrl
- .out
- c언어
- securityconfig
- springframeworkruntime
- DispatcherServlet
Archives
- Today
- Total
도담이 먹여 살려야하는 집사
final 본문
final필드
final필드는 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없는것
final 타입 필드 [=c 초기값];
초기값을 주는 2가지 방법
- 필드 선언시에 주는 방법 -> 단순 값일 경우
- 생성자에서 주는 방법 -> 복잡한 초기화 코드 필요 또는 객체 생성시에 외부데이터로 초기화 할 경우
-> 초기화하지 않은 final 필드를 그대로 남겨둘 경우 컴파일 에러 발생
상속할 수 없는 final클래스
final class Car{} >> final Math >> 상속 금지
Car클래스는 최종적인 클래스 이므로 상속 할 수 없는 클래스가 됨.
재정의 할 수 없는 final클래스
public final void print () >> 상속 >> 재정의 x(Override 금지)
public static final void print () {} >>객체간 공유함수
print 메소드는 최종적인 메소드 이고 부모 클래스를 상속해서 자식 클래스를 선언할때 부모클래스에 선언된 final메소드는 자식 클래스에서
재정의 할 수 없음 .
class Vcard {
final String KIND="heart";
final int NUM=10;
void method() {
System.out.println(Math.PI);
}
}
class Vcard2{ //설계도 제작 상수 초기화 보장 ( 생성자)
final String KIND;
final int NUM;
/*
Vcard2(){
this.KIND = "heart";
this.NUM = 10;
}
*/
//Vcard2(){}
Vcard2(String kind , int num){ // 카드 53장의 모양과 숫자는 다르다 (한번 정해지면 변경 불가)
this.KIND = kind;
this.NUM = num;
}
@Override
public String toString() {
return "Vcard2 [KIND=" + KIND + ", NUM=" + NUM + "]";
}
}
public class Ex07_Final {
public static void main(String[] args) {
Vcard v = new Vcard();
//v.KIND = "AAA";
v.method();
Vcard2 v1 = new Vcard2("spade", 1);
System.out.println(v1.toString());
Vcard2 v2 = new Vcard2("spade", 2);
System.out.println(v2.toString());
Vcard2 v3 = new Vcard2("spade", 3);
System.out.println(v3.toString());
///v3.KIND = "aaa";
}
}
상수 Constant : 불변의 값(Static final) <-> 변수
상수 자원 : 고유값(주민번호) , 수학 원주율 파이, 버전번호, 시스템 관리번호등...
final 필드와 다른점은 상수는 여러가지 값으로 초기화 될 수 없고 final필드는 객체마다 저장되고, 생성자의 매개값을 통해 여러가지 값을 가질 수 있기 때문
공통점 : 객체마다 저장할 필요가 없는 공용성
상수는 static이면서 final이어야 함 -> static final필드는 객체마다 존재하지 않고 클래스에만 존재함. 한 번 초기값이 저장되면 변경할 수 없음
static final 타입 상수 = 초기값;
static final String PLUS = "+";
static final String MINUS = "-";
static final String MUL = "*";
static final String DIV = "/";
static final String REM = "%";
상수 이름은 모두 대문자로 작성하기!
만약 서로 다른 단어가 혼합된 이름이라면 _(언더바)를 사용해서 단어들을 연결
'JAVA' 카테고리의 다른 글
List Collection Class (추가예정) (0) | 2020.09.01 |
---|---|
This (0) | 2020.08.31 |
Generic Type (2) | 2020.08.26 |
Array_Basic (0) | 2020.08.23 |
상속(Inheritance)-1 (1) | 2020.08.19 |
Comments