목록Java/JAVA2 (37)
충분히 쌓여가는
예외 처리(exception handing) 정의 프로그램의 실행시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 try-catch 문 예외처리할 때 사용하는 문 if문과 달리, try 블럭이나 catch 블럭 내에 포함된 문장이 하나뿐이어도 괄호{}를 생략할 수 없다 try { // 예외가 발생할 가능성이 있는 문장들을 넣는다 } catch (Exception1 e1) { // Exception1이 발생했을 경우, 이를 처리하기 위한 문장을 넣는다 } catch (Exception2 e2) { // Exception2이 발생했을 경우, 이를 처리하기 위한 문장을 넣는다 } catch (ExceptionN eN) { // E..
프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행 할 때 발생하는 에러 논리적 에러(logical error): 작성 의도와 다르게 동작 컴파일 에러 자바 컴파일러 하는 일 1. 구문 체크 2. 번역 3. 소스코드 최적화 public class ExceptionTest { public static void main(String[] args) { system.out.println(args[0]); // 에러, System } } 런타임 에러 실행 중 에러 발생 public class ExceptionTest { public static void main(String[] args) { System.out.println(a..
익명 클래스 이름이 없는 일회용 클래스(정의와 생성을 동시에) (조상 클래스 이름 혹은 구현 인터페이스 이름) new 조상클래스이름() { // 멤버 선언 } // 또는 new 구현인터페이스이름() { // 멤버 선언 } 이름이 없는 클래스이기 때문에 조상이름을 대신해서 사용 코드 class Anonymous { Object iv = new Object() { void method(){} }; // 익명 클래스 static Object cv = new Object() { void method(){} }; // 익명 클래스 void myMethod() { Object lv = new Object() { void method(){} }; // 익명 클래스 } } 컴파일 시 내부 클래스이기 때문에 외부 클래스..
내부 클래스의 제어자와 접근성 원래 클래스 앞의 제어자는 public, (default)만 가능하다 내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일(public, (default), private, protected) static 클래스만 static 멤버를 정의할 수 있다 내부 클래스를 정의할 때 static 멤버가 필요하면, 내부 클래스가 static 내부 클래스 이어야 한다(static 멤버 자체가 객체 생성 없이 사용가능) [만약 제어자가 static이 아니라면 객체를 생성해야 사용가능하므로 static 멤버는 모순이된다] 상수(final)인 경우 static 멤버 사용 가능 class InnerClass { class InstanceInner { int iv = 1000; // stat..