본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 예외 개발자가 프로그램을 작성하는 과정에서 실수를 하거나 사용자가 잘못된 값을 입력시에 오류가 발생할 수 있다. 이 중 개발자가 해결할 수 있는 오류를 예외(exception)라고 하며, 이러한 예외가 발생했을 때 적절히 처리하는 것을 '예외 처리'라고 한다. 예외와 에러의 차이점 예외는 연산 오류, 숫자 포맷 오류 등과 같이 상황에 따라 개발자가 해결할 수 있는 오류를 말한다. '해결 할 수 있는'의 의미는 오류 자체를 수정할 수 있다는 것이 아닌 오류 발생시에 차선택을 선택하는 것을 말한다. 예외의 최상위 클래스는 Exception 클래스다. 에러는 자바 가상 머신 자체에서 발생하는 오류로 개발자가 해결할 수 없는 오류를 말..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 이너 클래스 클래스 내부에 포함되는 이너 클래스(inner class)는 인스턴스 멤버 이너 클래스, 정적 멤버 이너 클래스, 지역 이너 클래스로 나뉜다. 인스턴스 멤버와 정적 멤버 이너 클래스는 클래스의 멤버인 반면, 지역 이너 클래스는 메서드 내에서 정의하며 지역 변수처럼 해당 메서드 내부에서만 한정적으로 사용되는 클래스다. 인스턴스 멤버 이너 클래스 인스턴스 멤버 이너 클래스는 인스턴스 내부에 멤버의 형태로 존재한다. 이때 자신을 감싸고 있는 아우터 클래스의 모든 접근 지정자의 멤버에 접근할 수 있다. 이너 클래스는 독립적으로 사용할 수 없고, 반드시 아우터 클래스를 이용해야만 사용할 수 있다. class 아우터 클래스 {..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNnKjL%2FbtsitFx67Wx%2FkdjvltyKKFCNIss4qNuGr0%2Fimg.png)
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 추상 클래스 추상 메서드(abstract method)는 메서드의 본체가 완성되지 않은 미완성 메서드를 말한다. 메서드의 기능을 정의하는 중괄호 자체가 없으며, 고로 명령어의 끝을 알리는 세미콜론(;)으로 끝나야 한다. 추상 메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스(abstract class)로 정의되어야 한다. 추상 클래스의 형식 또한 추상 메서드 구문과 비슷하게 class 앞에 abstract를 붙여 표현한다. abstract class A { abstract void abc(); void bcd() { // ... } } 추상 클래스의 특징 추상 클래스는 내부의 미완성 메서드 떄문에 객체를 직접 생성할..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. final 제어자 final 제어자는 필드, 지역 변수, 메세드, 클래스 앞에 위치할 수 있다. 어디에 위치하느냐에 따라 의미가 달라진다. final 변수 final 변수는 한 번 대입된 값을 수정할 수 없다. (상수) class A1 { int a = 3; final int b = 5; } class A2 { int a; final int b = 5; A2 () { b = 7;// final로 선언했기 때문에 대입 불가능 } } final 필드의 초기화는 반드시 생성자에서 진행한다. final 필드도 선언과 값의 대입을 분리해 표기할 수 있지만 생성자에서는 값을 대입해야 한다. 이는 final 필드가 일반 필드와 달리 강제 초..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 이번에는 대표적인 자바의 제어자 중 접근 지정자와 static에 대해서 알아보자 접근 지정자(modifier) 자바 제어자는 클래스, 필드, 메서드, 생성자 등에게 어떠한 특징을 부여하는 문법 요소다. '빨간색 사과', '맛있는 사과'와 같이 클래스나 멤버 등을 꾸며주는 형용사라고 생각하면 된다. 접근 지정자는 자바 제어자의 한 종류로 클래스, 멤버, 생성자 앞에 위치할 수 있고, 사용 범위를 정의하는 역할을 란다. 접근 지정자는 멤버와 생성자 앞에 붙어 있을 때와 클래스 자체에 붙어 있을 때를 나눠 생각해야 한다. 멤버 및 생성자의 접근 지정자 멤버 및 생성자에는 public, protected, default, private..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 패키지 패키지(package)는 비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아 둔 폴더를 의미한다. 1개의 프로젝트에 1개의 패키지를 생성할 수도 있고, 여러 개의 패키지를 생성할 수도 있다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 패키지의 생성하지 않았을때 package 구문은 포함되지 않는다. 패키지가 있을 때는 소스 코드의 첫 번째 줄에 반드시 package 패키지명이 명시되어 있어야 한다. 패키지 사용으로 얻을 수 있는 장점은 클래스명의 충돌을 방지할 수 있다는 것이다. 일반적으로 협업시에 패키지명에는 회사의 URL주소를 사용하므로 패키지명으로 사용하면 두 회사가 클래스명을 똑같이 만들어도 ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9qTBO%2FbtsgEDhIydA%2Fnj4kKFtK8pswgHdeIKsGZ0%2Fimg.png)
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 참조 자료형의 가장 대표적인 형태는 클래스다. 이번에는 문자열을 저장하는 String 클래스를 알아본다 문자열의 표현과 객체 생성 String 클래스의 객체를 생성하는 데에는 크게 2가지 방법이 존재한다. // 1 String 참조 변수명 = new String("문자열"); String str = new String("안녕"); // 2 String 참조 변수명 = "문자열"; String str = "안녕"; String 클래스의 특징 1) 객체 안의 값을 변경시 새로운 객체를 생성한다 String str1 = new String("안녕"); String str2 = str1; str1 = "안냥하세요"; System.out..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 자바에서는 8개의 기본 자료형 이외의 모든 자료형은 잠조 자료형이다. 대표적인 참조 자료형에는 배열, 클래스, 인터페이스 등이 있다. 참조 자료형은 개발자의 필요에 의해 얼마든지 정의할 수 있으므로 무한개라 할 수 있다. 배열이란? 배열은 동일한 자료형을 묶어 저장하는 참조 자료형이다. 생성할때 크기를 지정해야 한다. 한 번 크기를 지정하면 크기를 변경할 수 없다. 배열 생성 배열 선언하기 배열을 선언할 때는 2가지 방법으로 선언할 수 있다. 그러나 다른 여러 자료형의 표현과 일관성을 유지하기 위해 자료형 뒤에 표기하는 것을 권장한다. // 1번 방법 (권장) 자료형[] 변수명 int[] a;// int 자료형만 저장가능 dou..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 제어문이란? 프로그램의 실행 순서를 제어하는 것. 자바에는 2개의 선택 제어문(if, switch)와 3개의 반복 제어문(for, while, do-while)으로 구성된 5개의 제어문과 2개의 제어 키워드(break, continue)가 존재한다. 5개 제어문의 공통적인 특징은 모두 중괄호가 있다는것. 중괄호 내부 실행문이 1개일 경우에는 중괄호를 생략할 수 있다.(컴파일러가 자동으로 삽입해준다) if(3>5){ System.out.println("1"); } // 위의 코드를 아래와 같이 중괄호를 생략하여 사용할 수 있다 if(3>5)System.out.println("1"); if문 if문은 조건식에 따라 실행문의 실행 여..
본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 연산자의 종류 자바의 연산자는 연산 결과의 특징에 따라 3가지로 나눌 수 있다. 자료형 연산 기호 기능 결과 산술 연산자 +, -, *, /, % 사칙연산 및 나머지 연산 값 증감 연산자 ++, -- 값이 1씩 증가 및 감소 비트 연산자 &, |, ~, ^ 비트 AND, OR, NOT, XOR 시프트 연산자 >>, > 비트 단위의 이동 비교 연산자 , =, ==, != 값의 크기 비교 참 또는 거짓 논리 연산자 &&, ||, !, ^ 논리 AND, OR, NOT, XOR 대입 연산자 =, +=, -=, *=, /=, &=, |=, >>=, >= 산술 연산 결과의 대입 실행 삼항 연산자 (참 또는 거짓) ? X : Y 참일 때 X..