본문 바로가기

Java/자바 기초

(10)
10. 날짜와 시간 & 형식화 날짜와 시간 java.util.Date 날짜와 시간을 다룰 목적으로 JDK1.0부터 제공된 클래스이며, Date의 메서드는 대부분 deprecated되었지만, 여전히 쓰이고 있다. java.util.Calendar Date클래스를 개선한 클래스로 JDK1.1부터 제공되었지만, 몇 가지 단점이 존재한다. java.time패키지 기존의 Data클래스와 Calendar클래스의 단점을 개선한 새로운 클래스들이 JDK1.8부터 추가되었다. 새로 추가된 java.time패키지만 배우면 좋을 텐데, 아쉽게도 Calender와 Date는 자바의 탄생부터 지금까지 20년 넘게 사용되어왔고, 지금도 계속 사용되고 있으므로 배우지 않고 넘어갈 수 없다. Calender와 Date의 기능은 소소한 예제들을 이해하고 필요할 때..
9. java.lang 패키지와 유용한 클래스 Object클래스 java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있으며, java.lang패키지의 클래스들은 import문 없이 바로 사용 가능 하다. Object클래스는 모든 클래스의 최고 조상이므로, Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object클래스는 멤버변수는 없고 오직 메서드 11개만 가지고 있다. Object클래스의 메서드 - equals( ) equals( )는 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할을 한다. 아래의 코드는 Object클래스에 저의되어 있는 equals메서드의 실제 내용이다. public boolean equals(Object obj) { return (this=..
8. 예외처리 프로그램 오류 프로그램 오류 또는 에러는 프로그램이 실행 중 오작동이나 비정상적인 종료를 초래하는 원인이다. 프로그램 오류는 발생시점에 따라 아래와 같이 구분된다. - 컴파일 에러: 컴파일 시에 발생하는 에러 - 런타임 에러: 실행 시에 발생하는 에러 - 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램 오류를 아래와 같이 두 가지로 구분한다. - 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 - 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 클래스의 계층구조 오류(Exception과 Error) 클래스의 계층 구조 모든 예외의 최고 조상은 Exception 클래스이다...
7. 객체지향 프로그래밍 II 상속상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스 이름을 'extends'와 함께 써주면 된다.class Parent {}class Child extends Parent{ ...} 위의 Parent 클래스와 Child 클래스는 서로 상속 관계에 있다고 하며, Parent 클래스는 '조상 클래스', Child 클래스는 '자손..
6. 객체지향 프로그래밍 I 객체지향 언어객체지향언어의 가장 큰 장점은 ‘코드의 재사용성이 높고 유지보수가 용이하다.’는 것이다.앞으로 상속, 다형성 같은 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세가지 관점에서 보면 보다 쉽게 이해할 수 있을 것이다. 객체지향언어의 주요 특징은 다음과 같다. - 코드의 재사용성이 높다.  새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. - 코드의 관리가 용이하다  코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. - 신뢰성이 높은 프로그래밍을 가능하게 한다.    제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,  코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.클래스와 ..
5. 배열 배열이란?배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.변수와 달리 배열은 각 저장공간이 연속적으로 배치되어 있다.배열의 선언와 생성원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면 된다.대괄호[]는 타입 뒤에 붙여도 되고 변수이름 뒤에 붙여도 되는데, 타입에 붙이는 쪽을 선호한다.타입[] 변수이름, ex) int[] scores;타입 변수이름[], ex) int scores[];배열을 선언한 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. 배열을 생성하기 위해서는 연산자 ‘new’와 함께 배열의 타입과 길이를 지정해주어야 한다.new 타입[길이]in..
4. 조건문과 반복문 if문만일(if) 조건식이 참(true)이면 괄호{} 안의 문장들을 수행하라.if (조건식) { //조건식이 참(true)일 때 수행될 문장들을 적는다. }블럭{ }괄호{ }를 이용해서 여러 문장을 하나의 단위로 묶는 것블럭 안에 문장이 하나뿐일 경우, 괄호{ }는 생략가능하다.if-else문기존의 if문에 'else{ }'가 추가된 형태이며, 조건식의 결과가 참이 아닐 때, else{ }의 괄호안 문장을 수행하라는 뜻이다.if (조건식) { //조건식이 참(true)일 때 수행될 문장들을 적는다. } else {//조건식이 거짓(false)일 때 수행될 문장들을 적는다. }if-else if문if-else if문은 한 문장에 여러 개의 조건식을 사용가능하게 한다.if (조건식1) { //조건식1이 참(..
3. 연산자 연산자의 종류연산자의 우선순위- 단항 연산자 > 이항 연산자  ex) -x + 3 에서 단항 연산자인 ‘-’는 이항 연산자인 ‘+’ 보다 우선순위가 높다. - 곱셈, 나눗셈 > 덧셈, 뺄셈  ex) x + 3 * y 에서 곱셈 연산자인 ‘*’는 덧셈 연산자인 ‘+; 보다 우선순위가 높다.- 산술 연산자 > 비교 연산자  ex) x + 3 > y - 2 에서 비교 연산자인 ‘>’ 는 산술 연산자인 ‘+’, ‘-’ 보다 우선순위가 높다. - 비교 연산자 > 논리 연산자  ex) x > 3 && x ’, ‘ - 대입연산자는 우선순위가 가장 낮습니다.  ex) result = x + y * 3에서 대입 연산자인 ‘=’는 제일 우선순위가 낮다.증감 연산자 ++ 과 --- 증가 연산자(++) 피연산자의 값을 1 증..
2. 변수 변수의 선언과 저장변수란 하나의 값을 저장할 수 있는 메모리 공간이다. - 변수를 사용하려면 먼저 변수를 선언해야 한다. ex) int age- 변수를 선언하면 변수를 사용할 수 있지만, 그 전에 반드시 변수를 초기화 해야 한다.  변수 초기화란 변수를 사용하기 전에 처음으로 값을 저장하는 것을 말한다. ex) int age = 25변수의 타입변수에 저장할 값의 종류에 따라 변수의 타입을 선택해야 한다. 기본형(Primitive Type) : 8가지- 논리형(True or False) : boolean- 문자형 : char(character)- 정수형 : byte, short, int(integer), long- 실수형 : float, double 참조형(Reference Type) : 기본형 이 외상수..
1. 자바를 시작하기 전에 자바의 특징운영체제에 독립적이다.일종의 애뮬레이터인 자바가상머신(JVM)을 통해서 가능하다.자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.객체지향언어이다.객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어이다.자동 메모리 관리(Garbage Collection)자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.네트워크와 분산처리를 지원한다.다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그..