본문 바로가기

콩's EDUCATION/콩's JAVA

- 인터페이스(Interface) : 서비스목록이지만 구현체가 아니다. 약속된 규약 정의, 구현 클래스가 존재해야 사용 가능, Reference Type

구성 요소 : 멤버필드 à public final static 만 정의됨.

멤버메서드 à abstract 메서드만 정의됨.

접근 지정자    

AccessModifier interface 인터페이스이름 { 멤버필드.. 멤버메서드..}

Public

(default)

AccessModifier interface 인터페이스이름 extends 부모인터페이스, 인터페이스1, 인터페이스2 { 멤버필드.. 멤버메서드..

Class 클래스이름 implements 인터페이스 이름{}}}

-인터페이스는 메서드의 매개변수로도 전달 가능하고 메서드의 리턴 타입으로 선언 가능하다.

인터페이스를 사용하는 장점: 개발시간을 단축시킬 수 있다, 표준화가 가능하다. 서로 관계없는 클래스들에 대해서 관계를 맺어주는 역할을 한다.

     독립적 프로그래밍이 가능하다.

프로그램 오류

컴파일 오류 : 문법적, 규칙적 오류

실행시 오류(Runtime 오류): Error(프로그램 코드에 의해 수습될 수 없는 심각한 오류) 종류, Exception(수습 될 수 있는 가벼운 오류) 종류

ArrayIndexOutOfBoundsException, NullPointerException, ClassCastException

- 예외 처리

Try~catch~finally, throws.

Catch는 한번 이상 여러 번 선언 가능(단 수행은 하나의 catch만)

 

try{

예외가 발생될 가능성이 있는 문장

}catch(발생한 예외클래스 이름 객체){

    예외 처리 문장;}

catch(발생한 예외클래스 이름 객체){

    예외 처리 문장;

}finally{

항상 수행문장; // 리소스 정리작업

RunTimeException은 컴파일시에 오류발생 가능성에 대해서 체크하지 않음 à Unchecked Exception

컴파일시에 Checked Exception을 수행한다. 안정적 프로그램 처리를 위함.

Throws는 예외처리를 호출하는 쪽으로 전가하는 것.

- 사용자 정의 Exception 클래스

Public class 예외클래스이름 extends Exception{

멤버필드 선언;(초기화)

생성자 메서드(){}

예외처리시 필요한 메서드(){}

}

- 멤버 내부 클래스: 클래스내에 멤버로서 클래스를 선언 (GUI환경에서 내부클래스 사용하면 효율성이 좋음)

Static 내부클래스:

- 로컬 내부 클래스: 클래스의 메서드내에 클래스를 정의

익명클래스 : 이름없이 클래스에 대한 정의를 하고 동시에 생성

Public class 클래스이름{}

클래스이름():

Public class 클래스이름{

    멤버필드

    생성자 메서드(){}

    메서드(){}

    Class 클래스이름{ // 내부 멤버 클래스

    멤버필드

    생성자 메서드(){}

    메서드(){}

}

}

** 내부클래스에서는 내부클래스를 포함하는 외부클래스의 객체 생성없이 접근이 가능하다.

** 내부클래스를 포함하는 외부클래스에서는 내부클래스의 멤버에 접근하려면 반드시 객체 생성해서 객체 로 접근해야한다.

** 내부클래스는 외부클래스의 멤버이므로 private,protected 선언이 가능하다.