2010. 4. 28. 10:16 Program.../Java Language
자바를 배워보자 Java Begin (4)
15. 인터페이스 (interface)
(1) 설명
모든 메소드가 추상메소드, 모든 속성이 상수(대문자)로 구성된 틀
즉, 추상 메소드와 상수로만 구성된 껍대기.
(2) 생김새 (ex: 004day/Inter.java)
(3) 특징
<1> interface 앞에 붙을 수 있는 접근 제한자는 public 과 default 이다.
(public 이 붙으면 반드시 interface 이름과 파일이 같아야 한다.)
<2> static 메소드는 존재하지 않고, static 변수는 존재할 수 있다.
(static 변수는 interface 의 소유다)
<3> interface 의 맴버변수는 final 생략 가능(자동 final 셋팅),
메소드 앞에는 abstract 생략가능 (자동 abstract 셋팅)
멤버변수는 상수이기에 반드시 선언과 동시에 초기화해야 한다.
<4> 자식클래스로 하여금 다중상속(implements)을 가능하게 한다.
(ex: class InterClass implements Inter1, Inter2, Inter3....)
<5> 인터페이스 끼리는 다중상속(extends)이 가능하다.
(ex: interface Inter3 extends Inter1, Inter2...)
16. 인터페이스와 추상클래스를 사용하는 목적 (다형성)
- 구현 메소드의 내용을 알 필요가 없이 인터페이스나 추상 클래스의 내용만 알면
개발자가 구현 클래스를 이용해서 프로그램을 작성할 수 있다.
즉, 타 소프트웨어와 독립적인 프로그램을 작성할 수 있다. (ex: JDBC)
(ex: 004day/Term.java)
cf) 인터페이스는 '통로'다. - GUI
cf) 인터페이스는 '껍대기'다. - 추상메소드/상수
17. 연산자 (Operator)
(1) 설명 : 변수들을 연산하게 하는 기호
(2) 종류
<1> 산술연산자
ex) +, -, *, /, %
cf) java에서 +연산자는 String에 사용시 +연산자 오버라이딩 된다.
<2> 증감연산자
ex) ++, --
- 앞에 붙으면 모든 연산자보다 우선순위가 높고 뒤에 붙으면 우선순위가 가장 낮아진다.
<3> 대입연산자.
ex) =
<4> 산술 할당(대입) 연산자.
ex) +=, -=, *=, /=, %=
<5> 비트연산자
ex) &, |, ^, ~, shift연산자(<<, >>, <<<)
<6> 비교연산자 (true/false)
ex) ==, !=, <, >, <=, >=
<7> 논리연산자
ex) &&, ||, &, |, !
<8> 논리 할당(대입) 연산자)
ex) &=, |=
<9> 조건 연산자
ex) 삼항 연산자 (A? B:C)
int a=(3<4)? 1:2;
int a = 0;
if(3<4) a = 1;
else a = 2;
//System.out.println("a : " + a);
<10> instanceof 연산자 (true/false)
ex) 객체이름 instanceof 클래스이름
// 연산자 우선순위를 인식해야 한다.
(ex: 004day/OperTest.java)
18. 조건문
(1) if(boolean형){}문
(2) if(boolean형){} else if(boolean형){}...문
(3) if(boolean형){} else if(boolean형){}... else{} 문
(4) switch(정수형){case : ... default : }문
- 정수형, break, default 위치에 관계 없다.
- case 에게 {}이 필요가 없다.
(ex: 004day/ConTest.java)
19. 반복문
-> 구성요소 : 초기식, 조건식, 증감식
(1) while(boolean형)
- 초기값은 out of Loop, 증감식은 in of Loop
(2) do{} while(boolean형);
- 적어도 한번은 실행된다.
(3) for (초기식; 조건식; 증감식){}
(ex: 004day/LoopTest.java)
20. 제어의 이동 ( * * * )
(1) 제어란? : 시간의 개념이 들어간 프로그램의 흐름
(제어점 : 시간을 정지한다면 그때의 프로그램 실행점)
(2) 제어의 특징
자기를 호출한 메소드나 소프트웨어(JVM)에 다시 돌아오는 성격
(3) 제어핸들링 keyword
<1> return
호출한 놈/곳(소프트웨어/메소드)에게 제어권을 넘긴다.
(ex: ControlTest.java)
<2> break
[1] switch 문 : 자기를 둘러싼 첫번째 (switch)블럭을 나간다.
[2] 반복문 : 자기를 둘러싼 첫번째 (반복)블럭을 나간다.
cf) labled break문
(ex: ControlTest2.java)
<3> continue
(해당 조건에 맞으면)건너뛴다.
(ex: ControlTest3.java)
21. 예외처리
(1) 예외(Exception)
프로그램이 정상적으로 진행하지 못하게 하는 돌발상황
ex) 전원이 갑자기꺼짐, 파일 읽다가중단, 숫자가아닌 문자를 숫자로 바꿀려 할때
채팅하다가 상대방이 나가버린 경우, (채팅)서버가 다운.....
(2) 예외처리 계층도
Object
│
Throwable
┌────┴────┐
Error Exception
┌──┴──┐
RuntimeException CheckedException
cf) Error 는 자바 시스템관련 문제시에 발생되는 예외이기때문에 프로그래머가
잡을수 없고 Exception 만 프로그래머가 잡을 수 있는데, CheckedException은
컴파일시 체킹하는 예외이고 RuntimeException 은 실행시 체킹하는 예외로써
잡지 않아도 컴파일은 정상적으로 실행된다.
(3) 예외처리의 목적
프로그램 진행시 발생할 수 있는 돌발상황을 예외로 미리 정해놓고, 해당하는 상황의
예외가 발생했을 경우 적절한 조치를 취해서 프로그램이 정상적으로 작동하도록 하기
위함이다.
(4) 예외처리의 특징
<1> 예외는 메소드 또는 생성자에서만 발생
<2> 클래스 설계시 예외를 발생시킬 때에는 throw 라는 예약어 사용
<3> 예외가 발생되는 메소드 또는 생성자에는 throws 예약어로 호출한 놈/곳으로 넘기거나
(== 처리가 되어야 함을 명시하거나) try~catch 절로 직접 잡는다.
<4> 예외는 자신의 Exception 또는 그 상위(부모) Exception 으로 잡을 수 있다.
(5) 예외처리 방법
<1> try{
예외를 발생시키는 구문
}catch (발생된 예외객체){
예외가 발생했을 때의 로직 처리
}
<2> 예외를 호출한 놈/곳으로 넘긴다. throws 절로 점기는 방법
(ex : ExceptionTest1.java)
(6) 하나의 메소드/생성자에서 같은 try블록에 두개 이상의 Exception이 발생할 경우 처리
<1> 상속관계 Exception 이라면
-> (더욱 구체적인 Exception 처리를 위해서) 하위 Exception 부터 잡아준다.
<2> 상속관계가 아닌 Exception 이라면
-> catch() 절의 위치가 상관이 없다.
(7) finally 절
<1> 설명 : (try{} 나 catch(){} 가 수행되고 나서) 항상 수행되는 절이다.
<2> 특징
- try{}이 먼저 기술되어야 나올 수 있다.
- try{} 나오면 반드시 catch(){} 또는 finally{}가 나오던지 아니면
둘다 나와야 한다.
- return 을 만나도 항상 수행된다.
예외) 제어가 try{}나 catch(){}절에서 System.exit();를 만나면 finally 절은 수행되지 않는다.
(ex : ExceptionTest2.java)
'Program... > Java Language' 카테고리의 다른 글
자바를 배워보자 Java Begin (5) (0) | 2010.04.28 |
---|---|
자바로 Swing계산기 만들기 (0) | 2010.04.28 |
자바를 배워보자 Java Begin (3) (0) | 2010.04.28 |
자바를 이용한 Swing 달력만들기 (0) | 2010.04.28 |
자바를 배워보자 Java Begin (2) (0) | 2010.04.28 |