[자바] 인터페이스 연습02
익명 구현 객체
인터페이스는 미완성된 상태기때문에 객체 생성을 new로 하지 못하는데
생성을 함과 동시에 오버라이딩하면 사용 가능하다
= 익명 구현 객체
인터페이스 변수 = new 인터페이스() {
@Override
// 인터페이스에 선언된 추상 메소드의 실체 메소드 선언
};
자바는 UI 프로그래밍에서 이벤트를 처리하기위해, 혹은 임시 작업 스레드를 만들기 위해 익명 구현 객체를 많이 활용한다.
익명 구현 객체 연습 01
public class Anon {
public static void main(String[] args) {
// 익명 구현 객체
Inter i = new Inter() {
@Override
public void abM() {
System.out.println("익명 구현 객체에 오버라이딩 한 모습");
}
};
i.abM();
System.out.println("-------------------");
// 인터페이스를 연결한 클래스를 객체 생성해
// 메소드를 호출하는 모습
CalssA ca = new CalssA();
ca.abM();
}
}
// 인터페이스
interface Inter{
void abM();
}
// 구현 클래스
class CalssA implements Inter{
@Override
public void abM() {
System.out.println("구현객체에서 오버라이딩한 모습");
}
}
실행 모습
단어 5개 받아서 역순으로 출력하기
interface - 스택에 들어있는 문자열 개수 리턴
public interface StatckInterface {
int length();
String pop();
boolean push(String ob);
}
인터페이스 받아 구현하는 클래스
public class StringStack implements StatckInterface {
private String[] element;
private int index;
public StringStack(int capacity) {
// 객체생성되면서 capacity 값 10 들어옴
element = new String [capacity];
// 입력한 자료를 배열에 넣을 때 인덱스
index = 0;
}
@Override
public int length() {
return index;
}
@Override
public String pop() {
if (index == 0) {
return null;
}
index--;
return element[index];
}
@Override
public boolean push(String ob) {
if(index == element.length) {
// 인덱스 길이와 배열길이가 같으면 들어갈 공간이 없으니
return false;
}
element[index++] = ob;
return true;
}
}
출력하는 Main
public class StackManager {
public static void main(String[] args) {
StringStack s = new StringStack(10);
Scanner sc = new Scanner(System.in);
System.out.println("단어 5개 입력");
System.out.print(">>");
for(int i=0; i<5; i++) {
String txt = sc.next();
s.push(txt);
}
int count = s.length();
for(int i=0; i<count; i++) {
System.out.println(s.pop() + " ");
}
s.pop();
}
}
실행결과
Author And Source
이 문제에 관하여([자바] 인터페이스 연습02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cyhse7/자바-인터페이스-연습02저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)