본문 바로가기
빅데이터 부트캠프/Java

빅데이터 부트캠프 65일차

by Mecodata 2022. 10. 11.

인터페이스(Interface)

- 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형

- 인터페이스는 기본 생성자가 입력되지 않아도 다른 클래스에서 바로 객체를 불러와 사용 가능

- interface를 통해 선언할 수 있으며 implements를 통해 일반 클래스에서 인터페이스를 구현

- implements한 클래스는 implements의 내용을 다 사용해야

- 인터페이스 필드 = 기본 형태가 상수

- 인터페이스 메소드 = 기본 형태가 추상 메소드 (abstract)

-> 부모 메소드를 반드시 자식 클래스에서 재정의(오버라이딩)해야함

- 상수 = 인터페이스에서 특정값을 고정
- abstract = 기본 틀만 제공한 추상메소드를 자식 클래스에서 재정의하여 사용
- default = 인터페이스에서 제공 + 코드 변경 가능 
- static = 인터페이스에서 제공 + 코드 변경 불가


예외(Exception)

정의

※ 에러(Error)와 예외(Exception)의 차이

- 에러(Error) = 컴퓨터 하드웨어의 오작동 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것 (컴퓨터가 원인)
- 예외(Exception) = 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 (사람이 원인)

 

형식

- try {
예외 발생 가능성 존재하는 코드;
}catch(발생 가능성 존재하는 예외 Exception변수) {
예외 처리 코드;
}finally {
예외발생 여부와 무관, 무조건 실행되는 블럭

- finally는 생략 가능

- catch에서 |를 이용하여 여러개의 Exception에 대한 조건을 설정 할 수 있음 (Multi-catch)

- 메서드 정의시에 마지막에 [throw Exception변수]를 입력하면 해당 예외가 메서드 내에서 발생해도 패스하고 메서드가 속한 클래스 혹은 상위 메서드로 예외처리를 전가시킴


종류

- NullPointerException(NPE) = 객체가 null인 상태에서 .으로 접근했을 경우 발생 (객체가 없는데 객체를 사용하려는 경우)
- NumberFormatException = 문자를 숫자로 변환하려고 할때 숫자로 변환할 수 없는 문자라 변환이 불가능한 경우

ex) (String)'5'는 int로 변경가능하지만 (String)'A', (String)'7A'는 int로 변경 불가능

- ArrayIndexOutOfBoundsException = 배열의 인덱스 범위를 초과하여 사용할 경우 발생
- ArithmeticException = 어떤 숫자를 0으로 나누기를 시도한 경우 발생
- ClassCastException = 객체의 형변환을 시킬때 객체 타입 변환이 적절하지 않은 경우 발생

- [public class Exception명 extends Exception] 형식으로 새로운 예외처리를 정의할 수도 있음

 

※ ctrl + shift + o = import 패키지 자동 입력

 

lombok

- @Getter, @Setter, @ToSpring 등의 어노테이션을 입력하면 따로 코드로 메서드를 정의하지 않아도 자동으로 @로 입력한 코드가 적용되도록 하는 유용한 Java 라이브러리 

- lombok은 외부 라이브러리라 따로 다운로드 받은 뒤 사용할 이클립스 파일에 적용해줘야함

- 프로젝트 파일 우클릭 - properties - Java Build Path - Libraries - Add External JARs...로 추가 - Apply

- lombok을 적용하기 위해서는 해당 IDE의 ini파일에 [javaagent:lombok파일 경로]를 입력해야함

 

ArrayList

- array와 다르게 length 지정 X

- add(데이터) = 값 추가
set(인덱스 번호, 데이터) = 값 변경
remove(인덱스 번호) = 값 삭제
get(인덱스 번호) = 값 읽기

- size() = 길이 (length와 같은 역할)

댓글