[Java] 객체의 다형성 구현 (인터페이스) 1. 인터페이스 역할 인터페이스는 객체의 사용 방법을 정의한 타입 인터페이스는 객체의 교환성을 높여주기 때문에 다형성을 구현하는데 매우 중요한 역할 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됩니다. 왜 중간에 인터페이스를 두는 가요? 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위해서입니다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴 값이 다를 수 있습니다. (다형성) 객체 교환을 이용해서 다양한 리턴 값을 반환받을 수 있습니다. (부품.. Backend/객체 지향 프로그래밍 3년 전
[Java] 단 하나의 객체만 생성 (싱글톤 패턴, Singleton pattern) 1. 싱글톤(Singleton) 단 하나의 객체만 만들도록 보장해야 하는 경우에 활용 1. 생성자 앞에 private 접근 제한자 선언 (외부에서 new 연산자로 생성자 호출 불가능) public class Singleton { // 1. 생성자 앞에 private 접근 제한자 선언 private Singleton() { } } 2. 자신의 타입인 정적 필드를 선언하고 자식의 객체를 생성 (초기화, 필드도 접근 불가능하도록 private 선언) public class Singleton { // 2. 자신의 타입인 정적 필드를 선언하고 자식의 객체를 생성 private static Singleton singleton = new Singleton(); // 1. 생성자 앞에 private 접근 제한자 선언 .. Backend/객체 지향 프로그래밍 3년 전
[Java] 정적 멤버 1. 정적 멤버 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드 정적 메소드, 정적 필드를 클래스 멤버라고 부르기도 합니다. 2. 정적 멤버 선언 static 키워드를 붙여서 정적 멤버를 선언합니다. (static = 고정된) 정적 멤버는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스 별로 관리 클래스의 로딩이 끝나면 바로 사용 가능 public class 클래스 { // 정적 필드 static 타입 필드 [= 초기값]; // 정적 메소드 static 리턴 타입 메소드( 매개변수선언, ... ) { ... } } [정적 필드] 객체마다 가지고 있어야 할 데이터라면 인스턴스 필드로 선언하고, 객체마다.. Backend/객체 지향 프로그래밍 3년 전