본문 바로가기

프로그래밍 언어/JAVA(자바) 응용73

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.
30.추상 클래스 추상 클래스 - 구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스 - 메서드 선언(declaration) : 반환 타입, 메서드 이름, 매개변수로 구성 - 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body)를 가짐({}) - 예. int add(int x, int y); //선언, int add(int x, int y){} //구현부가 있음, 추상 메서드 아님 -abstract 예약어를 사용 - 추상 클래스는 new 할 수 없음(인스턴스화 할 수 없음) 추상 클래스 구현하기 - 메서드에 구현 코드가 없으면 abstract로 선언 - abstract로 선언된 메서드를 가진 클래스는 abstract로 선.. 2022. 5. 24.