분류 전체보기 (894) 썸네일형 리스트형 14 - 3장 예외 전가 예외 처리 2가지 방법 - Add throws declaration => 예외 전가 - Surround with try/catch => try-catch 구문 이용 - 예외를 전가 하면 예외 처리의 의무를 호출한 메서드가 갖게 됨 - 상위의 메서드도 자신을 호출한 지점으로 예외 전가 가능 1. 예외 전가 문법 리턴 타입 메서드명(입력매개변수) throws 예외 클래스 명 { //예외 발생 코드 } ex) abc() 메서드에서 bcd() 메서드를 호출하고, bcd() 메서드 내부에 예외가 발생할 수 있는 코드 포함한 경우 1) bcd()메서드가 직접 예외 처리 void abc() { bcd(); //1.호출 } void bcd() { try { //2. 예외 처리 //예외 가능 블록 }catch(예외 클래.. 14 - 2장 예외 처리 1. 예외 처리 문법 try { //일반 예외, 실행 예외 발생 가능 코드 } catch (예외 클래스명 참조 변수명) { //예외가 발생했을 떄 처리 } finally { //예외 발생 여부에 상관없이 무조건 실행 } -try {} -> 예외가 발생할 수 있는 코드 포함 - catch{} -> 예외가 발생했을 때 처리할 코드 포함 -> 모든 예외를 처리하는 것은 아니며, 소괄호 안의 예외 타입에 해당하는 예외에 한해서만 처리 가능 -> 예외가 발생했을 때만 동작하며 예외 없이 정상적으로 동작할 때는 실행되지 않음 - finally {} -> 예외가 발생하든, 발생하지 않든 항상 실행되는 블록 -> 리소스 해제, try{}, catch{} 블록의 공통 기능 코드 포함 -> 생략 가능 try { Syste.. 14 - 1장 예외 1. 예외와 에러의 차이점 1) 예외 - 개발자가 해결할 수 있는 오류 - 오류가 발생했을 때 차선책을 선택 - 예외의 최상위 클래스 Exception 클래스 ->Throwable 클래스 상속 2)에러 - 자바 가상 머신 자체에서 발생하는 오류 - 개발자가 해결할 수 없는 오류 - 에러의 최상위 클래스 Error 클래스 -> Throwable 클래스 상속 - Error 클래스와 Exception 클래스의 상속 구조 2. 예외 클래스의 상속구조 -Exception 클래스는 일반예외(checked exception)클래스와 실행예외(unchecked exception) 클래스로 나뉨 1) 일반 예외 - Exception 클래스에서 직접 상속받은 예외 클래스들이 처리 - 컴파일 전에 예외발생 문법을 검사 - .. 13 - 3 장 이너 인터페이스 이너 인터페이스 (inner interface) - 인터페이스를 클래스 내부에 정의하는 것은 해당 클래스에 의존적인 기능을 수행할 때 - 사용자 인터페이스(user interface)의 이벤트 처리에 가장 많이 사용 ex) 버튼 클릭을 감지하는 인터페이스는 버튼 클래스 내부에 위치 1. 이너 인터페이스의 정의와 특징 - 정적 이너 인터페이스만 존재할 수 있음 - 이너 인터페이스 앞에 static 제어자를 생략하면 컴파일러가 자동으로 추가 class A { //... static interface B{ void bcd(); } } - 컴파일시 '아우터 클래스명$이너 인터페이스명.class' 형태로 .class 파일이 생성 - 자체적으로 객체 생성 불가 - 해당 인터페이스를 상속한 자식 클래스를 생성한 후 .. 13 - 2 장 익명 이너 클래스 1. 익명 이너 클래스의 정의와 특징 - '이름을 알 수 없는 이너 클래스' - 인스턴스 익명 이너 클래스 / 지역 익명 이너 클래스 interface C { public abstract void bcd(); } 1) 인터페이스를 상속한 이너 클래스를 생성해 인터페이스 객체 생성 class A1 { C b = new B(); void abc() { //메서드 내용 } class B implements C { public void bcd() { //메서드 구현 } } } - 인터페이스 C를 구현하고 있는 인스턴스 이너 클래스 B - C b = new B(); - 인터 페이스 C 타입의 참조 변수, 생성자 B()로 객체를 생성해 초기화 - abc() 메서드 정의 - C타입의 객체를 생성하기 위해 이너 클래스.. 13 -1 장 이너 클래스 - 이너클래스(inner class) - 클래스 내부에 포함 - 종류 - 인스턴스 멤버 이너 클래스 - 정적 멤버 이너 클래스 - 지역 이너 클래스 class A { //아우터 클래스 class B { //인스턴스 멤버 클래스 //... } static class C { //정적 멤버 클래스 //... } void abc() { class D { //지역 이너 클래스 //... } } } 1. 인스턴스 멤버 이너 클래스 - 객체 내부에 멤버의 형태로 존재 - 아우터 클래스(outer class)의 모든 접근 지정자의 멤버에 접근 가능 - 소스파일 (.java)이 1개라 하더라도 컴파일을 수행하면 각 클래스별로 바이트 코드(.class)파일 생성 - '아우터 클래스.class' - ' 아우터 클래스$이너 .. 12 - 2장 인터페이스 1. 인터페이스의 정의와 특징 - 내부의 모든 필드가 public static final로 정의 - static과 default 메서드 이외의 모든 메서드는 public abstract로 정의 - interface 키워드 사용하여 선언 - 인터페이스 구조 interface 인터페이스명 { public static final 자료형 필드명 = 깂; public abstract 리턴 타입 메서드명(); } interface A { public static final int a = 3; public abstract void abc(); } - 제어자를 명시적으로 적어 주지 않으면 컴파일러가 자동으로 각각의 제어자 삽입 -> 메서드명 뒤에 중괄호가 없는데도 오류가 발생하지 않으므로 abstract가 자동으로 붙.. 12-1장 추상 클래스 1. 추상 클래스의 정의 - 추상 메서드(abstract method) - 메서드의 본체가 완성되지 않은 미완성 메서드 - 중괄호 자체가 없음 - 중괄호가 없기 때문에 끝을 알리는 세미콜론(;)으로 끝나야 함 abstract 리턴 타입 메서드명(입력매개변수); abstract void abc(); - 추상 클래스 (abstract class) - 추상 메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의돼야 함 - 추상 클래스는 메서드의 기능이 정의돼 있지 않은 미안성메서드가 1개 이상 있다는 의미 abstract class 클래스명 { } abstract class A { abstarct void abc(); void bcd(){ //... } } 2. 추상 클래스의 특징 - 추상 클래.. 이전 1 ··· 89 90 91 92 93 94 95 ··· 112 다음