● 인터페이스(Interface) : 객체의 사용 방법을 정의한 타입, 생성자를 가질 수 없다. class 대신 interface 클래스 사용
(상수 필드와 추상 메소드만을 구성 멤버로 가짐, 실행 시 실제 데이터를 저장하지 않는다.), 구현 시 implements 사용,
클래스와 달리 (인터페이스 간에도) 다중상속이 가능하다.
- 상수 필드 : public static final
- 추상 메소드 : 호출된 메소드는 최종적으로 객체에서 실행됨, 실행 블록이 필요 없는 추상 메소드로 선언
● 예외 (Exception) : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류,
예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.
자바에서는 예외를 클래스로 관리하며, 모든 예외 클래스는 java.lang.Exception 클래스를 상속받는다.
(프로그램에서 예외 발생 시 메세지가 console 뷰에 출력되면서 프로그램이 종료됨)
○ RuntimeException 클래스를 기준으로 구별 (하위(실행 예외) or 일반 예외)
- 일반 예외 (컴파일러 체크 예외, 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 있는지 검사)
- 실행 예외 (컴파일러 넌 체크 예외, 컴파일 과정에서 검사하지 않음, 개발자의 경험에 의해 작성해야 함)
1) NullPointerException : null값을 갖는 참조 변수, 객체가 없는 상태에서 객체 사용 시 예외 발생
2) ArrayIndexOutOfBoundsException : 배열에서 인덱스 범위를 초과할 경우 예외 발생
3) NumberFormatException : 문자열로 되어있는 데이터를 숫자로 변경 시 변환될 수 없는 문자가 포함 시 예외 발생
4) ClassCastException : 대입된 객체가 아닌 다른 클래스로 클래스 타입 변환 시 예외 발생
● 예외 처리 코드
○ try-catch-finally 블록 (메소드 내부에서 예외가 발생할 수 있는 코드 작성 시 사용, try 개수만큼 catch 다중 사용 가능)
try {
// 예외 발생가능 코드
} catch (예외클래스 e) {
// 예외 처리
} finally {
// 항상 실행
}
● 예외 떠넘기기
○ throws (메소드를 호출한 곳으로 예외를 떠넘길 수 있음, 메소드 선언부 끝에 throws 예외클래스 작성)
● java.lang 패키지 : 자바 프로그램의 기본적인 클래스를 담고 있는 패키지 (import 없이 사용 가능)
- Object 클래스 : 자바의 모든 클래스는 object 클래스의 자식이거나 자손 클래스다. 최상위 부모 클래스에 해당됨
(toString() : 객체의 문자 정보(문자열로 표현한 값)를 리턴, ex) 클래스이름@16진수해시코드
- System 클래스 : 운영체제의 일부 기능을 이용 가능 (프로그램 종료, 입출력, 현재 시간 읽기), 정적으로 구성
- String 클래스 : 자바의 문자열은 해당 클래스의 인스턴스로 관리
(equals(), charAt(), indexOf(), length(), replate(), substring(), trim()...)
- Math 클래스 : 계산에 사용할 수 있는 메소드를 제공, static 메소드
(abs() : 절대값, ceil() : 올림값, floor() : 버림값, max() : 최대값, min() : 최소값, random() : 랜덤값, round() : 반올림값)
● java.util 패키지 : 날짜 정보를 제공해 주는 유용한 API 포함
- Date 클래스 : 특정 시점의 날짜와 시간 정보를 저장하는 클래스 (년,월,일,시간)
(SimpleDateFormat 클래스와 함께 사용)
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
String strNow = sdf.format(now);
System.out.print(strNow); // 2024-02-23-17-37-20
- Calendar 클래스 : 운영체제의 날짜와 시간을 얻을 때 사용하는 추상클래스, 달력 (년,월,일,요일,오전/오후,시간)
(getInstance() 메소드를 이용)
Calender now = Calendar.getInstance();
int year = now.get(Calendar.YEAR); // 연도를 리턴
● API(Application Programming Interface) : 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음
[ 참고 : 혼자 공부하는 자바(https://www.hanbit.co.kr/store/books/look.php?p_code=B6700167549) ]
'BE > JAVA' 카테고리의 다른 글
컬렉션 프레임워크와 인터페이스 종류 (0) | 2024.06.25 |
---|---|
[JAVA] @ResponseBody, @RequestBody 란? (0) | 2024.03.12 |
[기본] 키워드로 간단하게 알아보는 Java.5 (0) | 2024.02.23 |
[기본] 키워드로 간단하게 알아보는 Java.2 (0) | 2024.02.23 |
[기본] 키워드로 간단하게 알아보는 Java.1 (0) | 2024.02.23 |