Java interface(인터페이스).1

Java interface(인터페이스).1

인터페이스(interface) 추상 클래스 위에 인터페이스가 있다.

추상 클래스는 실체 클래스의 공통된 필드와 메소드의 이름을 통합할 목정으로 사용된다면

인터페이스는 사용하려는 클래스가 객체에 종속되지 않게 하는 역할이다.

#다만 언제든지 변경할순있다.

인터페이스(interface)는 사용하려는 클래스의 코드 변경 없이 리턴 값 또는 실행 내용이 다양해질 수 있다.

인터페이스를 구현하기 위해선 implements(인포먼츠)로 선언 해준뒤 사용한다.

인터페이스는 상수 필드(static final)이 붙는 변수들만 선언이 가능하고

#데이터는 저장하지 않는다

인터페이스에 선언된 필드는 자동적으로 public static final이 자동적으로 붙어 있다. 인터페이스를 통해 호출된 메소드는 최종적으로 객체에서 실행되며 인터페이스의 메소드는 기본적으로 실행 불록이 없는 추상 메소드로 선언한다.

public abstract를 생략해도 자동으로 컴파일 과정에서 붙는다.

# 인터페이스는 쉽게 말해 주문판 같은 일종이다. 1번 메뉴 2번 메뉴를 요리사가 보고 만들어서 최종적으로 고객에게 음식을 제공하는것처럼.

인터페이스(interface) 구현한 클래스

# 인터페이스의 추상 메소드에 대한 실체 메소드를 가진 객체이며 자신의 객체가 인터페이스 타입으로 사용할수도 있다.

예시. 인터페이스의 선언

public interface test {

//상수

//추상메소드

//디폴트메소드

//정적메소드

} 예시. 인터페이스의 구현

public class test1 implements test {

} 예시. 인터페이스가 작성된 코드의 간단함.

public class King {

public static void main(String[] args){

test me; //인터페이스를 활용할수있게 me라는이름을 주고

me = new test1(); // me는 test1에서 인터페이스가 구현된

//내용을 같기위해 test1의 값을 받는다고 선언한다.

}

}

해당 내용으로 예제를 만들어보자면.

public interface Carinterface {

//상수

int MAX_SPEED = 100;

int MIN_SPEED = 0;

//추상 메소드

void powerOn();

void powerOff();

void setSpeed(int Speed);

} public class Car implements Carinterface {

//필드

private int setSpeed;

public void powerOn() {

System.out.println("시동~");

}

public void powerOff() {

System.out.println("시동 꺼~");

}

public void setSpeed(int setSpeed) {

if(setSpeed>Carinterface.MAX_SPEED) {

this.setSpeed = Carinterface.MAX_SPEED;

} else if (setSpeed

this.setSpeed = Carinterface.MIN_SPEED;

} else {

this.setSpeed = setSpeed;

}

System.out.println("속도: " + setSpeed + "Km");

}

} public class CarInterfaceExample {

public static void main(String [] args) {

Carinterface MeCar; // 인터페이스를 가져와 mecar로 선언하고

MeCar = new Car(); // 선언된 mecar은 Car의 내용을 갖는다.

MeCar.powerOn(); // Car에서 설정된 내용이 실행된다.

MeCar.setSpeed(50);

MeCar.setSpeed(70);

MeCar.setSpeed(100);

MeCar.powerOff();

}

}

익명 구현 객체

명시적인 클래스 작성을 생성하고 바로 객체를 얻는것을 뜻한다.

장점은 한번쓰고 버릴것이라 구지 클래스를 더 만들지 않고 사용할 클래스에 정의해서 바로 사용할수있다.

익명 구현 객체는 하나의 실행문이므로 끝에는 세미콜론( ; )을 붙여야 한다.

다중 인터페이스 구현 클래스

인터페이스 사용은 사용할 코드안에 인터페이스를 선언해 주고 인터페이스의 내용을 가져와 작업한다.

예시. 인터페이스의 선언

public interface test {

//상수

//추상메소드

//디폴트메소드

//정적메소드

} 예시. 익명 구현객체

public test1 {

public static void main(String[] args){

test A = new test() {

/ * 실행문 */

};

}

} 예시. 다중 인터페이스

Public class test2 implements test, abcd {

}

from http://workerst.tistory.com/32 by ccl(A) rewrite - 2021-10-14 15:01:17