예외처리 세부 , 내부클래스 (inner Class)

2009. 6. 23. 16:41 - 에릭투스

l  배열(Array)

l  정의 : 같은타입의 객체 또는 기본형 자료를 저장하는 저장소로써,

                              생성될때 그 크기가 고정되는 저장소.

  

l  생성방법  1): type[]변수명 = new type[저장소크기];

                               2): type[]변수명 = { values1, values2, values3 };

                              Ex) String[]str = { 1, 2, 3 };

                                           Int [][]I = { {1,2},{3,4,5}};

--------------------------------------------------------------------

l  예외처리(exception)

-      정의: 프로그램이 정상적으로(의도한대로) 진행되지 못하게 되는  돌발상황

-      계층도 :

Object trowable error : system

-      Exception : 우리가 다룰 예외

RuntimeException

CheckedException(런타임exception)

 

-      목적 : 정상적인 처리를 위해.(중간에 이상한 상황 때문에 멈추는 것을 막음)

                     프로그램 수행시에 발생할 수 있는 상황을 정해놓고 해당되는 상황에

                     적절한 조치를 취해서 프로그램이 정상적으로 작동하게 하는 것.

 

 

Runtime Exceptiond은 던지지 않아도 던짐,

 

예외처리 특징

             Exception은 메소드,생성자에서 발생한다.

                           Ex) 생성자에서 던지고있을 때

:Human() throws Exception{}

             발생시킬때에는(던질때에는) throw라는 예약어를 사용한다.

Ex) Throw new JWJException();

 

            

             던져진 exception은 바로 try{}catch 하거나, throws라는 예약어를

             사용해서 메소드를 호출한곳으로 떠넘길수 있다.(또던진다)

Ex) void badmethod() throws IOException, Exception

             잡는 방법

                           Try{

예외가 던져지는 구문}

                           Catch(예외클래스명 변수명){

                                        예외처리구문      

}

catch절에서 두개이상의 Exception을 잡을 경우 반드시 하위 Exception부터 잡아야한다.

             Ex) try{} catch(JWJException e){} catch(Exception e){}

 

 

Finally

자동으로 throw되고 잡지 않아도 되는 예외가 있다.

1)    RuntimeException, Error

 -throws 안해도 되고, 해도된다.

             -try catch 안해도 되고 해도된다.
 

Finally

             무조건실행을 해야한다,

             try절만 나오면 finally절을 할수있다.

 

return이 된다할지라도 finally는 실행이 된다.            

 

 

Finnaly절은 try절과 함께 쓰이며, catch절의 실행유무와 상관없이 무조건 실행된다.

(심지어 return문이 나와도 실행한다.)

 

 

 

 

 

 class안에 class인 중첩클래스.

Class ~ {

             class

}

<class안에 class>

Nested Class , inner class, 내부클래스, 중첩클래스

 

             사용이유 : 다른클래스 참조하기 싫다거나, 클래스를 다른쪽에 내놔서

                              참조하는것을 막기위해.

             But 이런 중첩클래스를 자주사용하지 않고, 거의 사용 않함.

 

1. Static이 붙어있는 내부클래스 , static이 없는 내부클래스.(오늘)

2. Anonymous inner class : 중요 (내일)

 

1.     static이 붙어있는 것들 : static nested class

2.     static이 안 붙어있는것들 : inner class

 

마치 필드처럼 사용.

원래클래스앞에 접근제한자 : public, default

중첩클래스 앞에 접근제한자 : public protected default private

                                           : static이 붙으면 클래스별로.존재

                                           : static이 안붙으면 객체별로 존재

 

Class A{

  Class B

}

컴파일 하면 (A$B.class생성됨)

 

 

 

  

내부클래스이고 static이 붙어있기 때문에

Name static이 아니니까 사용 x

 

 

다른 카테고리의 글 목록

자바 기본 공부/기초 이론 카테고리의 포스트를 톺아봅니다