코딩
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..
예외 만들기
지금까지 API의 소비자로서 API 측에서 던지는 예외를 처리했었다. 이번에는 API의 생산자로서 소비자들에게 API를 제공하는 입장이 되어 보자 위의 코드에서 예외가 발생한 이유는 10을 0으로 나누려고 하기 때문이다. setOprands를 통해 입력된 두번째 인자의 값이 0이기에 발생한 문제이다. 여기서 우리가 할 수 있는 조치는 두가지다. 1. setOprands의 두번째 인자로 0이 들어오면 예외를 발생 2. 메소드 divide를 실행할 때 right의 값이 0이면 예외를 발생 위의 코드는 두번째의 방법을 적용한 방법이다. 첫번째 방법은 주석으로 되어있다. 예외 사용해야 할 상황 IllegalArgumentException 매개변수가 의도하지 않은 상황을 유발시킬 때 IllegalStateExce..
자바 scanner
next() : 문자열 입력받음 띄어쓰기 전까지 입력 즉 space가 있음 종료 nextLine() : 문자열 입력받음 키보드 버퍼가 비어있을 경우 입력을 요구 키보드 버퍼가 비어있지 않으면 버퍼 전체의 내용을 읽어들임 enter를 만나면 종료 nextInt() : int 타입 반환 nextDouble : double 타입 반환 키보드 버퍼를 사용한 이유는 숫자를 입력 후 바로 문자를 입력 받는 경우 콘솔 입력을 받는게 아니라 버퍼에 있는 데이터를 가져오기 때문에 문자를 입력 받지 않고 바로 출력을 해버리기 때문이다.