School
Java Programming - Exception
에러는 JVM실행에 문제가 생겼다는 것이므로 JVM위에서 실행되는 프로그램을 아무리 견고하게 만들어도 결국 실행 불능이 된다. 자바에서는 에러 이외에 예외라고 부르는 오류가 있다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 동일하다. 그러나 예외는 예외 처리를 통해 프로그래밍을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외에는 두 가지 종류가 있습니다. 바로 일반예외이고 다른 하나는 실행 예외 입니다. 일반 예외는 컴파일러 체크 예외라고도 하는데, 자바 소스를 컴파일 하는 과정에서 예외 처리 코드가 필요한지 검사하기 때문입니다. 실행 예외는 컴파일하는 과정에서 예외 처리 코드를 검사..
Java Programming - 중첩 클래스 & 중첩 인터페이스
클래스가 여러 클래스와 관계를 맺는 경우는 독립적으로 선언하는 것이 좋으나, 특정 클래스와 관계를 맺을 경우에는 관계 클래스를 클래스 내부에 선언하는 것이 좋다. 또한 인터페이스도 클래스 내부에 선언할 수 있다. 이런 인터페이스를 중첩 인터페이스라고 한다. class ClassName { class NestedClassName { } } class ClassName { interface NestedInterfaceName { } } 중첩 인터페이스는 주로 UI프로그래밍에서 이벤트를 처리할 목적으로 많이 활용된다. 예를 들어 안드로이드에서는 다음과 같이 View 클래스의 클릭 이벤트를 처리하는 구현 클래스를 만들 수 있다. 중첩 클래스 중첩 클래스는 클래스 내부에 선언되는 위치에 따라서 두 가지로 분류된다..
Java Programming - Interface
자바에서 인터페이스는 객체의 사용 방법을 정의한 타입입니다. 인터페이스는 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 합니다. 인터페이스 인터페이스는 객체 사용 설명서이므로 런타임 시 데이터를 저장할 수 있는 필드를 선언할 수 없습니다. 그러나 상수 필드는 선언이 가능합니다. 상수는 인터페이스에 고정된 값으로 런타임 시에 데이터를 바꿀 수 없습니다. 상수를 선언할 때에는 반드시 초기값을 대입해야 합니다. 추상 메소드는 객체가 가지고 있는 메소드를 설명한 것으로 호출할 떄 어떤 매개값이 필요하고, 리턴 타입이 무엇인지만 알려준다. 디폴트 메소드는 인터페이스에 선언되지만 사실은 객체(구현 객체)가 가지고 있는 인스턴스 메소드..
Java Programming - Inheritance
상속은 이미 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄인다. 상속을 해도 부모 클래스의 모든 필드와 메소드를 물려받는 것은 아니다. 부모 클래스에서 private접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 그리고 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외된다. 그 이외의 경우는 모두 상속의 대상이 된다. 부모 생성자 호출 부모 객체가 먼저 생성되고 자식 객체가 그 다음에 생성된다. 아래 코드는 DmbCellPhone 객체만 생성하는 것처럼 보이지만. 사실은 내부적으로 부모인 CellPhone 객체가 먼저 생성되고. DmbCellPhone객체가 생성된다.] DmbCellPhone d..