인터페이스
JAVA Basic) 내부 클래스
목차 '내부 클래스(inner class)'는 말 그대로 '클래스 내부에 선언한 클래스'다. 내부에 클래스를 선언하는 이유는 대개 이 클래스와 외부 클래스가 밀접한 관련이 있기 때문. 또한 그 밖의 다른 클래스와 협력할 일이 없는 경우에 내부 클래스로 선언해서 사용한다. 내부 클래스를 간단히 표현하면 아래 그림과 같다. 내부 클래스는 선언하는 위치나 예약어에 따라 크게 네가지 유형으로 나누어진다. 인스턴스 내부 클래스 정적(static) 내부 클래스 지역(local) 내부 클래스 먼저 위 세 가지는 클래스 내부에 선언하는 변수의 유형(인스턴스, 저억, 지역 변수)과 유사하다. 마지막으로 클래스 이름 없이 선언하고 바로 생성하여 사용할 수 있는 익명(anonymous) 내부 클래스 가 있다. 그럼 변수 유..
JAVA Basic) 인터페이스 - 연습 문제
목차 Q1 클래스가 인터페이스를 구현하기 위해 사용하는 예약어는 [ ]이다. Q2 클래스가 인터페이스를 구현할 때 인터페이스에 선언한 메서드를 모두 구현하지 않으면 그 클래스는 [ ]가 된다. Q3 인터페이스에 선언한 변수는 컴파일할 때 [ ]로 변환된다. Q4 한 인터페이스를 여러 클래스가 다양한 방식으로 구현한 경우에 프로그램에서 인터페이스에 선언된 메서드를 사용할 때 각 클래스의 구현 내용과 상관없이 도잉ㄹ한 방식으로 사용할 수 있다. 이렇게 같은 코드가 여러 구현 내용으로 실행되는 객체 지향 특성을 [ ]이라고 한다. Q5 인터페이스에서 구현한 코드를 제공하는 메서드는 [ ] 와 [ ]이다. Q6 한 클래스에서 여러 인터페이스를 구현할 수 있다. [ 예 / 아니오 ] Q7 숫자 정렬 알고리즘에는 ..
JAVA Basic) 인터페이스 활용
목차 한 클래스가 여러 클래스를 상속받으면 메서드 호출이 모호해지는 문제가 발생할 수 있다. 하지만 인터페이스는 한 클래스가 여러 인터페이스를 구현할 수 있다. package interfaceex; public interface Buy { void buy(); } package interfaceex; public interface Sell { void sell(); } 그림을 보면 Customer클래스는 Buy와 Sell 두 인터페이스를 구현하고 있다. Buy인터페이스에 추상 메서드 buy()가 선언. Sell인터페이스에 추상메서드 sell()이 선언. package interfaceex; public class Customer implements Buy, Sell{ // Customer클래스는 Buy와..
JAVA Basic) 인터페이스 요소
목차 인터페이스는 추상 메서드로 이루어지므로 인스턴스를 생성할 수 없으며 멤버 변수도 사용할 수 없다. 근데 인터페이스에 아래 코드와 같이 변수를 선언해도 오류는 발생하지 않는다. public interface Calc{ double PI = 3.14; int ERROR = -99999999; ... } 이 이유는 인터페이스에 선언한 변수를 컴파일 하면 상수로 변환되기 때문이다. Calc 인터페이스에 선언한 변수 PI를 컴파일 하면 상수 3.14, int형 변수 ERROR역시 -9999999~로 변환되어 상수로 취급된다. public static final double PI = 3.14; public static final int ERROR = -999999999; ... 자바 7까지는 인터페이스에서 추..
JAVA Basic) 인터페이스와 다형성
목차 '인터페이스(interface)'는 어디에 쓰이는 코드일까? 자바 8에서 새롭게 추가된 '디폴트 메서드'와 '정적 메서드 구현부(implementation part)'가 없다면 인터페이스는 그야말로 껍데기이다. 그렇다면 '메서드 선언부(declaration part)'만 있는 인터페이스는 대체 왜 쓰는지 살펴보자. 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는 지 알려주는 '명세(specification)'또는 약속의 역할을 한다. 예를 들면, Abc인터페이스를 구현한 A클래스가 있다. 이 클래스를 사용하는 Z프로그램이 있다고 가정. Abc인터페이스에는 구현할 추상 메서드가 모두 선언되어 있고, 어떤 매개변수가 사용되는지, 어떤 자료형 값이 반환되는지 선언되어있다. Z 프로그램에서 A클래..
JAVA Basic) 인터페이스(interface)
목차 구현 코드가 없는 인터페이스 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적 선언하는 역할. 추상 메서드와 상수로만 이루어짐. 구현된 코드가 없어서 당연히 인스턴스를 생성할 수 없다. 이러한 인터페이스는 어떻게 사용되어지는지 간단한 계산기를 만들어보자. - calc 인터페이스 package interfaceex; public interface Calc { double PI = 3.14; int ERROR = -999999999; // 멤버변수는 public static final(상수)로 자동 선언됨 int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); ..