Java 204

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

80. 인터페이스와 람다식 – 익명 객체 대신 사용하는 간결한 표현

이번 강의에서는 람다식(Lambda Expression) 을 사용하여함수형 인터페이스(Functional Interface) 를 구현하는 방법을 학습합니다.익명 구현 객체보다 훨씬 간결한 코드 작성이 가능하며,자바에서 함수형 프로그래밍 스타일을 구현할 수 있도록 도와줍니다.📌 함수형 인터페이스란?메서드가 1개만 정의된 인터페이스@FunctionalInterface로 명시 가능 (선택사항)대표 예: Runnable, Comparator, Consumer, Supplier 등📦 예제 인터페이스 (Workable.java)package ch08.sec13;@FunctionalInterfacepublic interface Workable { void work(String job);}✔ work() 메서드 하..

Java/자바 정리 2025.05.12

79. instanceof와 패턴 매칭 – 안전한 형변환과 실행 흐름 제어

이번 글에서는 인터페이스 타입으로 참조된 객체가어떤 구현체인지 판별하여 형변환(Casting) 후 특정 기능을 실행하는 방법을 학습합니다.instanceof를 사용해 안전하게 검사한 뒤 형변환하며,자바 16부터는 더 간결한 패턴 매칭 방식도 사용할 수 있습니다.📦 인터페이스 (Vehicle.java)package ch08.sec12;public interface Vehicle { void run();}📦 구현 클래스 – 버스 (Bus.java)package ch08.sec12;public class Bus implements Vehicle { public void run() { System.out.println("버스가 달립니다."); } public void checkFare() { System..

Java/자바 정리 2025.05.09

78. 인터페이스 매개변수 활용 – 다양한 객체를 받아들이는 구조

이번 글에서는 메서드의 매개변수를 인터페이스 타입으로 선언하여,다양한 구현 객체를 넘겨 실행할 수 있는 다형성 구조를 학습합니다.이 방식은 유연한 설계와 코드 재사용성에 큰 장점을 제공합니다.📦 인터페이스 (Vehicle.java)package ch08.sec11.exam02;public interface Vehicle { void run();}📦 구현 클래스 – 버스 (Bus.java)package ch08.sec11.exam02;public class Bus implements Vehicle { public void run() { System.out.println("버스가 달립니다."); }}📦 구현 클래스 – 택시 (Texi.java)package ch08.sec11.exam02;public..

Java/자바 정리 2025.05.09

77. 인터페이스 교체 – 유연한 구조 설계의 핵심

이번 글에서는 인터페이스 타입으로 선언된 필드를다양한 구현 객체로 교체하면서 사용하는 구조를 학습합니다.이 방식을 통해 코드를 수정하지 않고 객체만 바꿔서 다른 동작을 실행할 수 있어요.📦 인터페이스 (Tire.java)package ch08.sec11.exam01;public interface Tire { void roll();}📦 구현 클래스 – 한국 타이어 (HankookTire.java)package ch08.sec11.exam01;public class HankookTire implements Tire { public void roll() { System.out.println("한국 타이어가 굴러갑니다."); }}📦 구현 클래스 – 금호 타이어 (KumhoTire.java)package ..

Java/자바 정리 2025.05.09

76. 강제 타입 변환(Casting) – 인터페이스로 묶고 다시 풀기

이번 글에서는 인터페이스 타입으로 형변환된 객체를 다시 구현 클래스 타입으로 변환(Casting) 하여,해당 클래스 고유의 기능을 사용하는 방법을 학습합니다.📦 인터페이스 (Vehicle.java)package ch08.sec10.exam02;public interface Vehicle { void run();}📦 구현 클래스 (Bus.java)package ch08.sec10.exam02;public class Bus implements Vehicle { public void run() { System.out.println("버스가 달립니다."); } public void checkFare() { System.out.println("승차 요금을 체크합니다."); }}📌 실행 클래스 (Casti..

Java/자바 정리 2025.05.09

75. 인터페이스 타입 변환(Promotion) – 구현 객체는 모두 인터페이스로 본다

package ch08.sec10.exam01;public class E extends C {}이번 강의에서는 클래스가 인터페이스를 구현했을 때,그 클래스 또는 하위 클래스의 객체를 자동으로 인터페이스 타입으로 변환할 수 있는 구조를 학습합니다.이를 통해 하나의 인터페이스 타입으로 여러 객체를 다형성 있게 제어할 수 있습니다.📦 인터페이스 A (A.java)package ch08.sec10.exam01;public interface A {}📦 A를 구현하는 클래스 B, Cpackage ch08.sec10.exam01;public class B implements A {}package ch08.sec10.exam01;public class C implements A {}📦 B, C를 상속하는 클래스 ..

Java/자바 정리 2025.05.09

74. 인터페이스 상속 – 인터페이스도 다중 상속이 된다!

이번 글에서는 인터페이스 간의 상속(extends) 을 통해여러 개의 인터페이스를 하나로 묶어 통합된 인터페이스를 만드는 방법을 학습합니다.이는 구조를 더 명확하고 확장 가능하게 만들어 줍니다.📦 인터페이스 A (InterfaceA.java)package ch08.sec09;public interface InterfaceA { void methodA();}📦 인터페이스 B (InterfaceB.java)package ch08.sec09;public interface InterfaceB { void methodB();}📦 인터페이스 C – 다중 상속 인터페이스 (InterfaceC.java)package ch08.sec09;public interface InterfaceC extends Interfa..

Java/자바 정리 2025.05.09

73. 인터페이스 다중 구현 – 하나의 객체, 여러 타입으로 제어

이번 글에서는 하나의 클래스가 두 개 이상의 인터페이스를 동시에 구현하고,각 인터페이스 타입으로 분리하여 다형성 있게 사용하는 방법을 학습합니다.📦 인터페이스 1 – 리모콘 (RemoteControl.java)package ch08.sec08;public interface RemoteControl { void turnOn(); void turnOff();}📦 인터페이스 2 – 검색 기능 (Searchable.java)package ch08.sec08;public class SmartTelevision implements RemoteControl, Searchable { public void turnOn() { System.out.println("TV를 켭니다."); } public void turn..

Java/자바 정리 2025.05.09
반응형