인터페이스 Queue 에다가 메소드를 명세해 놓는다. package scheduler2; public interface Queue { void enQueue(String title); String deQueue(); int getSize(); void info(); } Shelf 클래스에 구현해 놓는다. package scheduler2; import java.util.ArrayList; public class Shelf { protected ArrayList shelf; public Shelf() { shelf = new ArrayList(); } public ArrayList getShelf() { return shelf; } public int getCount() { return shelf.size..
JAVA Programming
인터페이스의 요소들 ( 명세 , 설계도) 상수 : 선언된 모든 변수는 상수로 처리된다. 메소드 : 모든 메소드는 추상 메소드 이다. 디폴트 메소드 : 기본 구현을 가지는 메소드 구현하는 클래스에서 재정의 할수 있다.(java 8) 정적 메소드 : 인스턴스 생성과 상관없이 인터페이스 타입으로 호출하는 메소드(java 8) private 메소드 : 인터페이스 내에서 사용하기 위해 구현한 메소드 구현하는 클래스에서 재정의 할수 없다. 여러 개의 인터페이스 구현하기 인터페이스는 구현 코드가 없으므로 하나의 클래스가 인터페이스를 구현 할수 있다 디폴트 메소드의 이름이 중복되는 경우 재정의 한다. extends 키워드 뒤에 오는건 하나이다. Implements 뒤에 100개가 와도 상관이 없다. 인터페이스 상속 인..
인터페이스의 역할 은 ? 인터페이스는 클라이언트 프로그램에 어떤 메소드를 제공하는지 알려주는 명세 또는 약속 이다. 한 객체가 어떤 인터페이스의 타입이라 함은 그 인터페이스의 메소드를 구현했다는 의미이다. 클라이언트 프로그램은 실제 구현내용을 몰라서 인터페이스의 정의만 알면 그 객체를 사용할수있다 인터페이스를 구현해 놓은 다양한 객체를 사용한다 – 다형성 : JDBC 를 구현한 오라클, MSSQL 라이브러리 등이 있다. 라운드로빈 방식 차례대로 짧은 상담원 에게 배분한다던가 대기열이 긴다 해도 숙련도가 높은 상담원 등 우선 배분할수있는 정책들 배분을 하기위한 기능은 이미 정해져있을것이다. 스케쥴링에는 대기열에서 가져오는 getNextCall() 과 상담원의 전화를 가져오는 상담원 sendCallToAge..
package cartest; public abstract class Car { public abstract void start(); public abstract void drive(); public abstract void stop(); public abstract void turnoff(); final public void run() { // 템플릿 메소드 start(); drive(); stop(); turnoff(); } } 추상메소드를 가지는 추상 클래스를 생성합니다. final 로 지정된 템플릿메소드 run() 를 생성합니다. - 로직순서를 구현 package cartest; public class Sonata extends Car { @Override public void start() { ..
템플릿 메소드 활용 하기 상속개념 , 다형성 개념 과 템플렛메소드 개념도 이해하고 넘어가야 한다. abstract class 추상 클래스 선언 템플릿 메소드 go() package TempletEx; public abstract class PlayerLevel { // 상위클래스 public abstract void run(); public abstract void jump(); public abstract void turn(); public abstract void showLevelMessage(); final public void go(int count) { // 템플릿 메소드 생성 - 이순서대로 실행해야 하기 때문에 final로 선언 run(); for(int i = 0; i < count; i++..
abstract class ( 추상 클래스 ) 추상클래스 응용 – 템플릿 메소드 사용 추상클래스는 상위클래스를 만들고 하위클래스가 상속받아서 구현해서 쓰는 경우가 많다. 템플릿 메소드 템플릿 : 틀이나 견본을 의미한다. 템플릿 메소드 : 추상 메소드나 구현된 메서드를 활용하여 전체의 흐름(시나리오) 를 정의해 놓은 메소드 이다. final 로 선언하여 재정의 할 수 없게 된다. 로직 – 이순서대로 수행해라 템플릿 메소드 패턴 : 디자인 패턴의 일종이다. 프레임 워크에서 많이 사용되는 설계 패턴이다. 추상클래스로 선언된 상의 클래스에서 추상 메소드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메소드 구현은 하위클래스에 위임한다. 하위 클래스가 다른 구현을 했다고 해서 템플릿 메소드에 정의된 시나리오..