최초 작성일: 2022년 12월 20일 화요일
Motivation
여러 class에서 공통적으로 사용하는 method를 미리 선언하고, 각 class에서 실제 어떤 method가 다르게 구현되는지 표현해 보자. 실무에서는 Interface 개념을 활용하여 여러 프로그래머가 공통 method를 각 class에서 다르게 표현할 수 있다. 이를 통해 개발의 효율성을 향상시킬수 있겠다. 또한, 같은 개념을 다른 클래스에서 다르게 구현하는 데에 사용할 수도 있다.
목차
1. 인터페이스(interface)란?
2. Eclipse에서 인터페이스 만든다
3. 나의 예제:
- Class 는 2개: North, South
- 공통 method: add (interface에서 명시적으로 표현)
- Class North 에서 add(number1, number2) = number1 + number2
- Class South 에서 add(number1, number2) = number1 + number1
4. 실행시켜 보자
본문
1. 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언한다.
- 인터페이스는 추상 메서드와 상수로만 구성되어 있음
- 인터페이스 자체는 구현된 코드가 없다. 그러므로, 인터페이스로 된 인스턴스(instance)를 생성할 수도 없다.
2. Eclipse (JAVA Integrated Development Environment, IDE) 에서 인터페이스 만들기
- 패키지에서 마우스 오른쪽 버튼을 클릭하고 New -> Interface를 클릭한다.
3. 나의 예제:
Class 는 2개: North, South
공통 method: add (interface에서 명시적으로 표현)
Class North 에서 add(number1, number2) = number1 + number2
Class South 에서 add(number1, number2) = number1 + number1
공통 method인 "add"에 대해 North 와 South 라는 2개 class에서 구현되는 것은 같다. 그러나, North 에서의 method와 South 에서의 Method는 다르다. Interface 인터페이스를 통해 공통 개념을 명시만 하고, 실제 method 내용은 각 class에서 구현한다.
1) 2번을 참고하여 Interface를 생성하고, class North, class South를 Eclipse 에서 생성시킨다. 같은 package에 존재하게 한다.
Interface의 이름은 Inter로 작성했으며, add라는 method는 2개 숫자를 가지는 것으로만 명시적으로 선언한다.
package chapter2;
public interface Inter {
int add(int num1, int num2);
}
Class North는 아래와 같이 작성한다. 주요 포인트는 @Override로 시작되는 부분인데, interface에서 명시적으로 선언되었을 뿐인 (즉, 실제 내용은 부재한) method "add"를 세부사항까지 작성해 준다. North의 add는 두 숫자(num1, num2)가 주어질 경우, 두 숫자를 더한후 출력한다: num1+num2. North class가 interface "inter"에서의 method를 구현한다는 의미로 'North implements Inter'를 작성한다.
package chapter2;
public class North implements Inter {
public static void main(String[] args) {
}
@Override
public int add(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
}
Class South는 아래와 같이 작성했다. North때와 마찬가지로, 주요포인트는 @Override로 시작되는 부분이다. South에서의 "add" method는 두 숫자(num1, num2)가 주어질 경우, 첫번째 숫자를 첫번째 숫자에 더한후 출력한다: num1+num1.
package chapter2;
public class South implements Inter {
public static void main(String[] args) {
}
@Override
public int add(int num1, int num2) {
int sum = num1 + num1;
return sum;
}
}
실행해 보자.
North.add(3,10) = 3+10 = 13 으로 출력되어야 되겠고
South.add(3,10) = 3+3 = 6 으로 출력되어야 되겠다.
package chapter2;
public class South implements Inter {
public static void main(String[] args) {
North north = new North();
System.out.println("North class's result of add(3,10) is: " + north.add(3,10));
South south = new South();
System.out.println("South class's result of add(3,10) is: " + south.add(3, 10));
}
@Override
public int add(int num1, int num2) {
int sum = num1 + num1;
return sum;
}
}
출력값:
끝
compute2080의 블로그
https://compute2080.tistory.com/