[Java의 정석] Chapter 10 날짜와 시간 & 형식화
2023. 6. 28. 16:48
study/Java의 정석
날짜와 시간 Date : 날짜와 시간을 다룰 목적으로 JDK1.0 부터 제공되어온 클래스 Calendar : JDK1.1 부터 제공되어온 클래스 java.time패키지 : JDK1.8부터 제공되어온 클래스 Calendar와 GregorianCalendar Calendar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 함 Calendar cal = new Calendar(); // 오류 Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스 반환 getInstance()는 시스템의 국가와 지역설정을 확인해서 태국인 경우에는 BuddhistCalendar의 인스턴스를 반환 태국..
[Java의 정석] Chapter 9 java.lang패키지와 유용한 클래스
2023. 3. 22. 14:28
study/Java의 정석
java.lang 패키지 java.lang 패키지는 자바프로그래밍에 가장 기본이 되는 클래스를 포함하고 있음 Object클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에, Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 protected Object clone() 객체 자신의 복사본을 반환 public boolean equlas(Obejct obj) 객체 자신과 객체 obj가 같은 객체인지 알려줌 protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출 public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class인스턴스를 반환 public int hashCode() 객체 자신의 해시코드를 반환 publi..
[Java의 정석] Chapter 8 예외처리
2023. 3. 22. 13:37
study/Java의 정석
예외처리(exception handling) 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 클래스의 계층구조 exception | |-IOException |-ClassNotFoundException |-... |-RuntimeException | |-ArithmeticException |-ClassCastException |-NullPointerException |-... |-IndexOutOfBoundsException 예외 클래스들은 두 개의..
[Java의 정석] Chapter 7 객체지향 프로그래밍2
2023. 3. 21. 16:43
study/Java의 정석
상속(inheritance) 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속의 장점 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기에 코드의 추가 및 변경이 매우 용이 상속을 구현하는 방법 class Parent { } class Child extends Parent { } 상속을 받는다는 것은 조상 클래스를 확장(extend)한다는 의미 생성자와 초기화 블럭은 상속되지 않음. 멤버만 상속 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많음 클래스간의 관계 - 포함관계 포함관계 : 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언 class Circle { int x; int y; int r; } class Point { i..
[Java의 정석] Chapter 6 객체지향 프로그래밍1
2023. 3. 15. 12:46
study/Java의 정석
객체지향언어 객체지향언어의 기본 개념 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용 객체지향언어의 주요 특징 코드의 재사용성이 높음 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성 가능 코드의 관리가 용이 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있음 신뢰성이 높은 프로그래밍을 가능하게 함 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있음 => 코드의 재사용성이 높고 유지보수가 용이 클래스와 객체 클래스 정의 : 객체를 정의해 놓은 것 용도 : 객체를 생성하는데 사용 객체 정의 : 실제로 존재하는 것. 사물 또는 개념 용도 : 객체가 가지..
[Java의 정석] Chapter 5 배열
2023. 3. 7. 15:44
study/Java의 정석
배열(array) 배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열의 선언 방법 선언 방법 선언 예 타입[ ] 변수이름; int[] score; 타입 변수이름[ ]; int score[]; 배열의 생성 타입[] 변수이름; //배열을 선언(배열을 다루기 위한 참조 변수 선언) 변수이름 = new 타입[길이]; //배열을 생성(실제 저장공간을 생성) //간략히 하는법 타입[] 변수이름 = new 타입[길이]; 배열의 복사 for문보다 System.arraycopy()를 사용하는 것이 효율적 //num[0]에서 newNum[0]으로 num.length개의 데이터를 복사 System.arraycopy(num, 0, newNum, 0, num.length); char 배열과 String 클래스 자..
[Java의 정석] Chapter 4 조건문과 반복문
2023. 3. 7. 15:20
study/Java의 정석
조건문 if문 가장 기본적인 조건문 if (조건식) { //조건식이 참일 때 수행될 문장들을 적음 } if-else문 if (조건식) { //조건식이 참일 때 수행될 문장들을 적음 } else { //조건식이 거짓일 때 수행될 문장들을 적음 } if-else if문 if (조건식1) { //조건식1의 연산결과가 참일 때 수행될 문장들을 적음 } else if (조건식2) { //조건식2의 연산결과가 참일 때 수행될 문장들을 적음 } else if (조건식3) { //조건식3의 연산결과가 참일 떄 수행될 문장들을 적음 } else { //위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적음 } 중첩 if문 if (조건식1) { //조건식1의 연산결과가 참일 때 수행될 문장들을 적음 if (조건식2) ..
[Java의 정석] Chapter 3 연산자
2023. 3. 7. 14:43
study/Java의 정석
연산자 (operator) 연산자(operator) : 연산을 수행하는 기호 피연산자(operand) : 연산자의 작업 대상 종류 연산자 설명 산술 연산자 + - * / % 사칙연산과 나머지 연산 비교 연산자 > = >), 또는 왼쪽(
[Java의 정석] Chapter 2 변수
2023. 3. 7. 14:06
study/Java의 정석
변수(variable)와 상수 변수란? 단 하나의 값을 저장할 수 있는 메모리 공간 변수의 명명 규칙 식별자(identifier) : 프로그래밍에서 사용하는 모든 이름 식별자는 같은 영역 내에서 구분(식별)될 수 있어야 함 1. 대소문자가 구분되며 길이에 제한이 없다 2. 예약어를 사용해서는 안 된다 3. 숫자로 시작해서는 안 된다 4. 특수문자는 '_'와 '$'만을 허용한다 자바 프로그래머들에게 권장하는 규칙 1. 클래스 이름의 첫 글자는 항상 대문자로 한다 2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다 3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다 변수의 타입 자료형(data type) : 값(data)와 종류(type)에 따라 값이 저장될 ..
[Java의 정석] Chapter 1 자바를 시작하기 전에
2023. 3. 2. 13:40
study/Java의 정석
자바(Java Programming Language) 자바란? 자바는 썬 마이크로시스템즈에서 개발하여 1996년 1월에 발표한 객체지향 프로그래밍 언어 운영체제에 독립적이라는 장점으로 인해 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로써, 인터넷의 발전과 함께 많은 사용자층 확보 자바 언어의 특징 1. 운영체제에 독립적이다 2. 객체 지향 언어이다 3. 비교적 배우기 쉽다 4. 자동 메모리 관리(Garbage Collection) 5. 네트워크와 분산처리를 지원한다 6. 멀티쓰레드를 지원한다 7. 동적 로딩(Dynamic Loading)을 지원한다 JVM(Java Virtual Machine) JVM은 자바를 실행하기 위한 가상 기계 즉, 자바로 작성된 어플리케이션은 모두 JVM..