본문 바로가기

개발언어37

자바 쉽게 배우기 13 - 날짜와 시간(2) 날짜와 시간 지난 글의 Date와 Calendar 클래스에 이어 time 패키지에 대해 알아봅시다. Java.time패키지 Java.time패키지는 jdk1.8부터 Date, Calendar 클래스를 보완하기 위해 추가되었습니다. time 패키지의 클래스들은 Calendar클래스와 달리 불변의 특성을 가지고 있어 멀티스레드 환경에서도 안전합니다. 핵심 클래스와 인터페이스 인터페이스 구현클래스 내용 Temproal, TemporalAccesser, TemporalAdjuster LocalDate 날짜 LocalTime 시간 LocalDateTime 날짜, 시간 ZonedDateTime 날짜, 시간, 시간대 클래스 내용 TemporalAdjusters 자주쓰는 날짜 계산 메서드들 정의 인터페이스 구현클래스 .. 2023. 1. 30.
자바 쉽게 배우기 12 - 날짜와 시간(1) 날짜와 시간 자바의 날짜와 시간은 Date와 Calendar 클래스, time패키지를 사용해 나타냅니다. Date, Calendar, time 패키지 순으로 발전되어 왔으며 최근에는 Date, Calendar를 대신하여 time 패키지를 사용하는 추세입니다. 날짜와 시간에 관해서는 관련 업무가 아니라면 깊게 이해할 필요는 없습니다. 백과사전이라고 생각하고 필요한 부분만 찾아 사용해 보세요. 이 글에서는 우선 Date와 Calendar 클래스에 대해 알아봅니다. 다음 글에서 time 패키지에 대해 다루겠습니다. Date 클래스와 Calendar 클래스 Date 클래스와 Calendar 클래스는 Java.util 패키지에 포함되어 있습니다. Calendar 클래스의 인스턴스 생성 Calendar Class는.. 2023. 1. 27.
자바 쉽게 배우기 11 - 예외 처리 예외 한 번에 완벽한 코드를 짤 수 있다면 얼마나 좋을까요? 하지만 그것은 환상에 가깝습니다. 항상 수많은 에러들이 프로그래머들을 기다리고 있습니다. 에러를 수정하는 일은 프로그래머들의 숙명입니다. 조각가들처럼 큰 형태를 만들고 세밀하게 깎아나가듯 에러를 잡아가며 프로그램을 완성합니다. [예외]는 프로그램 에러 중 런타임 에러의 한 종류입니다. 그럼 프로그램 에러부터 자세히 들어가 봅시다. 프로그램 에러 프로그램을 오작동시키는 에러에는 3가지 종류가 있습니다. 컴파일 에러 컴파일 시에 발생하는 에러로 컴파일러에 의해 어느 부분이 문제가 있는 지 알 수 있다. 예시) 오타, 구문오류, 자료형오류 런타임 에러 실행 시에 발생하는 에러 예시 ) 에러, 예외 논리적 에러 실행은 되지만, 의도와는 다르게 동작하는.. 2023. 1. 23.
자바 쉽게 배우기 10 - 다양한 클래스와 인터페이스 자바의 다양한 클래스 - 추상 클래스, 내부 클래스, 익명 클래스추상 클래스 abstract class자바 쉽게 배우기 8 - 상속과 제어자에서 abstract 키워드에 대해 설명드렸습니다. 추상클래스는 추상메서드를 가지고 있는 클래스를 뜻합니다. 추상메서드는 구현부 {}가 없는 메서드로, 오버라이딩으로 구현부를 완성시켜야 사용할 수 있습니다.추상클래스는 불완전한 형태이기 때문에 인스턴스를 생성할 수 없습니다. 이러한 규칙 때문에 인스턴스 생성을 제한하기 위한 용도로 추상메서드가 없는 클래스를 추상 클래스로 선언하기도 합니다.추상클래스를 사용하기 위해서는 추상클래스를 상속받아 추상메서드를 구현하고 인스턴스를 생성합니다. 추상클래스를 상속받을 땐 extends 키워드를 사용합니다. abstract clas.. 2023. 1. 21.
자바 쉽게 배우기 9 - 다형성 다형성 polymorphism 객체지향 프로그래밍 언어는 다섯 가지의 특징을 가집니다. [캡슐화], [정보 은닉], [추상화], [상속성], [다형성] 이 5가지입니다. [캡슐화]와 [정보은닉]은 접근 제어자를 설명드릴 때 한 번 나왔습니다. 캡슐화란 알약을 만들 때 여러 재료를 섞어 하나의 캡슐을 만드는 것에 비유할 수 있습니다. 자바의 클래스는 데이터(속성)와 데이터를 처리하는 함수(메서드)를 하나로 묶어줍니다. 속성과 메서드가 재료라고 할 때 클래스의 인스턴스는 하나의 캡슐이 되겠죠. 이렇게 캡슐에 담긴 재료들은 외부로부터 보호되며, 캡슐을 사용하는 사람들은 캡슐 안의 재료가 무엇인지 세세히 알 필요가 없습니다. 이렇듯 캡슐화를 사용하게 되면 보안성이 강화되고 여러 속성과 메서드가 묶여 있으므로 재.. 2023. 1. 14.
자바 쉽게 배우기 8 - 상속과 제어자 상속 Inheritance 상속 상속은 [물려줌], [물려받음]을 의미합니다. 자바에서 클래스는 다른 클래스를 상속받을 수 있습니다. 상속받은 클래스는 상속해 준 클래스의 멤버들을 재사용할 수 있습니다. 중복되는 코드를 줄이는 아주 효율적인 방법입니다. 다만, 자바에서는 둘 이상의 클래스로부터 상속을 받을 수 없습니다. (다중 상속을 지원하지 않습니다) 상속과 관련된 다양한 이름들 상속 해준 클래스 상속 받은 클래스 조상 클래스 자손 클래스 부모 클래스 자식 클래스 상위 클래스 하위 클래스 기반 클래스 파생된 클래스 형식 클래스를 정의할 때 클래스명 옆에 [extends 상위클래스명]을 붙여 상속받을 수 있습니다. class 하위클래스 extends 상위클래스 특징 상속받은 하위클래스의 생성자 첫 줄에서.. 2023. 1. 12.
자바 쉽게 배우기 7 - 생성자 클래스로 인스턴스를 만들기 위해서는 클래스에 적절한 생성자가 구현되어 있어야 합니다. 생성자를 만들고 사용하는 법을 알아봅시다. 생성자 Constructor 생성자 모든 클래스에는 생성자가 포함됩니다. 클래스 안에 생성자를 정의하지 않았을 때에도 보이지 않지만 기본생성자가 자동으로 추가됩니다. 생성자는 인스턴스를 생성할 때 호출되는 메서드입니다. 이전 글에서 [사람] 클래스에서 [철수]와 [영희] 인스턴스를 만드는 예시를 들었었죠. 인스턴스마다 생성자의 매개변수를 다르게 대입하여 같은 클래스에서도 다른 특징을 가진 인스턴스를 만들어 낼 수 있습니다. 생성자는 주로 인스턴스 변수들을 초기화하는 데 사용됩니다. (인스턴스를 생성하는 것은 생성자가 아닌 new 연산자입니다.) 자바에서 생성자의 이름은 클래스의.. 2023. 1. 8.
자바 쉽게 배우기 6 - 클래스와 객체 이번글에서는 클래스와 객체에 대해 알아봅시다. 그전에 왜 자바에서는 클래스와 객체를 사용하는 지부터 살펴봅시다. 자바는 객체지향 프로그래밍 언어입니다. 객체가 무엇일까요? 넓은 의미에서 객체는 이 세상에 존재하는 모든 것들을 의미합니다. 형상이 있는 것과 없는 것 모두 객체가 될 수 있습니다. 컴퓨터에게 실제 세계를 이해시키기 위해서는 현실의 사물을 컴퓨터가 이해할 수 있는 방식으로 해석해 주는 과정이 필요합니다. 우리는 그 과정에서 객체를 사용하게 되죠. 철수라는 객체를 만들어 봅시다. 철수 객체에는 나이, 성별, 직업, 하는 행동 (블로그 포스팅, 개발, 유튜브 시청) 등의 정보가 포함되어 있습니다. 물론 현실의 철수가 가지는 정보만큼 방대한 양을 담는 것은 무리겠지만 철수를 표현하는 것에는 무리가 .. 2023. 1. 6.
자바 쉽게 배우기 5 - 배열 배열 Array 배열 배열은 같은 타입의 여러 데이터를 하나로 묶어 보관하는 구조입니다. 데이터들은 Index라는 번호를 통해 구분됩니다. 배열은 자바 쉽게 배우기 2 - 변수에서 설명한 참조 타입에 속합니다. 따라서 배열 변수에는 메모리 주소가 저장됩니다. 배열 선언 변수 선언과 생성, 초기화를 기억하시나요? 배열 선언과 생성은 변수와 비슷하지만 대괄호([])가 사용된다는 차이점이 있습니다. 배열의 타입을 지정하여 타입에 맞는 크기의 저장 공간이 확보되게 하고, 배열에 이름을 붙여줍니다. 타입[] 변수이름; 타입 변수이름[]; 두 방법 모두 가능합니다. int[] arrName; int arrName[]; 배열 생성 값을 저장할 수 있는 공간을 만들어 줍니다. 한 번 생성된 배열을 그 길이를 수정할 수.. 2023. 1. 4.
자바 쉽게 배우기 4 - 조건문과 반복문 프로그래밍의 핵심 조건문과 반복문에 대해 살펴봅시다. 조건문과 반복문은 프로그램의 흐름을 제어하는 제어문입니다. 조건문에는 if, switch문이 있고, 반복문에는 for, while, do-while문이 있습니다. 각 제어문의 형식과 실행 흐름에 대해 살펴보겠습니다. 블록은 중괄호({})로 묶이는 하나의 단위입니다. 여러 문장을 한 단위로 묶는 역할을 합니다. 조건문 if 문 : 조건식이 참일 때 수행하고 싶다면 조건식을 계산합니다. 조건식이 참일 때 if 블록 {} 안의 문장들을 수행합니다. 조건식이 참이 아닐 때 위에서부터 순차적으로 다음 else if 조건식이 참이 되는지 확인합니다. 참이 되는 조건식의 블록 {} 안의 문장들을 수행합니다. 어떤 조건식도 만족시키지 않을 때 else 블록 {} 안.. 2023. 1. 3.
자바 쉽게 배우기 3 - 연산자 연산자 Operator 프로그래밍에서 연산자는 연산을 지시하는 부호를 뜻합니다. 피연산자는 연산의 대상으로 연산자의 양옆에 위치하게 됩니다. 예시 ) 4 + 5 4, 5 : 피연산자 + : 연산자 연사자의 종류에 따른 분류 종류 연산자 부호 연산자 + - 증감 연산자 ++ -- 논리 부정 연산자 ! 비트 부정 연산자 ~ 산술 연산자 + - * / % 쉬프트 연산자 > 비교 연산자 > = 0101 산술 연산자 + - * / % 수를 연산합니다. 덧셈 + , 뺄셈 - , 곱셈 * , 나눗셈 /, 나머지 % 계산이 가능합니다. 덧셈 +의 경우 수의 산술 연산뿐만 아니라 문자나 문자열의 덧셈도 가능합니다. (사실 문자는 유니코드로 환산되기 때문에 수의 산술입니다.) 주의 사항 정수 나누기 int n1 = .. 2023. 1. 2.
자바 쉽게 배우기 2 - 변수 이번 글에서는 본격적으로 JAVA언어에 대해 배워보겠습니다. 변수에 대해 알아봅시다. 변수 Variable 1. 변수의 개념 프로그래밍 언어를 처음 공부하시는 분들이라면 변수라는 단어를 봤을 때 수학의 변수. 즉, 변하는 값을 떠올리시겠죠? 하지만 프로그래밍에서의 변수는 값. 즉, 데이터가 아닌 데이터를 담는 메모리를 의미합니다. 저번 글에서 자바의 [자동 메모리 관리]를 설명할 때 컴퓨터에게 명령을 내리는 과정에서 메모리라는 저장공간을 사용하게 된다고 말씀드렸습니다. 필요한 데이터/ 명령어를 메모리에 저장해 놓고 필요할 때 가져다 쓴다고 했죠. 우리가 저장된 데이터를 찾을 땐 메모리의 주소값을 사용합니다. 현실에서 건물의 주소로 특정 장소를 찾는 것처럼요. 변수는 메모리이고, 변수의 이름은 메모리의 주.. 2023. 1. 1.