Java 18

Java 기초정리 - enum(열거형)

enum이란?enum(열거형) 은 미리 정해진 값들만 사용할 수 있도록 만들어주는 자료형이다.선택지가 이미 정해져 있는 타입이라고 생각하면 됨. 예를 들어 주문 상태는 아래 네 가지 중 하나만 존재한다.주문 완료배송 준비배송 중배송 완료이처럼 가능한 값이 정해져 있을 때 enum을 사용하면 된다.enum이 필요한 이유만약 String으로 상태를 관리한다면String status = "배송중"; 다음과 같은 문제들이 발생할 수 있다.status = "배송중";status = "배송 중"; // 띄어쓰기status = "배숑중"; // 오타status = "사과"; // 엉뚱한 값 모두 컴파일 오류 없이 저장된다.즉, 아무 문자열이나 저장할 수 있기 때문에 실수가 발생하기 쉽다.enum ..

Java 2026.06.17

Java 기초 정리 - 추상 클래스(abstract class)와 팩토리 메서드

추상 클래스란?추상 클래스(abstract class)는 미완성 설계도라고 할 수 있다.일반 클래스는 객체를 생성할 수 있지만, 추상 클래스는 미완성 상태이기 때문에 객체를 생성할 수 없다.대신 여러 클래스들의 공통 기능을 정의하는 부모 클래스 역할을 한다.abstract class Animal { abstract void sound();}추상 클래스는 흔히 템플릿(Template) 이라고도 부른다.부모 클래스에서 공통 규칙을 정해두고, 자식 클래스가 그 규칙에 맞게 구현하도록 강제하는 역할을 한다.추상 메서드란?추상 메서드는 선언부만 있고 구현부(몸통)가 없는 메서드이다.abstract void sound();일반 메서드와 달리 { }가 없다. 왜냐하면 부모 클래스에서는 어떤 동작을 할지만 정해두..

Java 2026.06.15

JAVA 기초정리 - 다형성 (Polymorphism)

1. 다형성이란?다형성이란하나의 참조 변수로 여러 종류의 객체를 다루는 것의 의미 자바에서는 부모 타입 참조 변수로 자식 객체를 참조할 수 있는 것을 의미한다.Burger b = new BulgogiBurger(); 중요한 특징부모 타입 → 자식 객체 참조 가능 (O)자식 타입 → 부모 객체 참조 불가능 (X)Burger b = new BulgogiBurger(); // 가능BulgogiBurger b = new Burger(); // 불가능 왜 이런 구조일까?자식 객체는 부모보다 기능이 더 많다.Burger (부모) ├─ eat() BulgogiBurger (자식) ├─ eat() ├─ grill() 그래서기능을 “줄이는 것”은 가능 (OK)없는 기능을 “늘리는 것처럼 쓰는 것”은 불가능 (X)?..

Java 2026.06.12

Java 기초 정리 - 상속(Inheritance)

상속이란?기존 클래스를 확장(재사용)하여 새로운 클래스를 만드는 것!자식 클래스는 부모 클래스의 멤버를 상속받아 사용할 수 있다.단, 생성자(Constructor) 와 초기화 블록은 상속되지 않는다.따라서 자식 클래스는 부모 클래스가 가진 기능을 물려받고, 필요한 기능을 추가할 수 있다.특징부모 클래스의 멤버를 재사용할 수 있다.코드의 중복을 줄일 수 있다.자식 클래스의 멤버 수는 부모 클래스보다 항상 같거나 많다.class Area { int w; // 가로 길이 int d; // 세로 길이}class Square extends Area { int h; // 높이} 포함(Composition)포함이란 클래스 안에 다른 클래스의 객체를 멤버 변수로 선언하는 것을 말한다.class Area..

Java 2026.06.11

JAVA 기초정리 - 다형성과 예외처리

오늘은 객체지향의 핵심 개념인 다형성(Polymorphism) 과 프로그램의 안정성을 높여주는 예외처리(Exception Handling) 에 대해 정리해보려고 함!1. 다형성(Polymorphism)다형성이란?하나의 타입으로 여러 객체를 다룰 수 있는 것 객체지향 프로그래밍의 대표적인 특징 중 하나임.예를 들어 강아지와 고양이가 모두 동물이라면,Animal animal1 = new Dog();Animal animal2 = new Cat(); 처럼 부모 타입인 Animal 하나로 여러 자식 객체를 다룰 수 있음. 1) 업캐스팅 (Up Casting)자식 객체를 부모 타입으로 다루는 것Animal animal = new Dog(); 사실상 다형성의 시작점이라고 볼 수 있음.특징자동으로 형변환됨안전함부모가 ..

