Java 12

enum

백기선 자바 스터디 11주차 enum에 대해 학습하며 정리한 내용입니다. 열거형(enum)은 서로 연관된 상수들의 집합입니다. 열거형 상수인 enum은 자바 1.5버전부터 새롭게 추가되었습니다. enum이란? 관련이 있는 상수들의 집합입니다. 자바에서는 final로 String과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값을 고정할 수 있습니다. 이렇게 고정된 값을 상수라고 합니다. 영어로는 constant입니다. 어떤 클래스가 상수만으로 작성되어 있다면 반드시 class로 선언할 필요는 없습니다. 이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 집합이다라는 것을 명시적으로 나타냅니다. enum은 enumeration이라는 셈, 계산, 열거, 목록이라는 영어 단어의 앞..

Java 2022.10.07

멀티스레드 프로그래밍

백기선 자바 스터디 10주차 멀티스레드 프로그래밍에 대해 학습하면서 정리한 내용입니다. Java의 멀티스레드 멀티 스레드 프로그램에서는 여러 스레드가 동시에 실행됩니다. 각 스레드는 리소스를 최적으로 사용하여 다른 작업을 동시에 처리합니다. 자바에서 스레드를 생성하는 방법은 두 가지가 있습니다. 1. Thread 클래스를 상속 받거나 2. Runnable 인터페이스를 구현하는 방법이 있습니다. 1. Thread class Thread class를 사용하는 방법은 아래와 같습니다. 1. Thread class를 상속받는 class를 만듭니다. 2. run() 메서드를 overriding하여 수행할 코드를 작성합니다. 3. main 메서드에서 Thread class를 상속 받은 class 객체를 만들고 st..

Java 2022.09.27

예외 처리

백기선 자바 스터디 9주차 예외 처리에 대해 학습하면서 정리한 내용입니다. 프로그램 실행 과정에서 의도하지 않은 상황이 발생할 수 있습니다. 존재하지 않는 파일을 열어보려하거나, 권한이 없는 파일에 데이터를 쓰려고 할 때 예외가 발생합니다. 이러한 예외 상황에서 프로그램을 종료하지 않고, 그에 맞는 적절한 처리를 하고 싶을 때가 있습니다. 예외 처리는 오류를 처리하여 프로그램의 흐름이 유지될 수 있도록 도와줍니다. 발생 시점에 따른 에러 분류 Compile-time Error: 컴파일러는 컴파일하는 시점에서 오타나 잘못된 구문, 자료형 등 검사를 수행합니다. 이 때 발생하는 에러를 컴파일 에러라고 합니다. Runtime Error: 프로그램 실행 시점에서 발생하는 에러로 실행 도중 의도치 않은 동작에 의..

Java 2022.09.15

Java의 Dynamic Method Dispatch, Abstract class, final, Object class

