본문 바로가기
Java 배우기

What Is an Interface? 인터페이스란?

by 노화방지 Anti-aging Hairstyle 2016. 1. 5.
반응형

인터페이스란?   What Is an Interface?


이미 배운 바와 같이, 객체들은 그들이 노출시키는 메소드들을 통해 외부세계와의 상호 작용을 정의합니다.
메소드들이 객체의 외부세계와의 인터페이스(interface)를 형성합니다; 

예를 들어 텔레비전 세트의 앞에 있는 버튼은, 사용자와 그 플라스틱 상자 안 쪽에 있는 전기 배선 사이의 인터페이스 입니다.
사용자가 텔레비전을 켜거나 끄려면  "전원(power)" 버튼을 누릅니다.

As you've already learned, objects define their interaction with the outside world through the methods that they expose. Methods form the object's interface with the outside world; the buttons on the front of your television set, for example, are the interface between you and the electrical wiring on the other side of its plastic casing. You press the "power" button to turn the television on and off.


interface의 대부분의 공통 형식에서, interface는 빈 몸체를 가진 관련된 메소드들의 그룹입니다.
자전거의 동작을 interface로 규정하면, 다음과 같을 것입니다:

In its most common form, an interface is a group of related methods with empty bodies. A bicycle's behavior, if specified as an interface, might appear as follows:

interface Bicycle {
    //  1분 당 wheel revolutions
    void changeCadence(int newValue);
    void changeGear(int newValue);
    void speedUp(int increment);
    void applyBrakes(int decrement);
} 


interface를 구현하려면, 클래스 이름을 (예, ACMEBicycle과 같은 특정 브랜드의 자전거) 바꾸고, 클래스선언에 키워드 implements를 사용합니다:

To implement this interface, the name of your class would change (to a particular brand of bicycle, for example, such as ACMEBicycle), and you'd use the implements keyword in the class declaration:

class ACMEBicycle implements Bicycle { int cadence = 0; int speed = 0; int gear = 1; // compiler는 당장 메소드들 changeCadence, changeGear, speedUp, applyBrakes을 모두 // 구현하도록 요구합니다. 이들 메소드가 이 클래스에서 빠지면 컴파일은 실패할 것입니다. void changeCadence(int newValue) { cadence = newValue; } void changeGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed - decrement; } void printStates() { System.out.println("cadence:" + cadence + " speed:" + speed + " gear:" + gear); } }


interface를 구현하면 클래스가 제공하기로 약속한 동작이 보다 공식화됩니다.
interface가 클래스와 외부세계 간 계약을 체결하면, 빌드 시에 컴파일러가 이 계약을 이행합니다.

클래스가 interface 구현을 요청하는 경우, 클래스가 성공적으로 컴파일되기 전에, interface에 정의된 모든 메소드를 그 소스 코드에 나타내야 합니다.

Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfaces form a contract between the class and the outside world, and this contract is enforced at build time by the compiler. If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile.



참고: 클래스 ACMEBicycle를 실제로 컴파일하려면, 구현된 interface 메소드들의 앞에 키워드 public을 추가해야 합니다.
You'll learn the reasons for this later in the lessons on Classes and Objects and Interfaces and Inheritance.
Note:
 To actually compile the ACMEBicycle class, you'll need to add the public keyword to the beginning of the implemented interface methods. You'll learn the reasons for this later in the lessons on Classes and Objects andInterfaces and Inheritance.


반응형

댓글