프로그래밍 언어/Java 37

[Java] 예외 클래스(Exception Class)

■ 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생시점에 따라 3가지로 나눌 수 있다, 컴파일 에러: 컴파일 시에 발생하는 에러 런타임 에러: 실행 시에 발생하는 에러 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 런타임 에러를 방지하기 위해서는 프로그램의 실행도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요하다. 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램의 오류를 2가지로 구분하였다. 에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 ■ ..

[Java] 날짜 / 시간 (java.time.*)

■ LocalDate, LocalTime, LocalDateTime 날짜와 시간을 다루기 위해 JDK8에 추가된 클래스 Legacy 클래스로 Date 클래스와 Calendar 클래스가 있으며, Date 클래스 관련 생성자와 클래스들은 대부분 Deprecated되었다. 이 3개의 클래스는 타임존의 개념을 사용하지 않는다. LocalDate: 날짜 정보를 나타내기 위해서 사용 LocalTime: 시간 정보를 나타내기 위해서 사용 LocalDateTime: 날자와 시간 정보 모두를 나타내기 위해 사용. LocalDate와 LocalTime을 합친 것이라고 볼 수 있다. LocalDate, LocalTime, LocalDateTime 클래스는 날짜와 시간을 다루는 가장 기본이 되는 클래스이다. new 키워드를 ..

[Java] String Test (주민번호 검증 프로그램)

## StringTest1 ## StringTest2 ## [문제] String으로 주민번호 검증 프로그램 키보드로부터 주민번호를 입력 받아 올바른 주민번호인지 판단하고 주민번호로부터 정보를 추출하여 출력하는 코드를 작성하시오. 1. 검증 내용  다음 페이지를 참고하여 사용자 정의 메소드를 확인하고 필요한 메소드를 작성할 것.  주민번호는 “-“ 포함 14자리여야 한다.  생년월일 뒤에 “-“이 포함되어 있어야 한다.  “-“ 앞과 뒤에는 숫자 리터럴만 가능하다.  성별에 해당하는 8번째 위치는 1~4까지의 값만 가능 (1, 3:남자, 2, 4: 여자)  검증 코드는 아래의 알고리즘으로 구현하여 확인  문자열과 관련된 다양한 메소드를 이용하여 작업한다. 2. 주민번호 유효성 검증 알고리즘 -..

[Java] Set / Map / HashMap

■ Set Set은 객체의 저장 순서가 유지되지 않고 중복해서 저장할 수 없는 특징을 가지고 있다. Set은 순서가 없기 때문에 인덱스가 없고 따라서 인덱스로 객체를 검색해서 가져오는 메소드도 없다. ■ Map Map은 키(key)와 벨류(value)로 구성된 객체를 저장하는 구조를 가지고 있다. 키(key)는 중복 저장할 수 없지만 값(value)는 중복 저장할 수 있다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다. ■ HashMap hashMap은 map 인터페이스를 구현한 대표적인 Map 컬렉션이다. 주로 key 타입은 String을 많이 사용하고, value 타입은 저장할 객체 타입을 사용한다. ## Map, HashMap package str..

[Java] ArrayList

■ ArrayList ArrayList는 List 인터페이스의 대표적인 구현 클래스이다. package struct; import java.util.ArrayList; import java.util.List; public class ArrayListTest { public static void main(String[] args) { // ArrayList는 클래스(concrete class) : 객체 생성할 수 있는 것 // abstract 클래스 (interface, abstract class) : 객체 생성 못하는 것 List list = new ArrayList(); List list2 = null; // CREATE list.add("사과"); list.add("배"); list.add("바나나"..

[Java] 추상 클래스(Abstract Class)

■ 추상 클래스(Abstract Class) 하나 이상의 추상 메소드를 포함하거나 class 선언부에 abstract 키워드를 갖고 있는 클래스 추상 메소드는 선언만 되어 있고 구현이 없는 메소드 추상 클래스는 일반 클래스와 달리 단독으로 객체를 생성할 수 없으며, 반드시 추상 클래스를 상속한 실제 클래스를 통해서만 객체를 생성할 수 있다. ■ 추상 클래스의 용도 공통의 기능을 정의하여 자식 클래스에서 상속받아 사용하기 위해 다형성을 구현하기 위해