Java 2026.06.09

JAVA 기초 정리 - 객체지향 (final, 인터페이스, 캡슐화, 상속)

finalfinal 변수변수에 final을 붙이면 값을 한 번만 할당할 수 있다.final int a = 1;a = 2; // 오류 발생즉, 한 번 저장된 값은 변경할 수 없다. final 클래스클래스에 final을 붙이면 다른 클래스가 상속받을 수 없다.public final class Animal {}public class Dog extends Animal { } // 오류 final 메서드메서드에 final을 붙이면 자식 클래스에서 오버라이딩할 수 없다.public final void move() { System.out.println("이동");}상수(Constant)상수는 프로그램 실행 중 절대 변경되면 안 되는 값이다.자바에서는 상수를 대문자로 작성하는 것이 관례이다.상수는 보통 stati..

Java 2026.06.08

JAVA 기초 정리 - static과 인스턴스 멤버란?

자바를 공부하다 보면 static이라는 키워드를 자주 만나게 된다.처음에는 "왜 객체도 안 만들었는데 사용할 수 있지?"라는 생각이 들었는데, 정리해보니 생각보다 단순한 개념이었다.static이란?static은 클래스에 소속된 변수나 메서드를 만들 때 사용하는 키워드이다.일반적인 변수와 메서드는 객체를 생성해야 사용할 수 있지만, static이 붙은 변수와 메서드는 객체를 만들지 않아도 사용할 수 있다.public class Person { // static 변수 static int population = 0; // static 메서드 static void printPopulation() { System.out.println("현재 인구수: " + population);..

Java 2026.06.05

JAVA 기초 정리 - 래퍼 클래스(Wrapper Class)

래퍼 클래스(Wrapper Class)란?래퍼 클래스는:"기본 자료형을 객체(Object) 형태로 감싸는 클래스"이다. 쉽게 말하면:int 같은 기본형 데이터를객체처럼 사용할 수 있게 포장해주는 것이라고 이해할 수 있다. 예를 들어:int a = 10;은 기본형 변수이고,Integer num = 10;은 래퍼 클래스를 사용한 객체 형태이다.1. 기본 자료형(Primitive Type)자바에는 기본 자료형들이 존재한다.기본 자료형 종류booleancharbyteshortintlongfloatdouble이 자료형들은:값을 직접 저장하고속성이나 기능(메서드)을 가지지 않는다.2. 참조형(Reference Type)객체를 저장하는 변수는 참조형 변수라고 부른다.참조형 변수는 실제 데이터를 직접 저장하는 것이 아..

Java 2026.05.21

JAVA 기초 정리 - JVM 메모리 영역

1. JVM 메모리 구조JVM 메모리 구조는 크게 3가지 영역으로 나뉜다.Method AreaStack AreaHeap Area각 영역은 서로 다른 역할을 담당한다.1) Method AreaMethod Area는:"자바 파일들의 정보가 저장되는 공간"이라고 이해할 수 있다. 쉽게 비유하면:책들이 꽂혀 있는 책장같은 느낌이다. 이 영역에는:클래스 정보메서드 정보static 데이터등이 저장된다. 즉, 작성한 자바 파일들의 정보가 JVM 안에 올라가는 공간이라고 볼 수 있다.2) Stack AreaStack Area는 메서드 실행 정보를 저장하는 공간이다. 쉽게 말하면:"실행 중인 작업들이 순서대로 쌓이는 공간"이다. 비유하자면:접시를 차곡차곡 쌓아두는 구조와 비슷하다.Stack 특징메서드가 실행되면 Stac..

Java 2026.05.20

JAVA 기초 정리 - 클래스(Class)와 객체(Object)

1. 클래스(Class)란?클래스는:"객체를 만들기 위한 설계도"라고 볼 수 있다. 예를 들면:클래스 → 붕어빵 틀객체 → 실제 붕어빵같은 느낌이다. 자바에서는 객체를 만들 때 new 키워드를 사용한다.그리고 객체를 만드는 과정을:인스턴스화(객체화)라고 표현한다.클래스 생성 예시package chapter2.clazz;public class Person {}객체 생성Person personA = new Person();Person personB = new Person();여기서:Person → 클래스 이름personA → 객체 변수 이름new Person() → 객체 생성이다.2. 클래스 구조클래스는 크게 3가지 영역으로 구성된다.class 클래스 { // 1. 속성 // 2. 생성자 /..

Java 2026.05.19