백기선 자바 스터디 6주차 상속 주제에 대해 학습하면서 정리한 내용입니다. Dynamic Method Dispatch 다이나믹 메서드 디스패치는 Overriding된 메서드에 대한 호출이 compile-time이 아닌 runtime에 결정되는 메커니즘입니다. Overriding 메서드가 조상 클래스 참조를 통해 호출될 때 Java는 호출이 발생할 때 참조되는 Object의 유형에 따라 실행할 메서드의 버전을 결정합니다. 이 결정은 runtime에 이루어집니다. 예시 public class Fruit { void m1() { System.out.println("Eat some Fruit"); } } class Apple extends Fruit { void m1() { System.out.println("..

Java 2022.09.01

Java Overriding

백기선 자바 스터디 6주차 상속 주제에 대해 학습하면서 정리한 내용입니다. 메서드 오버라이딩 오버라이딩이란 Java의 오버라이딩은 조상 클래스로부터 상속받은 메서드의 내용을 재정의합니다. 상속받은 메서드를 그대로 사용할 수 있지만, 자손 클래스 자신에 맞게 변경해야하는 경우 오버라이딩하게 됩니다. 오버라이딩 조건 오버라이딩은 메서드의 내용만 새로 작성하는 것이므로 메서드 선언부는 조상 클래스에서 정의한 것과 동일해야 합니다. 오버라이딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 합니다. 메서드 이름 매개변수 반환 타입 이 세가지 조건을 만족해야 오버라이딩이 가능한 조건이 성립하게 됩니다. 세 가지 조건은 선언부에 속하는 부분인데 이 때 접근 제어자와 예외는 제한된 조건 하에서 다르게 변경할 수 있습..

Java 2022.08.30

Java의 상속과 super 키워드

백기선 자바 스터디 6주차 상속이라는 주제에 대해 학습하면서 정리한 내용입니다. 자바 상속의 특징 Java의 상속이란 Java에서 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 상속을 통해 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통저긍로 관리할 수 있어 코드의 추가 및 변경에 매우 용이하다는 장점을 갖게 됩니다. 구현 방식 Java에서 상속을 구현하는 방법에 대해 알아보겠습니다. 새로 만들고자 하는 클래스의 이름 뒤에 상속 받고자 하는 클래스의 이름을 extends 키워드와 함께 써주면 됩니다. public class Tv { boolean power; int channel; void power() { power = !power; } voi..

Java 2022.08.29

5주차 클래스

클래스 정의하는 방법 Java에서 클래스를 정의하기 위해서는 Class 예약어를 사용한다. 키워드 뒤에는 클래스 이름이 와야 한다. 정의한 클래스 내에 메서드와 변수를 선언한다. 클래스 정의에는 다음과 같은 내용이 포함된다. modifier : public or default class keyword : class 키워드는 클래스를 생성하는데 사용된다. class name : 관례상 대문자로 시작하는 이름을 사용한다. superclass (있는 경우) : extends 키워드를 사용하여 클래스의 상위 클래스를 상속 받을 수 있다 interface (있는 경우) : implements 키워드를 사용하여 인터페이스에 구현된 추상 메서드를 구현할 수 있다. body : 중괄호 { }로 클래스 본문의 범위를 지..

Java 2022.08.18

제어문

선택문 Java if 문은 조건을 테스트하는 데 사용된다. true 혹은 false와 같은 boolean 타입 조건을 확인한다. if-then Java if-then 문은 조건을 테스트한다. 조건이 참이면 if 블록을 실행한다. if (조건) { // 실행할 코드 } if-else if-else문 또한 조건을 테스트한다. 조건이 참이면 if 블록을 실행하고 그렇지 않으면 else 블록을 실행한다 if (조건) { // 참이면 실행할 코드 } else { // 거짓이면 실행할 코드 { 삼항 연산자 사용 삼항 연산자(? :)를 사용하여 if-else 문의 작업을 수행할 수 있다. 조건이 참이면 결과는 ?이 반환된다. 조건이 거짓이면 : 의 결과가 반환된다 int number = 13; String outpu..

Java 2022.08.12

연산자

산술 연산자 산술 연산자 산술 연산자에는 사칙 연산자 (+, -, *, /)와 나머지 연산자 (%)가 있다. 사칙 연산자 + - * / 일반적인 연산과 같이 곱셈, 나눗셈, 나머지 연산이 덧셈, 뺄셈 연산보다 우선 순위가 높아 먼저 처리된다 나누는 연산 시 주의할 점 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나누게되면 에러(ArithmeticException)가 발생한다 나누기 연산자의 두 피연산자가 모두 int 타입인 경우, 연산 결과 또한 int 타입이 반환된다 예로 10 / 4 와 같이 나머지가 있는 연산을 / 연산자를 통해 연산하게 되면 연산 결과로 int 타입이 반환되기 때문에 정수만 남고 소수점 이하 값은 버려지게 된다 소수점을 포함한 연산 결과를 얻기 위해서..

Java 2022.08.10

자바 데이터 타입, 변수 그리고 배열

프리미티브 타입 종류와 값의 범위 그리고 기본 값 Java에는 int, byte, short, long, float, double, boolean, char와 같이 8가지의 Primitive type이 있다. Primitive type 값의 범위와 기본값 타입 할당되는 메모리 크기 기본값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32,768 ~ 32,767 int 4 byte 0 -2,147,483,648 ~ 2,147,483,647 long 8 byte 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 실수형 float 4 b..

Java 2022.07.28