안녕하세요. 오늘은 자바 인터페이스에 대해 알아보겠습니다.
인터페이스를 사용하는 이유는 공동작업을 하기 위해서입니다.
예를들어 LED모듈을 아트메가나 아두이노에서 동작하게 하려면 코드가 다릅니다. 그래서 LED모듈 인터페이스를 만들어 놓고 각각 코드를 구현하면 됩니다.
인터페이스 사용
인터페이스의 기본적인 형식은 클래스와 같은데, 함수에는 몸체가 없습니다. 또한 인터페이스를 상속할때는 implements를 사용합니다.
1 2 3 4 | interface Led { public void led_ON(); public void led_OFF(); } | cs |
Led 인터페이스를 만들었습니다. 이때 함수들을 추상메소드라고 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class atmega implements Led { @Override public void led_ON() { // TODO Auto-generated method stub System.out.println("PORTA=0xff;"); } @Override public void led_OFF() { // TODO Auto-generated method stub System.out.println("PORTA=0x00;"); } } class arduino implements Led { @Override public void led_ON() { // TODO Auto-generated method stub System.out.println("digitalWrite(1,HIGH);"); } @Override public void led_OFF() { // TODO Auto-generated method stub System.out.println("digitalWrite(1,LOW);"); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class user { public static void main(String args[]) { Led _atmega = new atmega(); Led _arduino = new arduino(); System.out.println(" ATMEGA"); _atmega.led_ON(); _atmega.led_OFF(); System.out.println("\n ARDUINO"); _arduino.led_ON(); _arduino.led_OFF(); } } | cs |
사용자가 Led를 아트메가와 아두이노로 사용했습니다.
결과값
ATMEGA
PORTA=0xff;
PORTA=0x00;
ARDUINO
digitalWrite(1,HIGH);
digitalWrite(1,LOW);
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
자바 String클래스 알아보기 (0) | 2017.12.04 |
---|---|
자바 상속이란? (0) | 2017.12.01 |
자바 메소드 오버라이딩이란(Method Overriding) (0) | 2017.12.01 |
자바 메소드 오버로딩이란(Method Overloading) (0) | 2017.11.24 |
자바 인스턴스 변수 vs 클래스 변수 (0) | 2017.11.24 |