기술독서/자바의 정석
[자바의 정석] 8장 예외처리(Exception handling)
예외처리(Exception handling) 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 컴파일 에러(compile-time error) 컴파일 시에 발생하는 에러 런타임 에러(runtime error) 실행 시에 발생하는 에러 논리적 에러(logical error) 실행은 되지만, 의도와 다르게 동작하는 것 런타임 에러를 방지하기 위해서는 프로그램의 실행 도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요하다. 자바에서는 runtime 시 발생할 수 있는 프로그램 오류를 'error'와 'exception', 두 가지로 구분하였다. error 메모리 부족(Out..
[자바의 정석] 7장 - 객체지향 프로그래밍 Ⅱ
상속 (Inheritance) 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속의 장점 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 extends 키워드와 함께 써준다. class Child extends Parent { ... } 조상 클래스 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 자식(child) 클래스, 하위(sub) 클래스, 파생된(derived) 클래스 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 클래스의 멤버 개수는 조상 클래스..
[자바의 정석] 6장 - 객체지향 프로그래밍 Ⅰ
객체지향 프로그래밍 Ⅰ 객체지향 이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들을 사물 간의 상호작용이다.'라는 것이다. 객체지향 언어 객체지향 언어의 주요 특징 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. 코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 너무 객체지향 개념에 얽매여서 고민하기보다는 일단 프로그램을 기능적으로 완성한 다음 어떻게 하면 보다 객체지향적으로 코드를 개선..
[자바의 정석] 5장 배열
배열 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 한다. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대활호[]를 붙이면 된다. // 배열을 선언 int[] score; String[] name; // 배열을 생성 score = new int[5]; name = new String[4]; 배열의 길이와 인덱스 생성된 배열의 각 저장공간을 배열의 요소(element)라고 하며, 인덱스(index)는 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용된다. 인덱스의 범위는 0부터 배열길이 - 1까지다. 유효한 범위의 값을 index로 사용하면, 컴파일을 무사히 마쳤더라고 실행 시에 ArrayIndexOutOfBoundsException에러..
[자바의 정석] 4장 조건문과 반복문
조건문 조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다. if 문 if 문은 가장 기본적인 조건문이다. if (조건식) { // 조건식이 true일 때 수행될 문장 } 블럭 내의 문장이 하나뿐 일 때는 괄호를 생략할 수 있지만 가능하면 생략하지않고 사용하는 것이 바람직하다. if-else 문 else블럭은 조건식이 결과가 참이 아닐 때 else블럭의 문장을 수행하라는 뜻이다. if (조건식) { // 조건식이 true일 때 수행될 문장 } else { // 조건식이 false일 때 수행횔 문장 } 처리해야할 경우의 수가 셋 이상인 경우에는 if-else if 문을 사용한다. if (조건식 1) { // 조건..
[자바의 정석] 3장 연산자 (Operator)
연산자와 피연산자 연산자는 연산을 수행하는 기호(+, -, *, / 등)를 뜻하고, 피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 수식)을 뜻한다. 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산과 나머지 연산 비교 연산자 > = =< == != 크고 작음과 같고 다름을 비교 논리 연산자 && || ! & | ^ ~ AND와 OR로 조건을 연결 대입 연산자 = 우변의 값을 좌변에 저장 기타 (type) ?: instancoof 형변환 연산자, 삼항 연산자, instanceof연산자 산술 변환 산술 변환이란 연산 수행 직전에 발생하는 피연산자의 자동 형변환을 말한다. 두 피연산자의 타입을 같게 일치 시킨다(보다 큰 타입으로) 피연산자의 타입이 int보다 작은 타입이..