본문 바로가기

Java85

34.인터페이스의 여러가지 요소 상수 - 모든 변수는 상수로 변환 됨 public static final double PI = 3.14; int ERROR = -999999; 추상 메서드 - 모든 선언된 메서드는 추상 메서드 public absract 디폴트 메서드 (자바 8이후) - 구현을 가지는 메섣, 인터페이스를 구현하는 클래스들에서 공통으로 사용할 수 있는 기본 메서드 - default 키워드 사용 default void description() { System.out.println("정수 계산기를 구현합니다"); myMethod(); } - 구현하는 클래스에서 재정의할 수 있음 @Override public void description() { System.out.println("CompleteCalc에서 재정의한 defaul.. 2022. 5. 25.
33.인터페이스를 활용한 다형성 인터페이스와 다형성 - 하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있음(다형성) 인터페이스를 활용한 dao 구현하기 - DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함 - 환경파일(db.properties)에서 database의 종류에 대한 정보를 읽고 그 정보에 맞게 dao 인스턴스를 생성하여 실행될 수 있게 함 예제 - UserInfoDao.java public interface UserInfoDao { void insertUserInfo(UserInfo userInfo); void deleteUserInfo(UserInfo userInfo); void .. 2022. 5. 25.
32.인터페이스 인터페이스 - 모든 메서드가 추상 메서드로 선언됨 public abstract - 모든 변수는 상수로 선언됨 public static final interface 인터페이스 이름 { public static final float pi = 3.14; public void makeSomething(); } - 자바 8부터 디폴트 메서드(default method)와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있음 인터페이스 구현과 형 변환 - 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있음 Calc calc = new CompleteCalc(); - 상속에서의 형 변환과 달리 구현 코드가 없으므로 여러 인터페이스를 구현할 수 있음 (cf.ext.. 2022. 5. 24.
31.추상 클래스 - 템플릿 메서드 패턴 템플릿 메서드 - 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드 - final로 선언하여 하위 클래스에서 재정의 할 수 없게 함 - 프레임워크에서 많이 사용되는 설계 패턴 - 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 함 템플릿 메서드 예제 - Car.java public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar() { System.out.println("engine start"); } publ.. 2022. 5. 24.