전체 글
상수와 enum2
enum은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. 위의 예제에서는 Fruit와 Company가 말하자면 열거인 셈이다. 이러한 패턴을 자바 1.5부터 문법적으로 지원하기 시작했는데 그것이 열거형이다. 이전 코드를 enum으로 바꿔보자. switch에서 case Furuit.APPLE를 쓰지 않는 이유는 위의 type의 데이터 타입이 Furuit이기 때문에 쓸 필요가 없는 것이다. enum은 많은 곳에서 사용하던 디자인 패턴을 언어가 채택해서 문법적인 요소로 단순화시킨 것이라고 할 수 있다. if(Fruit.APPLE == Company.APPLE){ System.out.println("과일 애플과 회사 애플이 같다); } 이 코드는 여기..
상수와 enum
상수는 변하지 않는 값. 아래에서 좌항이 변수 우항이 상수 int x = 1; 1 = 2; 그래서 이와같은 구문은 있을 수 없다. 이와 같이 코드를 짜면 주석이 지워지거나 로직과 멀리 떨어져 있으면 어느 기능을 하는지 알 수 없다. 또한 57, 34, 93의 의미를 모르는 문제도 있다. 코드를 이해해야 하는 사람은 상당한 어려움에 봉착하게 된다. final은 변수의 값이 한번 지정되면 바뀌지 않는 키워드다 즉 상수가 된다. static는 클래스의 변수 ( 하나의 저장공간을 공유 ) 인스턴스 마다 값이 바뀔 필요가 없기에 static을 사용 이렇게 코드를 짜면 주석설명이 필요 없다. enum의 배경 : 애플리케이션이 커지는 과정에서 원래는 과일에 관한 상수만 필요했는데 필요에 의해 기업 이름에 대한 상수가..
object 클래스
object 클래스는 모든 클래스의 조상이다. 자바에서 상속이란 필수적이다. 상속하건 하지 않았건 기본적인 상속을 하게 된다. 이 코드는 이 코드와 같다 여기서 알 수 있는 점은 자바의 모든 클래스는 Object를 암시적으로 상속받고 있는 것이다. 즉 Object는 모든 클래스의 조상이다. 이런 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위함이다. http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 위의 링크에서 Object클래스가 가지고 있는 메소드를 보여준다. 다시 말해서 자바의 객체는 위의 메소드들을 반드시 가지고 있다. API : to String 여기서 굳이c1.toString()를 하지 않고 c1만 써도 .t..
자바 나만의 예외 만들기
표준 예외 클래스로도 많은 예외 상황을 표현할 수 있다. 하지만 그렇지 않은 경우도 있을 것이다. 이럴 때에는 직접 예외를 만들면 된다. 만들기전에 예외를 checked로 할 것인가 unchecked로 할 것인가를 정해야 한다. API 쪽에서 예외를 던졌을 때 API 사용자 쪽에서 예외 상황을 복구 할 수 있다면 checked를 사용 checked 예외는 사용자에게 문제를 해결할 기회를 주는 것이면서 예외처리를 강제하는 것이다. 하지만 checked 예외를 너무 자주 사용하면 API 사용자들이 몹시 힘들기 때문에 적정선을 찾는게 중요하다 사용자가 API의 사용방법을 어겨 발생하는 문제거나 예외 상황이 이미 발생한 시점에서 그냥 프로그램을 종료하는 것이 덜 위험 할 때 unchecked를 쓴다. Runti..