티스토리 뷰
인터페이스
두 객체를 연결하는 역할
객체 A는 인터페이스의 메서드만 사용하므로 객체 B가 객체 C로 변경된 것에 관심이 없다.
만약 인터페이스 없이 객체 A가 객체 B를 직접 사용한다면, 객체 A의 소스 코드를 객체 B에서 객체 C로 변경하는 작업이 추가로 필요하다.
객체 A 가 인터페이스의 메서드를 호출하면 실제로 실행되는 것은 인터페이스 뒤편의 객체 B 또는 객체 C 의 메서드다.
만약 객체 B의 메서드 실행 결과와 객체 C의 메서드 실행 결과가 다르다면, 객체 A는 객체 교체로 인해 다른 결과를 얻게 된다.
- 모든 메서드가 추상 메서드로 선언됨
- 모든 변수는 상수로 선언됨
- 그 외 멤버 선언 종류
public final 필드
public abstract() 메서드
public default() 메서드
public static() 메서드
private() 메서드
private static() 메서드
인터 페이스 특징
|
예시)
예시2)
instanceof 연산자
- 매개변수의 다형성에서 어떤 객체가 매개값을 제공되었는지 확인하는 방법
- 매개변수가 아니더라도 변수가 참조하는 객체의 타입을 확인하고자 할 때 사용
boolean result = 객체 instanceof 타입; |
=> 객체가 타입이면 true , 그렇지 않으면 false를 산출한다.
예시)
Object 클래스
모든 클래스의 최상위 클래스
모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있다.
Object 클래스를 제외한 단 하나의 상속만 받을 수 있다.( 자바에서는 단일 상속만을 지원)
- Object 클래스는 java.lang 패키지 안에 존재한다.
- import java.lang.*; 프로그래밍 시 import 하지 않아도 자동으로 import 된다.
- 기본 클래스들이 속한 패키지이며 String, lnteger, System 등이 존재한다.
메서드 활용
Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있다.
재정의할 수 없는 메서드는 final로 선언되어 있다.
toString() 메서드
- 객체의 정보를 string으로 바꾸어서 사용할 때 쓰임
- String이나 Integer 클래스는 이미 재정의되어 있음
재정의 예시)
equals() 메서드
기본적인 동작은 두 인스턴스의 주소값을 비교하여 true/false를 반환한다.
필요시 재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현한다.
물리적으로 책은 2권(사피엔스, 사피엔스)이 존재하지만 논리적으로 같은 것이라고 재정의 할 수 있다.
즉, 인스턴스가 다르더라도 논리적으로 동일한 경우 true 를 반환하도록 재정의 할 수 있다.
예시)
코드 테스트 2 실행 시 if 문의 조건식인 book1과 myBook1의 문자열 값이 다르므로 else 구문이 실행되어
아니야 다른 주소야
1,홍길동전,허균
1,홍길동전,허균
으로 출력된다.
'Java' 카테고리의 다른 글
Java Swing(Event Listener/Key Listener) (0) | 2024.04.30 |
---|---|
Java(싱글톤 패턴/ 템플릿 메서드 패턴) (0) | 2024.04.30 |
Java(추상 클래스/ enum) (0) | 2024.04.24 |
Java(다형성, 업/다운캐스팅) (0) | 2024.04.24 |
Java( 포함관계, 연관, 의존관계) (0) | 2024.04.24 |