본문 바로가기

전체 글

(61)
형식화 클래스(DecimalFormat, SimpleDateFormat) 출처 - Java의 정석 기초편 (남궁 성) 1. 형식화 클래스 - java.text패키지의 DecimalFormat(숫자 형식화), SimpleDateFormat(날짜 형식화) - 데이터 ↔ 형식화된 데이터 2. DecimalFormat - 숫자(parse) ↔ 형식화(format) - Integer.parselnt()는 콤마(,)가 포함된 문자열 → 숫자 변환 불가 - 숫자 → 형식 문자열 double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); // result = "1.2E6" - 형식 문자열 → 숫자 DecimalFormat df = new DecimalFo..
날짜와 시간 출처 - Java의 정석 기초편 (남궁 성) 1. 날짜와 시간 - java.util.Date (JDK1.0): 빈약 - java.util.Calendar (JDK1.1): 개선, 여전히 단점 존재 - java.time패키지 (JDK1.8): 개선, 날짜와 시간 따로 다루기 가능 2. Calendar클래스 - 추상클래스: 객체 생성 불가 → getInstance() 메서드를 통해 구현된 클래스의 인스턴스 반환(현재 시스템의 날짜와 시간) - getInstance()는 태국 제외 GregorianCalendar의 인스턴스 반환 Calendar cal = new calendar(); // 에러!!! Calendar cal = Calendar.getInstance(); // 추상화 3. get() - Calen..
Object클래스 - Math클래스, 래퍼 클래스, Number클래스, 오토박싱, 은박인 출처 - Java의 정석 기초편 (남궁 성) 1. Math클래스 - 수학관련 static 메서드 집합 - round()로 원하는 소수점 아래 자리에서 반올림(100 곱하고 100.0 나누기) 90.7552 * 100 // 9075.52 Math.round(9075.52) // 9076 9076 / 100.0 // 90.76 2. Math메서드 static double abs(double a) // 절대값 반환 static double ceil(double a) // 올림 static double floor(double a) // 버림 static double max(double a, double b) static double min(double a, double b) static double random..
Object클래스 - StringBuffer, StringBuilder 출처 - Java의 정석 기초편 (남궁 성) 1. StringBuffer클래스 - 문자열을 저장, 다루기 위한 클래스 - String처럼 문자형 배열(char [])을 가지고 있음 - String과 달리 내용 변경 가능 (mutable) StringBuffer sb = new StringBuffer("abc"); sb.append("123") // 문자열 추가 가능 2. StringBuffer 생성자 - 저장할 문자열 길이를 고려해서 적절한 크기로 생성 - 배열 길이 변경 불가, 공간 부족시 새로운 배열 생성 - 새로운 배열 생성 → 내용 복사 → 참조변경 char newValue[] = new char[newCapacity]; // 새로운 배열 생성 (Capacity 정수값) System.arrayco..
Object클래스(equal, hashCode, toString, String클래스, join) 출처 - Java의 정석 기초편 (남궁 성) 1. Object클래스 - 모든 클래스의 최고 조상 - 오직 11개 메서드 → 모든 클래스에서 바로 사용 가능 protect Object clone() // 오버라이딩시 public public boolean equals(Object obj) protected void finalize() // 오버라이딩시 public public Class getClass // 설계도 정보 public int hashCode() public String toString() public void notify() public void notifyAll() public void wait() public void wait(long timeout) public void wait(lon..
예외처리 출처 - Java의 정석 기초편 (남궁 성) 1. 프로그램 오류 - 컴파일 에러: 실행 불가 - 런타임 에러: 실행중 발생, 프로그램 종료 - 논리적 에러: 실행은 되지만 의도와 다르게 동작 2. 자바 런타임 에러 - 에러(error): 심각한 오류(메모리 부족, 스택오버플로우) - 예외(exception): 미약한 오류 → 예외처리 3. 예외 클래스 계층구조 - Object클래스(최고 조상), Throwable(모든 오류의 조상), Exception(모든 예외의 조상) - Exception과 자손들: 사용자 실수 - RuntimeException과 자손들: 프로그래머 실수 4. try-catch문 - 예외처리: 프로그램 실행시 발생하는 예외의 발생에 대비한 코드 작성해서 비정상 종료를 막고 정상적인 실..
내부 클래스(inner class), 익명 클래스(anonymous class) 출처 - Java의 정석 기초편 (남궁 성) 1. 내부 클래스 - 클래스 안의 클래스(서로 긴밀한 관계) - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 가능 - 외부에는 불필요한 클래스 감추어 코드 복잡성 줄일 수 있음(캡슐화) class A { // B의 외부 클래스 … class B { // A의 내부 클래스 … // A의 객체 생성 없이 A의 멤버 접근 가능 } … } 2. 내부 클래스 종류와 특징 - 종류와 유효범위(scope)는 변수의 선언위치에 따른 종류와 같음 - 인스턴스 내부 클래스, static 내부 클래스, 지역 내부 클래스, 익명 클래스 - 멤버변수처럼 접근 제어자 모두 사용 가능 (public, (default), protected, private) class Outer { ..
추상 클래스(abstract class), 인터페이스(interface) 출처 - Java의 정석 기초편 (남궁 성) 1. 추상 클래스 - 일반 클래스인데 미완성 메서드(추상 메서드) 포함 - 미완성 설계도: 인스턴스 생성 불가 - 상속을 통해 추상 메서드 구현(몸통 {} 작성)해야 인스턴스 생성 가능 abstract class 클래스 이름 { ... // 추상 메서드 포함 } abstract class Player { abstract void play(int pos); abstract void stop(); } 2. 추상 메서드 - 미완성 메서드: 구현부(몸통) 없는 메서드 - 상속을 통해 자손 클래스가 조상의 추상 메서드를 구현해야 함 - 하나라도 미구현시 자손 클래스도 추상 클래스로 지정 abstract 리턴타입 메서드이름(); // 괄호 {} 대신 문장의 끝을 알리는 ..