ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java - 추상 클래스(final 예약어)5
    카테고리 없음 2023. 11. 4. 07:41

    final 예약어

    사용 위치 설명
    변수 final 변수는 상수를 의미한다.
    메서드 final 메서드는 하위 클래스에서 재정의할 수 없다.(템플릿 메서드)
    클래스 final 클래스는 상속할 수 없다.

    상수를 의미하는 final 변수

    package finalex;
    
    public class Constant{
    
       int num = 10;
       //상수선언
       final int NUM = 100;
       
       public static void main(String[] args){
       	Constant cons = new Constant();
        cons.num = 50;
        //오류 발생
        ⛔cons.NUM = 200; //상수에 값을 대입하여 오류 발생
        
        System.out.println(cons.num);
        //50
        System.out.println(cons.Num);
        //100
       }
    }

     

    여러 자바 파일에서 공유하는 상수 값 정의하기

    프로젝트를 하다 보면 여러 파일에서 똑같이 공유해야 하는 상수 값이 존재할 수 있다 .예를 들면 최솟값(MIN)이나 최대값(MAX), 전체에서 공통으로 적용하는 과목 코드 값 등이 있다. 이런 값을 파일마다 선언한다면 코드가 중복될 뿐만 아니라 값이 변하거나 추가될 때 그 값을 사용하는 파일을 모두 수정해야한다. 따라서 자바로 프로젝트를 진행할 때 여러 파일에서 공유해야 하는 상수 값은 한 파일에 모아 public static final로 선언하여 사용하면 좋다.

     

    여러 파일에서 공유하는 상수

    package finalex;
    
    public class Define{
        public static final int MIN = 1;
        public static final int MAX = 9999;
        public static final int ENG = 1001;
        public static final int MATH = 2001;
        public static final int PI = 3.14;
        public static final String GOOD_MORNING = "Good Morning";
    }

     

    위 예제에서 상수를 모두 public 예약어로 선언했으므로 이들 값은 외부에서도 사용할 수 있다. 그리고 모든 상수를 static으로 선언했기 때문에 인스턴스를 생성하는 것과 관계없이 클래스이름으로 참조할 수 있다.

     

    상수 사용하기

    package finalex;
    
    public class UsingDefine{
    	public static void main(String[] args){
        	System.out.println(Define.GOOD_MORING);
            System.out.println("최솟값은" + Define.MIN + "입니다.");
            System.out.println("최댓값은" + Define.MAX + "입니다.");
            System.out.println("수학 과목 코드 값은" + Define.MATH + "입니다.");
            System.out.println("영어 과목 코드 값은" + Define.ENG + "입니다.");
        }
    }

     


    상속할 수 없는 final 클래스

    클래스를 final로 선언하면 상속할 수 없다. 상속을 하면 변수나 메서드를 재정의할 수 있는데, 그러면 원래 클래스가 가지고 있는 기능에 오류가 생길 수도 있다. 따라서 보안과 관련 되어 있거나 기반 클래스가 변하면 안 되는 경우에는 클래스를 final로 선언한다. JDK에서 제공하는 클래스 중에도 final로 선언한 클래스가 있다. 대료적으로 문자열을 나타내는 String이나 정수 값을 나타내는 Integer 클래스를 예로 들 수 있다. 이러한 클래스가 상속되면 클래스를 만들 대 의도한 바와 다르게 사용될 수 있으므로 final로 선언한다.

     

    [출저 - Do it! 자바 프로그래밍 입문 , 박은종]

    http://www.easyspub.co.kr/20_Menu/BookView/A001/267/PUB

     

    http://www.easyspub.co.kr/20_Menu/BookView/A001/267/PUB

     

    www.easyspub.co.kr

     

    댓글

Designed by Tistory.