본문 바로가기

LECTURE/# java basic

[초급 JAVA]자바 this,static,final 지정예약어 - final

반응형

this,static,final 지정예약어 - final

By Commin November 29, 2016


 
ReservedWord_final.java
package reserved_word;
public class ReservedWord_final {
// final 은 상수필드와 변수를 위해 사용합니다.
// final 필드 : 상수값을 저장하기 위한 공간이며 값이 변경될수없습니다.
final int age = 56;
int tall = 183;
ReservedWord_final() {
tall = 190; // 변경가능
// age = 67;//변경불가능
}
// final 메서드 : 상속을 하였을때 오버라이딩이 안되게 만들필요가있을때 사용합니다.
final void TestMethod_final() {
System.out.println("TestMethod_final !! ");
}
void TestMethod_normal() {
System.out.println("TestMethod_normal !! ");
}
class A extends ReservedWord_final{
@Override
void TestMethod_normal() {
// TODO Auto-generated method stub
super.TestMethod_normal();
}
//final로 선언된 메서드를 오버라이드 하면 오류가납니다.
// @Override
// void TestMethod_final() {
// // TODO Auto-generated method stub
// super.TestMethod_normal();
// }
}
// final 클래스 : class자체를 상속하지 못하도록 할 때 사용합니다.
final class TestClass_final {
TestClass_final() {
System.out.println("TestClass_final !! ");
}
}
class TestClass_normal {
TestClass_normal() {
System.out.println("TestClass_normal !! ");
}
}
// final 로 선언된 클래스를 선언 할 때 오류가 납니다.
// class B extends TestClass_final{
//
// }
class B extends TestClass_normal {
}
public static void main(String[] ar) {
new ReservedWord_final();
}
}


final 이란 ?

class 나 method의 상속 및 오버라이딩을 금지하기위한 제약을 주는 예약어로 쓰이기도하며, 주로 변수의 상수화에 쓰입니다. 즉 어떠한 고정된 값으로 만들어 변경을 못하게 막아 프로그래밍의 논리 오류를 막는역할을 합니다.

변수를 final로 선언 하면 선언과 동시에 초기화 하기때문에 후에 값을 수정 할 수 없도록 만듭니다. 

상속과 오버라이딩은 아직 설명하지않았기때문에 더이상 설명은 드리지않겠습니다. 

예제 소스를 보시고 final로 선언된 메서드나 클래스,변수가 그렇지않은 메서드나 클래스,변수와 어떤 차이점이 생기는지 보시고 그렇구나 하고 넘어가시면 됩니다.


반응형