JAVA(30)
-
Abstract Class(추상 클래스)
자바에서 추상 클래스는 공통 로직을 정의하면서도 자식 클래스에게 특정 기능을 강제할 수 있는 설계 도구다. 객체 지향 설계의 중요한 원칙을 반영하는 요소이기도 하다.🏗️ 추상 클래스란?추상 클래스는 abstract 키워드로 정의되는 불완전한 클래스 입니다. 인스턴스화할 수없으며, 자식 클래스가 반드시 완성해야 하는 메서드(추상 메서드)를 포함할 수 있다.추상클래스의 목적으로 일관된 인터페이스를 제공하면서, 기본 동작은 미리 구현해둔 클래스 템플릿 역할을 한다. 🌐 객체지향적 관점에서의 추상 클래스추상 클래스는 "설계"다.객체지향 프로그래밍에서 클래스는 단순히 코드를 담는 그릇이 아니고, 현실 세계의 개념과 관계를 추상화한 설계 청사진이다. 추상 클래스는 그중에서도 불완전한 설계로서, 상속을 통해 구..
2025.05.28 -
Anonymous Class(익명 클래스)
익명 클래스는 이름이 없는 일회용 클래스다.클래스를 선언하고 인스턴스를 생성하는 코드가 한곳에 존재하는 구조로, 주로 인터 페이스나 추상 클래스를 상속받아 짧게 구현할 때 사용한다.이름이 없는 것을 제외하면 지역 클래스와 비슷하다. 지역 클래스를 한번만 사용해야 할 경우 익명 클래스를 사용하면 된다.지역 클래스가 클래스 선언인 반면, 익명 클래스는 expression이다. 이는 다른 expression내에서 클래스를 정의한다는 것을 의미한다.익명클래스를 사용하는 경우는특정 클래스나 인터페이스를 한 번만 구현할 필요가 있을 때주로 이벤트 처리, 콜백, 간단한 전략 구현 등에 사용됨📘 익명 클래스의 문법앞서 언급했듯이 익명 클래스는 expression이다. 익명 클래스 extension의 문법은 코드 블록..
2025.05.28 -
Nested(중첩) Class
🖥️ 중첩 클래스란?중첩 클래스란, 클래스 내부에 정의된 클래스(자바 프로그래밍 언어에서는 클래스 내에 다른 클래스를 정의할 수 있다)를 말한다. 다른 클래스의 멤버처럼 존재하는 클래스로, 외부 클래스와 논리적으로 밀접한 관계가 있을 때 사용한다.public class OuterClass { ... class NestedClass { ... }}Non-static 중첩 클래스는 inner 클래스라고 한다.static으로 선언된 중첩 클래스들은 static nested 클래스하고 한다.외부 클래스 → 내부 클래스를 정의한, 감싸고 있는 클래스.📂 중첩 클래스의 분류유형static 여부외부 클래스 멤버 접근주요 특징non-static 중첩 클래스(inner 클래스) ❌ sta..
2025.05.28 -
JAVA의 추상화 철학 : 복잡함 속의 단순함을 향하여
🌐 Java의 추상화(Abstraction) 🤔 추상화란?추상화(Abstraction)는 소프트웨어 공학의 핵심 원칭 중 하나로, 복잡한 현실 세계를 산순화하여 본질적인 부분만을 모델링하는 기법이다. 즉, "필요한 것만 보여주고, 나머지는 감춘다"는 철학이다. 추상화의 목적복잡한 시스템을 단순하게 표현사용자와 구현의 분리유지보수성과 재사용성 향상 💻 Java에서의 추상화 구현 수단1️⃣ 직접적인 추상화 수단abstract class공통 기능 + 부분 추상화 구현 가능interface구현 없이 규약만 정의, 다중 구현 가능 → 이 두 가지는 문법적으로 추상화를 명시적으로 지원하는 Java의 핵심 수단이다. 2️⃣ 간접적인 추상화 수단 및 설계 기법⌨️ 상속(Inheritance)상속은 추상화된 개념(..
2025.05.14 -
POJO(Plain Old Java Object)
☀️ POJO(Plain Old Java Object)란?POJO는 Plain Old Java Object의 줄임말로, 특별한 제한 없이 만들어진 가장 순수한 형태의 자바 객체를 뜻한다.이는 2000년대 초, Java가 무겁고 복잡한 EJB(Enterprise JavaBeans)에 의존하던 시절을 벗어나, 개발자들이 간단하고 유연한 객체지향 개발을 추구하면서 탄생한 용어다.☀️ 정의와 철학 POJO는 다음 세 가지 기주을 충족하는 객체를 말한다.특정 Java 프레임워크의 API를 상속하거나 구현하지 않는다.특정한 어노테이션(@Entity, @Component 등)에 의존하지 않는다복잡한 설정 없이 자바 언어 자체로만 정의된다.즉, POJO는 프레임워크 독립적인 객체지향 프로그래밍의 순수성을 지키는 도구다..
2025.05.14 -
Explicit(명시적)과 Implicit(암시적)
☀️ 명시적과 암시적✍️ 명시적(Explicit) - 개발자가 직접 지시하는 코드"명시적"이란 말은 프로그래머가 직접 코드를 통해 의도를 정확히 표현하는 것을 말한다→ 컴파일러나 JVM이 실행하지 않고, 프로그래머가 의도를 코드로 직접 적어준다.장점▶ 명확한 의도 전달 → 협업 시 의사소통이 쉬움 ▶ 예측 가능성이 높음 → 버그 발생 확률 낮아짐 ▶ 디버깅이 쉬움단점 ▶코드가 장황해질 수 있음 ▶ 생산성이 떨어질 수 있음(반복적인 코드)🤖 암시적(Implicit) - 컴파일러나 JVM이 알아서 판단 하는 코드"암시적"이란 말은 프로그래머가 직접 명시하지 않아도 컴파일러가 자동으로 처리하는 것을 말한다.→ 코드에 없지만, 자바가 추론하거나 자동으로 수행하는 동작장점▶ 간결하고 깔끔한 코드▶ 생산성이 높아..
2025.05.14