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)


Posted by Duritz

공지사항

Yesterday
Today
Total
05-18 14:19

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31