Java17 Java 에서 중첩 클래스 Java에서는 중첩 클래스(Nested Class)를 사용하여 클래스 간의 관계를 유의미하게(?) 구축할 수 있다. 중첩 클래스는 여러 종류가 있으며, 각 종류에 따라 사용성과 특징이 다르다. 이번 포스팅에서는 중첩 클래스의 종류와 각 클래스의 특성을 살펴보겠다. 주니어 때 정확히 몰랐던 개념이다.중첩 클래스의 종류먼저 종류를 정리하면 아래와 같다.정적 중첩 클래스 (Static Nested Class)내부 클래스 (Inner Class)지역 클래스 (Local Class)익명 클래스 (Anonymous Class)1. 정적 중첩 클래스 (Static Nested Class) 정적 중첩 클래스는 외부 클래스의 인스턴스와 독립적으로 존재하며, 외부 클래스의 static 멤버에만 접근할 수 있다. 아래 예제.. 2025. 2. 3. Java 에서 Time 정리 서버 개발을 하다보면 날짜와 시간이 필요한 경우가 많다. 개념은 쉽지만 코드레벨에서는 이해를 정확히 하지 못해 날짜와 시간을 다루는 것은 생각보다 복잡할 수 있다. 대표적으로 복잡한 사례는 (1) 여러 가지 조건(윤년, 썸머타임 등), (2) Token 만료 기한 확인 등이 있다. 실제로 이 로직을 오류를 낸 경험이 있다. 이러한 복잡한 상황을 처리하기 위해 자바의 java.time 패키지와 같은 시간 라이브러리를 사용해야 한다. 오늘은 Time 에 대해서 개념을 이해하기 위한 아주아주 기초 지식을 정리해보고자 한다. 타임존 타임존은 UTC(협정 세계시)를 기준으로 변환되는 시간을 나타낸다. 예를 들어, 한국의 타임존은 Asia/Seoul로, 이는 UTC 기준으로 +09:00이다. 타임존을 통해 각 지역.. 2025. 2. 3. Java 에서 Enum 자바에서 Enum(열거형)은 특정 값의 집합을 정의할 수 있는 강력한 기능이다. Enum을 이해하기 위해서는 타입 안정성에 대한 개념이 필수적이다. 이번 포스팅을 통해 Enum 의 특징과 활용하는 방법에 대해서 이해해볼 수 있기를 기대한다.타입 안정성을 위한 Enum 아래와 같은 DiscuntService 클래스에서 할인율이 다르게 적용되는 여러 등급을 문자열로 정의하고 있다. 하지만 문자열을 비교하는 방식은 대소문자 오류 혹은 오타로 인해 예기치 않은 문제가 발생할 수 있다.package ex0;public class DiscountService { public int discount(String grade, int price) { int discountPercent = 0; .. 2025. 2. 2. Wrapper 클래스 자바는 객체 지향 언어로, 대부분의 데이터들은 객체의 특성을 지니고 있다. 그러나 int나 double과 같은 기본형 타입(Primitive Type)은 객체가 아니기 때문에 몇 가지 단점이 존재한다. 이번 포스팅에서는 기본형 타입의 한계를 극복하기 위한 "Wrapper" 클래스에 대해서 소개해보고자 한다.기본형 타입의 단점객체 특성 사용 불가 기본형 타입은 메서드를 제공하지 않기 때문에 객체 기반 기능을 사용할 수 없다. 아래 코드를 보자.int num1 = 5;boolean result = num1.compareTo(5); // 컴파일 에러 발생 `num1` 이 기본형 int 타입이기 때문에 내장 메서드를 사용할 수 없어 컴파일 에러가 발생한다. 기본형 데이터에 대해 메서드를 사용하려면 별도의 외부 .. 2025. 2. 2. Java 에서 final keyword 란!? Java에서 final과 static final은 매우 중요한 개념으로, 주로 상수를 정의할 때 사용된다. 이 두 키워드는 클래스의 속성과 관련된 값의 불변성을 보장하고, 코드의 안정성을 높인다. 이번 포스팅에서는 final과 static final의 사용과 그 필요성을 정리해보고자 한다.final final은 수정자(Modifier)로, 해당 변수나 메서드가 더 이상 변경될 수 없음을 나타낸다. 변수에 final 키워드가 붙으면, 변수를 초기화한 후에는 값을 변경할 수 없다. 이 때마다 값을 변경하려 하면 컴파일 오류가 발생한다.public class Example { private final int VALUE_HOLD = 10; public void displayValue() { .. 2025. 1. 29. Java 에서 다형성과 객체지향 프로그래밍 다형성(Polymorphism)은 객체지향 프로그래밍(OOP)의 주요 원칙 중 하나로, 동일한 메서드가 여러 다른 형태로 동작할 수 있도록 하는 기능이다. 이를 통해 코드의 유연성과 확장성을 높일 수 있다. 이번 포스팅에서는 다형성의 두 가지 핵심 개념인 "다형적 참조"와 "캐스팅", "OCP" 에 대해 살펴보겠다.다형적 참조 다형적 참조는 부모 클래스 타입의 변수가 자식 클래스 객체를 참조할 수 있는 기능을 의미한다. 이를 통해 부모 클래스에서 정의된 메서드는 호출할 수 있지만, 자식 클래스의 메서드는 직접 호출할 수 없다.class Parent { public void parentMethod() { System.out.println("Parent method"); }}class.. 2025. 1. 29. 이전 1 2 3 다음 반응형