Programming/Java
-
[Java] 자바의 어노테이션(Annotation)Programming/Java 2021. 4. 6. 15:55
자바의 어노테이션(Annotation)을 알아보자 1. 어노테이션이란? Annotation은 프로그램 내에서 주석과 유사하게, 프로그래밍 언어에는 영향을 미치지 않으면서 프로그램/프로그래머에게 유의미한 정보를 제공하는 역할을 한다. 우선 주석의 등장배경을 살펴보자. 주석이 등장하기 전에는 프로그램 소스코드와 프로그램 문서를 따로 작성했고, 프로그램이 변경될 때 해당 문서도 함께 변경해야 했다. 하지만 프로그래머들이 소스코드만 변경하고 문서는 변경하지 않는 경우가 많았고, 코드와 문서의 버전 불일치 때문에 코드를 관리하는 데에 어려움이 따랐다. 이러한 문제를 해결하기 위해 코드와 문서를 합쳐 하나로 만들 수 있는 방법을 만들었다. 문서 내용을 코드와 함께 주석으로 달아놓고, javadoc.exe 프로그램이..
-
[Java] 자바의 열거형(Enum)Programming/Java 2021. 4. 6. 15:54
자바의 열거형(enum)을 알아보자. 0. 열거형(Enum)이란? 열거형은 관련된 상수들을 같이 묶어놓은 것을 말한다. 예를 들면 카드게임 프로그램을 위한 상수들이 있다. 이렇게 일일히 상수를 정의해서 사용하면 카드의 종류가 많아질수록 상수의 양이 많아져서 프로그램을 관리하기가 힘들 것이다. class Card{ // 카드 무늬 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; // 카드 숫자 static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final in..
-
[Java] 자바의 멀티 스레드 프로그래밍Programming/Java 2021. 4. 6. 15:54
자바의 쓰레드와 멀티쓰레드 프로그래밍을 알아보자 1. 스레드와 프로세스의 개념 스레드를 공부하기 전에 몇 가지 기본지식을 알아보자. 프로세스 : 실행 중인 프로그램 자원(메모리, CPU, 기타 컴퓨팅 디바이스)와 스레드로 구성 스레드 : 프로세스 내에서 실제 작업을 수행 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 프로세스 : 스레드 = 공장 : 일꾼 쉽게 비유하자면 프로세스는 공장, 스레드는 일꾼으로 비유할 수 있다. 2가지 작업을 수행하는 경우에 싱글 스레드 프로세스와 멀티 스레드 프로세스는 다음과 같다. 싱글 스레드 프로세스 = 자원 + 스레드 공장에 일꾼이 한 명인 것 멀티 스레드 프로세스 = 자원 + 스레드1 + 스레드2 + 스레드3........ 공장에 일꾼이 여러 명인 것 여러 작업..
-
[Java] 자바의 예외Programming/Java 2021. 4. 6. 15:53
자바의 예외와 그 처리방법을 알아보자 1. 프로그램 오류와 예외 클래스 계층 구조 1-1) 프로그램 오류의 종류 프로그램의 오류는 크게 3가지가 있다. 컴파일 에러 : 컴파일할 때 발생하는 에러를 일컫는다. 런타임 에러 : 실행 중에 발생하는 에러를 일컫는다. 논리적 에러 : 의도와 다르게 동작하는 것을 일컫는다. Java에서 정의한 런타임 에러(실행 중 발생하는 에러) 에러(error) : 프로그램 코드에 의해 수습될 수 없는 심각한 오류 OutOfMemoryException... 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 1-2) 예외처리(exception handling)의 정의와 목적 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를..
-
[Java] 자바의 인터페이스Programming/Java 2021. 4. 6. 15:51
자바의 인터페이스를 알아보자 자바의 인터페이스 1. 인터페이스의 선언 자바 어플리케이션에서 사용되는 인터페이스는 추상 메서드의 집합이라고 설명할 수 있다. 사실상 추상메서드 이외에도 상수, default 메서드, static 메서드 등을 포함할 수 있다. 하지만 이러한 것들은 인터페이스의 본질에서 벗어난 추가적인 기능이기 때문에, 우선 인터페이스를 추상 메서드의 집합으로 이해해보자. 인터페이스의 본질과 이론적 의미에 대해서는 인터페이스의 역할(의미) 파트에서 알아보겠다. 구현된 것이 없는 설계도(껍데기) 모든 멤버가 public public, abstract, static, final 등의 키워드는 생략 가능. 언제나 그렇기 때문에. 인터페이스의 선언 interface 인터페이스이름{ (public) (..
-
[Java] 자바의 패키지와 클래스패스Programming/Java 2021. 4. 5. 13:03
자바의 패키지와 클래스패스를 알아보자 자바의 패키지 Package란 다수의 클래스와 인터페이스를 캡슐화하기 위한 매커니즘이다. 1. 패키지의 역할 패키지는 연관된 클래스를 담는 컨테이너 역할을 한다. 패키지 내에는 외부로부터 접근 가능한 클래스들과 특정 목적을 위해 접근이 제한된 클래스가 존재한다. 1-1) 동일한 이름을 가진 클래스들을 구분할 수 있다. 예를 들어, Test라는 이름의 클래스가 2개의 패키지에 각각 존재할 수 있다. livestudy.week7.Test , livestudy.week6.Test 1-2) class, interface, enumeration, annotation 등을 보다 쉽게 검색하고 사용할 수 있다. 1-3) 접근을 제어할 수 있다. 패키지 레벨에서 protected ..
-
[Java] 자바의 다형성Programming/Java 2021. 4. 5. 13:02
자바의 다형성과 관련된 개념을 알아보자 다형성(Polymorphism)? 동일한 부모로부터 태어난 자식이라도 외모, 성격, 취향 등이 서로 다른 것 처럼, 동일한 부모 클래스로부터 상속받은 하위 클래스들을 각기 다르게 수정하여 사용할 수 있다. 다형성은 상속받은 기본 형질에 서로 다른 변화를 주어 다양한 형태를 표현하는 것이다. 자바의 다형성은 메서드 오버라이딩, 업캐스팅, 다운캐스팅, 추상 클래스, 인터페이스 등을 통해 구현할 수 있다. 1. 오버라이딩(Overriding) 객체지향언어에서의 오버라이딩은 자식클래스가 부모클래스에서 이미 선언된 메서드를 구현해서 사용할 수 있게 하는 기능이다. 오버라이딩이란 부모클래스의 메서드와 자식 클래스의 메서드가 메서드 이름, 메서드 파라미터, 리턴타입이 모두 같은..
-
[Java] 자바의 상속Programming/Java 2021. 4. 5. 13:01
상속(Inheritance)? 상속은 객체지향 프로그래밍(Object Oriented Programming)에서 매우 중요한 개념이다.상속을 통해서 하나의 클래스가 가진 특징(필드와 메서드)을 다른 클래스들에게 물려줄 수 있다. 주요 용어 Super Class - 부모 클래스 다른 클래스들에게 상속을 하는 주체가 되는 클래스이다. 상위 클래스, super class, base class 라고도 불린다. Sub Class - 자식 클래스 다른 클래스의 특징을 상속받는 클래스이다. 서브 클래스, derived class, extended class라고도 불린다. 자식 클래스는 부모 클래스로부터 상속받은 필드와 메서드뿐 아니라, 자기 자신의 필드와 메서드를 추가하여 사용할 수 있다. Reusability - ..