노트정리

2022_10_17 정리

0304호 2022. 10. 17. 17:17

2022_10_17
인터페이스 이어서 시작

  인터페이스는 클래스가 아님
  그러므로 일반변수나 일반메서드를 사용할 수 없다.
  
  interface가 선언되면 public static final을 생략해도 자동으로 붙음(상수)
  public interface 클래스명{}  -> public static final 클래스명{}
  메서드를 추상메서드형식으로 선언하면 abstract를 붙이지 않아도 자동으로 붙음(추상메서드)
  void run();  -> public abstract void run();
  상수와 추상메서드를 사용할때 사용함
  
  자바 8버전 이후엔 static과 default를 선언 가능
  
  인터페이스는 클래스랑 별개이기 때문에 클래스를 상속 받아도 인터페이스를 상속받는게 가능하다
  class Dog extends Animal implements 포유류 {}
  class 클래스명 extends 부모클래스 implements 인터페이스
  
  인터페이스는 다중상속을 지원한다 (,) 쉼표 하나로 연결
    여러 인터페이스를 동시 구현 할 수 있다.
단 인터페이스에 있는 모든 추상메서드는 자식클래스에서 모두 오버라이딩 되야한다.

  인터페이스는 객체의 사용 방법을 정의한 타입
   객체의 교환성을 높여주기 때문에 다형성을 구현하는 중요한 역할을함
   
   interface간에도 상속이 가능하다
   interface간에 상속은 extends를 이용한다
   
 인터페이스는 상수와 추상메서드 만을 구성멤버로 가진다
 1. 인터페이스는 기본적으로 다중상속을 지원한다.
 2. 자바의 인터페이스는 객체의 사용 방법을 정의한 타입(메서드 명세서)으로 다형성을 구현하는 매우 중요한 역할을 한다. 
    인터페이스도 데이터 타입(부모타입)이 될 수 있다!
 3. 사용방법이 동일한 클래스를 만드는 기술이다  
 인터페이스의 구현키워드는 implements 인터페이스간의 상속은 extends
 
   oop언어의 기본
 1. 메서드
 2. 상속
 3. 오버라이딩 vs 오버로딩
 4. this, super
 5. 접근제어자
 6. 은닉 (getter setter)
 7. 다형성(클래스형변환
 8. static
 9. final 
 10. abstract
 11. 인터페이스
 12. 예외처리

예외처리 

 예외에는 컴파일러 체크 예외와 실행 예외가 있다.
 컴파일러 체크 예외는 빨간줄이 쳐지는 문법적 오류가 있는 에러;
 실행예외는 문법적으로는 맞지만 실행했을때 발생하는 에러;

  예외처리 
   자바는 예외처리 메커니즘을 제공한다
    프로그램에서 문제가 될만한 부분을 예상하여 사전에
    "문제가 생기면 이렇게 처리하라" 라고 프로그래밍하는것을
예외처리라고 한다.

 NullPointerException - NPE
  값이 없는 상태, 즉 null값을 갖는 참조 변수로 객체 접근 연산자인 .을 사용했을 때 발생함
 ArrayIndexOutOfBoundsException
  배열에서 인덱스 범위를 초과하여 사용할 경우 발생
 NumberFormatException
  문자열로 되어 있는 데이터를 숫자로 변경하는 경우에 발생
 ClassCastException
  형변환은 부모클래스와 자식클래스간에 발생/구현클래스와 인터페이스간에 발생/ 
  이러한 관계가 아니면 다른클래스로 타입변환이 불가능함
 ---------------------------------------
 StackOverflow 사이트에 들어가면 모든 정보가 있다.
 사이트를 적극활용하여 에러를 찾아보자
 ----------------------------------------
 
 Try~catch~finally
  try블록에는 예외가 발생 할 수도 있는 코드를 작성(뭐든지 가능)
  catch블록은 에러가 발생하면 실행할 코드를 작성
  finally블록은 예외유무에 관계없이 항상 실행할 내용
  
  Try~Catch문은 elseIf문처럼 계속 이어서 작성가능
  
  예외처리 방법 1 (예외 떠넘기기)
   ----- throws
   메서드 뒤에 // throws 예외종류 //
   throws는 메서드나 생성자를 호출한곳으로 예외를 떠넘기는 코드이다
   (메서드 호출자에게 예외를 던지는 느낌)
   throws키워드가 붙어있는 메서드는 반드시 try블록 내부에서 호출되어야하고,
   catch블록에서 떠넘겨받은 예외를 처리해야한다.
   //예외처리를 하면 예외의 내용을 알 수가 업식에
   //예외의 내용을 확인하기 위해서 catch영역에서 항상 사용합니다.
  떠넘기기를 사용하면 메서드가 에러가 발생하는 부분에서 종료된뒤 catch하는 곳으로 바로 넘어가버린다
  
  예외 강제 발생 시키기 -----------------거의안씀
  사용자가 직접 선언한 예외 클래스나 자바가 제공하는 예외 API에서 예외를 강제 발생시키려면 throw라는 키워드를 이용합니다.
  반환이 있는 메서드에서 강제종료를 할때 사용함
  throw new Exception을 사용하면 예외를 만들어서 뒤에있는 메서드를 넘어뛰고 catch하는곳으로 넘어감

  API
  api에서는 메서드들을 읽어오는법과 사용하는방법들 배워서 응용한다.