본문 바로가기

Java

(29)
예외 프로그램 오류 종류 컴파일 에러 ( compile-time error ) : 컴파일 도중 발생하는 오류 런타임 에러 ( runtime error ) : 실행 도중 발생하는 오류 예외 클래스 계층도 Exception 타입의 클래스 ( RuntimeException 타입의 클래스 제외 ) : 외적인 요인에 의해 발생하는 예외 RuntimeExcaption 타입의 클래스 : 프로그래머의 실수로 발생하는 예외 Exception을 처리하지 못하면 프로그램은 종료되며, 원인이 된 Exception을(uncaught exception) JVM의 UncaughtExceptionHandler가 받아서 화면에 출력해 준다. * 이클립스 상속 계층도 단축키 : ctrl + t try-catch문 try { // 예외 발생 ..
익명 클래스(anonymous class) 익명클래스는 이름이 없는 클래스로 클래스의 선언과 생성이 동시에 되는 클래스이다. 단, 익명 클래스는 말 그대로 이름이 없는 클래스이기 때문에 재사용이 불가능하다. → 같은 내용의 익명클래스를 두 번 선언하고 생성해도 이를 컴파일하면 .class파일이 다른 이름으로 2개가 생성된다. ( ex 외부클래스이름$1, 외부클래스이름$2 // 이름이 없기 때문에 숫자로 구분된다.) 익명 클래스의 특징 재사용이 불가능하다. 선언과 동시에 생성이 된다. 이름이 없기 때문에 생성자를 가질 수 없다. 하나의 클래스를 상속받거나 인터페이스를 구현 가능하다. (2개 이상 x) 익명 클래스를 사용하는 이유 익명 클래스를 사용하는 이유는 코드 내에서 한 번만 만들어지고 사용되는 객체의 경우 별도의 클래스 파일을 만드는 것보다 ..
초기화 블록 인스턴스를 생성하고 초기화를 할 경우 생성자 말고도 초기화를 하는 방법이 있는데 이것이 바로 초기화 블록이다. 초기화블록의 선언 초기화 블록에는 클래스변수를 초기화하는 블록이랑 인스턴스변수를 초기화하는 블록으로 나누어진다. 인스턴스변수의 초기화 블록은 멤버변수를 선언하는 위치에 { } 이런 식으로 블록을 생성해 주면 된고 클래스변수의 초기화블록은 static { }처럼 블록 앞에 초기화 키워드를 붙이면 된다. 초기화 블록을 사용하는 이유 초기화 블록에는 모든 생성자(오버로딩된 생성자들)들이 공통적으로 포함해야 하는 코드를 작성해서 코드의 중복을 줄여주는 효과와 가독성이 높아진다는 장점이 있다. 초기화 순서 인스턴스 생성 시 기본값이 가장 먼저 들어가며 명시적 초기화, 초기화블록 생성자 순으로 초기화가 된..
인터페이스(interface) 인터페이스란 미완성의 클래스, 클래스의 틀만 잡아놓은 것이다. 따라서 추상클래스보다 추상도가 높다고 할 수 있다. 인터페이스의 핵심은 멤버로 추상메서드랑 상수만을 포함할 수 있다는 것이다. JDK1.8부터는 default메서드와 static메서드도 추가가 가능하지만 본질은 추상메서드랑 상수이다. 인터페이스의 선언 interface 인터페이스이름 {} 인터페이스의 멤버 interface 인터페이스이름 { public static final 타입 상수이름 = 값; // public static은 생략이 가능하다. public abstract 반환타임 메서드이름(); // public abstract는 생략이 가능하다. } 인스턴스의 구현 상속은 extends 키워드를 사용했지만 interfece는 imple..