오답노트
[Java] 인터페이스 본문
인터페이스
인터페이스란 서로 다른 것을 소통할 수 있게 해주는 일종의 도구다. 우리는 컴퓨터와 소통하기 위해 키보드를 사용하고, TV와 소통하기 위해 리모컨을 사용한다. 이처럼 Java는 소통할 수 있는 도구를 만들 수 있는 인터페이스라는 것이 있다.
인터페이스는 함수를 가상화하여 가지고 있고, 구체적인 수행 내용은 클래스가 받아 정의를하게 된다.
그리고 Java는 다중상속이 불가능하지만 인터페이스를 통해 이 한계를 극복했다.
인터페이스는 다른 클래스를 작성할 때 기본이 되는 틀을 제공한다.
인터페이스 사용
인터페이스 생성
public interface Calc {
double PI = 3.14;
int ERROR = -99999999;
int add(int num1, int num2);
int substract(int num1, int num2);
int times(int num1, int num2);
int divide(int num1, int num2);
default void decription() {
System.out.println("정수의 사칙연산을 제공합니다");
}
static int total(int[] arr) {
int total = 0;
for(int num : arr) {
total += num;
}
return total;
}
}
위 코드는 간단한 계산기를 만들기 위한 인터페이스이다.
class를 생성하듯이 만들면 된다.
내부 함수를 살펴보면 일반적으로 우리가 알고 있는 함수의 형태도 보이지만, 선언만된 채 정의되어 있지 않은 함수도 보인다.
이제 정의되지 않은 함수들을 정의해보자
public class Calculator implements Calc {
@Override
public int add(int num1, int num2) {
return num1 + num2;
}
@Override
public int substract(int num1, int num2) {
return num1 - num2;
}
@Override
public int times(int num1, int num2) {
return num1*num2;
}
@Override
public int divide(int num1, int num2) {
if(num2 == 0)
return ERROR;
return num1/num2;
}
}
implements 키워드를 이용해 인터페이스에서 정의되지 않은 부분들을 Override했다.
'Java' 카테고리의 다른 글
[Java] 스트림 (0) | 2023.07.10 |
---|---|
[Java] 람다식 (0) | 2023.07.10 |
[Java] 지역 내부 클래스와 익명 내부 클래스 (0) | 2023.07.10 |
[Java] 추상화 (0) | 2023.07.08 |
[Java] 유형에 따른 사용 메모리 정리 (0) | 2023.07.08 |