Chapter10 날짜와 시간 & 형식화(date, time and formatting) 1. 날짜와 시간 1.1 Calendar와 Date java.util.Date : 날짜와 시간을 다룰 목적으로 만들어진 클래스 java.util.Calendar : Date클래스를 개선한 클래스 java.time패키지 : Date와 Calendar의 단점을 개선 1.1.1 Date와 Calendar간의 변환 Calendar를 Date로 변환 Calendar cal = Calendar.getInstance(); ... Date d = new Date(cal.getTimeInMillis()); Date를 Calendar로 변환 Date d = new Date(); ... Calendar cal = Calendar.get..
1. java.lang패키지 1.1 Object클래스 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. 이 중 notify(), wait() 등은 쓰레드와 관련된 메서드이다. 1.1.1 equals(Object obj) 객체 자신과 주어진 객체를 비교하여, 같으면 true, 다르면 false를 반환 객체의 주소를 비교(참조변수 값 비교)X → 내용을 비교함 1.1.2 hashCode() 객체의 해시코드(hash code, 객체의 지문)를 반환하는 메서드 Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환. equals()를 오버라이딩하면, 두 객체의 hashCode()는 같아야 한다. System.identityHashCode(Object obj)는 Object..
1. 예외 처리(exception handling) 1.1 프로그램 오류 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러(프로그램 종료) 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류(메모리부족(OutOfMemoryError), 스택오버플로우(StackOverflowError)) 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것(프로그램 종료x) 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하기 위해 1.2 예외 클래스의 계층구조 Exception..
1. 상속(inheritance) 1.1 상속의 정의와 장점 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외) 자손의 멤버개수는 조상보다 적을 수 없다. class Child extends Parent{ //... } 조상 클래스 : 부모클래스, 상위클래스, 기반클래스 자손 클래스 : 자식클래스, 하위클래스, 파생된 클래스 1.2 클래스간의 관계 - 포함관계 class Point { // 원점 int x; int y; } class Circle { int x; // 원점의 x좌표 int y; // 원점의 y좌표 int r; } class Circle { Point c = new Point(); // 포함관계(원점) int ..
1. 객체지향언어 1.1 객체지향언어 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태 주요 특징 코드의 재사용성이 높다. 코드의 관리가 용이하다. 신뢰성이 높은 프로그래밍을 가능하게 한다. 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스의 정의 : 객체를 정의해 놓은 것을 의미 클래스의 용도 : 객체를 생성하는데 사용 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 유형의 객체 : 책상, 의자, 자동차 등과 같은 사물 무형의 객체 : 수학공식, 프로그램 에러와 같은 논리나 개념 2.2 객체와 인스턴스 인스턴스화 : 클래스로부터 객체를 만드는 과정 인스턴스 : 클래스로부터 만들어진 객체 인스턴스와 객체..
1. 배열(array) 1.1 배열(array)이란? 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 1.2 배열의 생성 int[] score; // int형 배열 선언(배열을 다루기 위한 참조변수 선언) score = new int[5]; // 배열을 생성(실제 저장공간을 생성) ///////////////////////////////////// int[] score = new int[5];// 위와 같은 문장 1.3 배열의 길이와 인덱스 인덱스의 범위는 0부터 '배열길이-1'까지 배열의 길이는 0도 포함된다. ex) int[] arr = new int[0]; 배열의 길이를 변경하는 법 : 더 큰 배열 생성, 기존 배열의 내용을 새로운 배열에 복사 배열이름.length : 배열..
1. 조건문 - if, switch 1.1 if문 if (조건식) { // 조건식이 참일 때 수행될 문장 } 1.2 if-else문 if (조건식) { // 조건식이 참일 때 수행될 문장 } else { // 조건식이 거짓일 때 수행될 문장 } 1.3 if-else if문 if (조건식1) { // 조건식1의 연살결과가 참일 때 수행될 문장 } else if (조건식2) { // 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다. } else { // else블럭은 생략 가능하다. // 위의 어느 조건식도 만족하지 않을 때 수행될 문장을 적는다. } 1.4 중첩 if문 if (조건식1) { // 조건식1의 연산결과과 true일 때 수행될 문장들을 적는다. if (조건식2) { // 조건식1과 조건식2..
1. 연산자(operator) 연산을 수행하는 기호 1.1 연산자와 피연산자 연산자 : 연산을 수행하는 기호 피연산자 : 연산자의 작업 대상 1.2 식과 대입연산자 식 : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것, 끝에 ';'를 붙힌다. 대입연산자 : '=', 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장 1.3 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산(+,-,*,/)과 나머지 연산(%) 비교 연산자 > = 비교 > 논리 > 대입 단항 > 이항 > 삼항 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다. → 헷갈릴수 있으므로 괄호('(', ')')를 사용하여 우선수위를 나타내는것이 낫다. 1.5 산술 변환 두 ..