본문 바로가기

JAVA

JAVA 실습 #1 - interface (인터페이스) 예제: 공통 method "add"를 다른 2가지 방법으로 표현해 보자

최초 작성일: 2022년 12월 20일 화요일

 

Motivation

여러 class에서 공통적으로 사용하는 method를 미리 선언하고, 각 class에서 실제 어떤 method가 다르게 구현되는지 표현해 보자.  실무에서는 Interface 개념을 활용하여 여러 프로그래머가 공통 method를 각 class에서 다르게 표현할 수 있다. 이를 통해 개발의 효율성을 향상시킬수 있겠다. 또한, 같은 개념을 다른 클래스에서 다르게 구현하는 데에 사용할 수도 있다. 

 

UML Class Diagram

 

목차

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를 클릭한다.

패키지 - 마우스 오른쪽 클릭 - New - Interface

 

Name 부문에 인터페이스의 이름이 될 값을 입력하고, finish를 누른다

 

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에서 구현한다. 

 

UML Class Diagram

1) 2번을 참고하여 Interface를 생성하고, class North, class South를 Eclipse 에서 생성시킨다. 같은 package에 존재하게 한다. 

Eclipse내의 같은 package "chapter2"에 interface "inter", north, south class들이 존재하도록 생성한다.

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;
	}
}

출력값:

각 class에서의 add 결과값을 출력한다.

끝 

 

compute2080의 블로그

https://compute2080.tistory.com/