JAVA(3)

Ming·2024년 6월 13일

해당 내용은 실습이 주가 되었으므로 깃허브 링크로 대신함.

인터페이스

  • 자바에서 클래스들이 구현해야 하는 동작을 지정하는 역할을 한다.
  • 특정 클래스들에게 특정 기능을 강제화할 때 사용한다.
  • 실행 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다.

선언

  • [접근 제한자] interface 인터페이스명 { ... }
  • 인터페이스 선언은 class 키워드 대신에 interface 키워드를 사용한다.
  • 인터페이스는 선언된 필드는 모두 public static final의 특성을 갖는다.
  • 인터페이스에 선언된 메소드는 모두 public abstract의 특성을 갖는다.
  • 자바 8부터 디폴트 메소드와 정적 메소드도 선언이 가능하다

구현

  • 인터페이스를 구현하는 클래스는 클래스 선언부에 implements 키워드를 추가하고 인터페이스명을 명시해야 한다.
  • 인터페이스를 구현하는 클래스는 인터페이스에 정의된 추상 메소드를 반드시 오버라이딩 해야 한다.
  • 상속과 다르게 인터페이스는 다중 구현이 가능하다.

상속

  • 인터페이스도 다른 인터페이스를 상속할 수 있다.
  • 인터페이스는 클래스와 달리 다중 상속을 허용한다.
  • [접근 제한자] interface 하위인터페이스 extends 상위인터페이스1, 상위인터페이스2 { ... }
  • 하위 인터페이스를 구현하는 클래스는 하위 인터페이스의 추상 메소드 뿐만 아니라 상위 인터페이스들의 모든 추상 메소드들을 오버라이딩 해야 한다.

인터페이스 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/14_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4

예외처리 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/15_%EC%97%90%EC%99%B8%EC%B2%98%EB%A6%AC

기본 API 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/16_%EA%B8%B0%EB%B3%B8API

컬렉션 Collection

LinkedList vs ArrayList

  • 삽입/삭제가 빈번히 일어나는 경우 LinkedList를 사용하는 것이 좋다.
  • ArrayList는 삽입 삭제의 경우 앞으로 땡기고 미는(?) 작업이 필요하기 때문

list 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/17_%EB%A6%AC%EC%8A%A4%ED%8A%B8

lombok

  1. lombok 다운로드
    https://projectlombok.org/download

  2. lombok 설치

    • 설치된 폴더에서 터미널 연 후 명령어 입력
      java -jar ./lombok.jar
  3. lombok 어노테이션

  • @Data: getter와 setter 자동 생성
  • @NoArgsConstructor: 매개변수가 없는 생성자 자동 생성
  • @AllArgsConstructor: 모든 필드를 매개변수로 가지는 생성자 자동 생성
  • @Getter: getter 자동 생성
  • @Setter: setter 자동 생성

set 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/18_%EC%84%B8%ED%8A%B8

map 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/19_%EB%A7%B5

0개의 댓글