Java 275

90. 인터페이스 기반 익명 구현 객체 – 직접 클래스 만들지 않아도 OK

이번 글에서는 인터페이스를 직접 구현하지 않고, 익명 객체를 사용해 동작을 정의하는 방법을 학습합니다.이 방식은 코드를 간결하게 만들고, 일회성 기능 구현이 가능하여UI 이벤트, 기기 제어, 콜백 처리 등에 널리 사용됩니다.📦 인터페이스 정의 (RemoteControl.java)package ch09.sec07;public interface RemoteControl { void turnOn(); void turnOff();}📦 익명 구현 객체를 활용한 클래스 (Home.java)package ch09.sec07;public class Home { private RemoteControl rc = new RemoteControl() { @Override public void turnOn() { S..

Java/자바 정리 2025.05.12

89. 익명 구현 객체 – 한 번만 쓰고 버리는 1회용 클래스 만들기

이번 글에서는 익명 구현 객체(Anonymous Object) 를 사용하여클래스의 메서드를 재정의하고 실행하는 방법을 학습합니다.이름 없이 즉석에서 클래스를 선언하고 객체로 사용하는 방식으로,주로 콜백 처리나 일회성 재정의에 활용됩니다.📦 기본 클래스 정의 (Tire.java)package ch09.sec07;public class Tire { public void roll() { System.out.println("일반 타이어가 굴러갑니다."); }}📌 자동차 클래스 (Car.java)package ch09.sec07;public class Car { private Tire tire1 = new Tire(); // 익명 자식 객체를 필드에 직접 대입 private Tire tire2 = new T..

Java/자바 정리 2025.05.12

[ 간단 정리 88+ ] 익명 객체 vs 람다식 vs 내부 클래스 ㅡ 차이점 비교!!

항목익명 객체람다식내부 클래스🌟 정의이름 없는 클래스를 즉석에서 구현함수형 인터페이스를 간단히 표현클래스 안에 정의된 또 다른 클래스🧱 형태new 인터페이스() { ... }(매개변수) -> { 코드 }class Inner { ... }🧠 목적일회성 클래스 구현 (보통 인터페이스나 추상 클래스)함수처럼 간단한 코드 전달 (자바 8 이상)외부 클래스와 밀접한 관계가 있는 구조적 코드📋 제한생성자 사용 불가, 클래스 이름 없음함수형 인터페이스만 가능static 여부에 따라 인스턴스 필요 유무 다름📦 코드 양중간 (중괄호 + 오버라이드 필요)아주 간결 (함수처럼 표현 가능)길어질 수 있음 (정식 클래스니까요)🎯 사용 예Runnable, ActionListener, 콜백 등Comparator, Str..

Java/자바 정리 2025.05.12

88. 이벤트 처리를 위한 로컬 클래스 구현 – 콜백 메커니즘 만들기

이번 강의에서는 이벤트 처리 방식에서 자주 사용하는 콜백 인터페이스와 로컬 클래스 구조를 학습합니다.인터페이스를 구현한 로컬 클래스를 생성하여버튼 클릭 시 동작이 실행되는 구조를 이해하는 것이 핵심입니다.📦 콜백 인터페이스 포함 클래스 (Button.java)package ch09.sec06;public class Button { public static interface ClickListener { void onClick(); } private ClickListener clickListener; public void setClickListener(ClickListener clickListener) { this.clickListener = clickListener; } public void clic..

Java/자바 정리 2025.05.12

87. 내부 클래스에서 외부 클래스 참조하기 – this vs A.this

이번 글에서는 자바의 인스턴스 멤버 클래스 내부에서 this와 외부 클래스 참조를 어떻게 구분하고 사용하는지를 배웁니다.내부 클래스와 외부 클래스에 같은 이름의 필드나 메서드가 존재할 때,어떤 것이 호출되는지 명확히 구분하는 방법을 학습합니다.📦 외부 클래스 (A.java)package ch09.sec05.exam02;public class A { String field = "A-field"; void method() { System.out.println("A-method"); } class B { String field = "B-field"; void method() { System.out.println("B-method"); } void print() { System.out.prin..

Java/자바 정리 2025.05.12

85. 로컬 클래스(Local Class) – 메서드 안에 클래스가?!

이번 글에서는 로컬 클래스(Local Class) 를 학습합니다.로컬 클래스는 메서드나 생성자 내부에 선언되는 클래스로,짧은 범위에서 한정적으로 필요한 클래스를 정의할 때 사용합니다.📦 클래스 구조 (A.java)package ch09.sec04.exam01;public class A { A() { class B { } // 생성자 내부 로컬 클래스 B b = new B(); // 객체 생성 } void method() { class B { } // 메서드 내부 로컬 클래스 B b = new B(); // 객체 생성 }}📌 핵심 포인트특징설명선언 위치생성자, 메서드, 초기화 블록 등 내부에서만 선언 가능접근 제한자사용 불가 (public, private, static 등 사용..

Java/자바 정리 2025.05.12

84. 정적 멤버 클래스의 활용 – 인스턴스와 static 멤버를 모두 가진 클래스

이번 글에서는 정적(static) 멤버 클래스가인스턴스 멤버와 정적 멤버를 동시에 가질 수 있는 구조임을 확인하고,이를 어떻게 활용할 수 있는지를 실습합니다.📦 외부 클래스 (A.java)package ch09.sec03.exam02;public class A { static class B { int field1 = 1; // 인스턴스 필드 static int field2 = 2; // 정적 필드 B() { System.out.println("B-생성자 실행"); } void method1() { System.out.println("B-method1 실행"); } static void method2() { System.out.println("B-method2 ..

Java/자바 정리 2025.05.12

83. 정적 멤버 클래스의 독립성 – 외부 인스턴스 없이 자유롭게 활용

이번 글에서는 자바의 중첩 클래스 중 정적(static) 멤버 클래스를외부 클래스의 모든 영역에서 어떻게 활용할 수 있는지를 학습합니다.또한 정적 클래스가 가지는 외부 클래스와의 독립성도 강조합니다.📦 외부 클래스 (A.java)package ch09.sec03.exam01;public class A { static class B { } // 정적 멤버 클래스 B field1 = new B(); // 인스턴스 필드 static B field2 = new B(); // 정적 필드 A() { B b = new B(); // 생성자에서 사용 } void method() { B b = new B(); // 인스턴스 메서드에서 사용 } static void meth..

Java/자바 정리 2025.05.12

82. 정적(static) 멤버 클래스 – 외부 객체 없이도 작동하는 중첩 클래스

이번 글에서는 자바 중첩 클래스 중 정적(static) 멤버 클래스에 대해 학습합니다.외부 클래스의 객체 없이도 사용할 수 있으며, 정적 필드/메서드 선언도 가능한 구조입니다.📦 외부 클래스 (A.java)package ch09.sec02.exam02;public class A { static class B { // 정적 멤버 클래스 int field1 = 1; // 인스턴스 필드 static int field2 = 2; // 정적 필드 B() { System.out.println("B-생성자 실행"); } void method1() { System.out.println("B-method1 실행"); } static void method2() {..

Java/자바 정리 2025.05.12

81. 인스턴스 멤버 클래스 – 클래스 안에 클래스가 있다고요?

이번 글에서는 중첩 클래스(Inner Class) 중에서도인스턴스 멤버 클래스(Instance Member Class) 에 대해 학습합니다.이 클래스는 외부 클래스의 인스턴스 멤버와 밀접하게 연결된 구조를 가질 수 있습니다.📦 외부 클래스 (A.java)package ch09.sec02.exam01;public class A { class B { } // 인스턴스 멤버 클래스 B field = new B(); // A의 인스턴스 멤버에서 B 사용 A() { B b = new B(); // 생성자에서 B 객체 생성 가능 } void method() { B b = new B(); // 메서드에서도 생성 가능 }}✔ B는 A 내부에 선언된 인스턴스 멤버 클래스✔ A의 객체가 생성되어야만 사용할 수 있음?..

Java/자바 정리 2025.05.12
반응형