JAVA - 6
카테고리: java
자바에서의 인터페이스
자바에서 인터페이스는 일종의 추상화된 클래스로, 메서드들의 집합을 정의하는 역할을 합니다. 인터페이스는 다음과 같은 특징을 가지고 있습니다:
- 추상 메서드: 인터페이스는 추상 메서드만을 포함할 수 있습니다. 추상 메서드는 메서드의 선언부만을 포함하고, 구현 내용은 포함하지 않습니다. 이는 인터페이스를 구현하는 클래스에서 해당 메서드의 실제 구현을 제공해야 함을 의미합니다.
- 다중 상속: 클래스는 다중 상속을 지원하지 않지만, 인터페이스는 다중 상속을 지원합니다. 클래스는 단일 클래스를 상속하면서 여러 개의 인터페이스를 구현할 수 있습니다. 이를 통해 다양한 기능을 조합하여 클래스를 설계할 수 있습니다.
- 구현 강제: 인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 메서드를 구현해야 합니다. 즉, 인터페이스는 클래스가 가져야 할 동작을 강제하는 역할을 합니다. 이를 통해 코드의 일관성과 재사용성을 높일 수 있습니다.
- 인터페이스 간 상속: 인터페이스 간에도 상속이 가능합니다. 인터페이스 A가 인터페이스 B를 확장(상속)하는 경우, 인터페이스 A는 인터페이스 B의 모든 메서드를 포함하게 됩니다. 이를 통해 인터페이스 간에도 계층 구조를 형성할 수 있습니다.
인터페이스는 다형성의 핵심 개념으로 사용되며, 클래스의 타입으로 사용될 수 있습니다. 또한 인터페이스를 구현하는 다양한 클래스들을 동일한 인터페이스 타입으로 다룰 수 있어, 유연하고 확장 가능한 코드를 작성할 수 있습니다.
인터페이스 사용예제
내부클래스 사용 예제
static 내부 클래스를 사용하여 고객 정보를 출력하는 예제입니다.
MyOuter1
클래스:MyOuter1
클래스는 외부 클래스로, 고객의 이름과 나이를 저장하는 멤버 변수를 가지고 있습니다.- 생성자를 통해 이름과 나이를 초기화합니다.
getName()
과getAge()
메서드를 통해 이름과 나이를 반환합니다.static
으로 정의된Inner
내부 클래스를 포함합니다.
Inner
내부 클래스:Inner
클래스는MyOuter1
클래스의 정적(static) 내부 클래스입니다.address
라는 멤버 변수와tel
라는 정적(static) 멤버 변수를 가지고 있습니다.- 생성자를 통해 주소를 초기화합니다.
getUserInfo()
메서드를 통해 주소와 전화번호를 반환합니다. 외부 클래스의 이름과 나이에 접근할 수 없습니다.
MyOuterInnerTest
클래스:main
메서드에서는MyOuter1.Inner
를 통해Inner
클래스의 객체를 생성합니다.getUserInfo()
메서드를 호출하여 고객 정보를 출력합니다.
주어진 코드에서는 Inner
클래스의 getUserInfo()
메서드에서 외부 클래스의 이름과 나이에 접근할 수 없으므로, “주소는: 세종시 세종구, 전화번호: 010-1111-2222”와 같이 주소와 정적 멤버 변수인 전화번호만 출력됩니다.
댓글 남기기