본문 바로가기
BE/JAVA

[기본] 키워드로 간단하게 알아보는 Java.3

by スモモ🍒 2024. 2. 23.

● 인터페이스(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) ]