Java 204

72. private 메서드 – 인터페이스 내부 중복 제거와 코드 정리

이번 글에서는 자바 9부터 도입된 인터페이스 내 private 메서드를 학습합니다.default나 static 메서드 안에서 반복되는 공통 코드를 분리할 수 있으며,외부에서는 보이지 않고 인터페이스 내부에서만 재사용됩니다.📦 인터페이스 코드 (Service.java)package ch08.sec07;public interface Service { default void defaultMethod1() { System.out.println("defaultMethod1 종속 코드"); defaultCommon(); } default void defaultMethod2() { System.out.println("defaultMethod2 종속 코드"); defaultCommon(); } private ..

Java/자바 정리 2025.05.08

71. static 메서드 – 인터페이스 자체에서 실행하는 유틸 기능

이번 글에서는 인터페이스에서 정적(static) 메서드를 정의하고 사용하는 방법을 학습합니다.default 메서드와 달리 static 메서드는 인터페이스 이름으로 직접 호출하며,보통 공통적인 유틸리티 기능을 정의할 때 사용됩니다.📦 인터페이스 코드 (RemoteControl.java)package ch08.sec06;public interface RemoteControl { int MAX_VOLUME = 10; int MIN_VOLUME = 0; void turnOn(); void turnOff(); void setVolume(int volume); default void setMute(boolean mute) { if (mute) { System.out.println("무음 처리합니다."); ..

Java/자바 정리 2025.05.08

70. default 메서드 – 인터페이스 안에 기본 기능 구현하기

이번 글에서는 자바 8부터 지원되는 인터페이스의 default 메서드를 학습합니다.기존에는 인터페이스에 메서드의 선언만 가능했지만,이제는 default를 통해 기본 구현까지 포함 가능하며,필요에 따라 구현 클래스에서 오버라이딩도 가능합니다.📦 인터페이스 코드 (RemoteControl.java)package ch08.sec05;public interface RemoteControl { int MAX_VOLUME = 10; int MIN_VOLUME = 0; void turnOn(); void turnOff(); void setVolume(int volume); default void setMute(boolean mute) { if (mute) { System.out.println("무음 처리합니다..

Java/자바 정리 2025.05.08

69. 인터페이스 상수와 메서드 구현 – 공통 규칙으로 기능 통일하기

이번 글에서는 인터페이스의 상수(static final)와구현이 강제되는 추상 메서드들을 통해일정한 규칙을 정의하고 여러 클래스가 이를 구현하는 방식을 실습합니다.📦 인터페이스 코드 (RemoteControl.java)package ch08.sec03;public interface RemoteControl { int MAX_VOLUME = 10; // public static final 자동 포함 int MIN_VOLUME = 0; void turnOn(); // public abstract 자동 포함 void turnOff(); void setVolume(int volume);}✔ 상수는 public static final, 메서드는 public abstract가 생략되어 있어도 적용됨📦..

Java/자바 정리 2025.05.08

68. 인터페이스와 다형성 – 구현 객체를 바꿔도 유지되는 구조

이번 글에서는 자바의 인터페이스(interface)를 이용해다형성을 구현하는 방법을 학습합니다.구현 객체를 바꾸더라도 동일한 타입으로 제어할 수 있는 구조를 통해코드의 유연성과 확장성을 높이는 설계를 체험합니다.📦 인터페이스 (RemoteControl.java)package ch08.sec02;public interface RemoteControl { public void turnOn(); // 추상 메서드}✔ interface로 선언된 타입은✔ 모든 메서드가 자동으로 public abstract (본문 없음)📦 구현 클래스 - TV (Television.java)package ch08.sec02;public class Television implements RemoteControl { public ..

Java/자바 정리 2025.05.08

67. 추상 메서드와 다형성 – 자식이 반드시 구현해야 하는 기능

이번 글에서는 추상 클래스 내 추상 메서드를 정의하고,자식 클래스에서 이를 오버라이딩하여 개별 동작을 구현하는 방법을 학습합니다.이를 통해 공통 인터페이스는 유지하면서,각 객체가 자신만의 동작을 정의할 수 있게 됩니다.📦 추상 클래스 (Animal.java)package ch07.sec10.exam02;public abstract class Animal { public void breathe() { System.out.println("숨을 쉽니다."); } public abstract void sound(); // 추상 메서드 (몸체 없음)}📦 자식 클래스 – 강아지 (Dog.java)package ch07.sec10.exam02;public class Dog extends Animal { publ..

Java/자바 정리 2025.05.08

66. 추상 클래스(Abstract Class) - 직접 생성 불가, 공통 기능 정의

이번 글에서는 자바의 추상 클래스(Abstract Class)에 대해 학습합니다.공통된 속성과 기능은 추상 클래스에 정의하고,객체는 직접 생성할 수 없으며, 자식 클래스에서 기능을 완성하여 사용하게 됩니다.📦 추상 클래스 (Phone.java)package ch07.sec10.exam01;public abstract class Phone { String owner; Phone(String owner) { this.owner = owner; } void turnOn() { System.out.println("폰 전원을 켭니다."); } void turnOff() { System.out.println("폰 전원을 끕니다."); }}📦 자식 클래스 (SmartPhone.java)package ch07..

Java/자바 정리 2025.05.08

65. 매개변수의 다형성 – 하나의 메서드로 여러 객체 동작시키기

이번 글에서는 메서드 매개변수에 부모 클래스 타입을 사용하고,그 자리에 다양한 자식 클래스의 객체를 전달함으로써하나의 메서드로 다양한 동작을 처리하는 다형성 구조를 학습합니다.📦 부모 클래스 (Vehicle.java)package ch07.sec08.exam02;public class Vehicle { public void run() { System.out.println("차량이 달립니다."); }}📦 자식 클래스 – 버스 (Bus.java)package ch07.sec08.exam02;public class Bus extends Vehicle { public void run() { System.out.println("버스가 달립니다."); }}📦 자식 클래스 – 택시 (Texi.java)pac..

Java/자바 정리 2025.05.08

64. 필드의 다형성 – 하나의 타입으로 다양한 객체 다루기

이번 글에서는 부모 클래스 타입의 필드를 선언한 뒤,여러 자식 클래스를 대입해 다형성을 구현하는 방법을 실습합니다.이는 유지보수성과 확장성을 높이는 데 매우 중요한 기법입니다.📦 부모 클래스 (Tire.java)package ch07.sec08.exam01;public class Tire { public void roll() { System.out.println("회전합니다."); }}📦 자식 클래스 - 한국타이어 (HankookTire.java)package ch07.sec08.exam01;public class HankookTire extends Tire { public void roll() { System.out.println("한국 타이어가 회전합니다."); }}📦 자식 클래스 - 금호타..

Java/자바 정리 2025.05.07

63. 다운캐스팅(Downcasting)과 참조 타입의 한계

이번 글에서는 상속 구조에서 부모 타입으로 자식 객체를 참조할 때의 제한과,자식 클래스의 고유 기능을 사용하려면 필요한 다운캐스팅(강제 형변환) 방법을 학습합니다.📦 부모 클래스 (Parent.java)package ch07.sec07.exam03;public class Parent { public String field1; public void method1() { System.out.println("Parent-method1()"); } public void method2() { System.out.println("Parent-method2()"); }}📦 자식 클래스 (Child.java)package ch07.sec07.exam03;public class Child extends Paren..

Java/자바 정리 2025.05.07
반응형