인스턴스는 Java의 이진 연산자이며 ==,> 및 <는 동일한 유형의 사물입니다. 문자로 구성되어 있기 때문에 Java의 예약 키워드이기도합니다. 그 기능은 왼쪽의 객체가 오른쪽의 클래스 인스턴스인지 테스트하고 부울 유형의 데이터를 반환하는 것입니다. 예를 들어:
코드 사본은 다음과 같습니다.
문자열 s = "나는 대상이다!";
부울 isobject = s 인스턴스 객체;
문자열 객체 참조를 선언하고 문자열 객체를 가리키고 Instancof를 사용하여 객체가 객체 클래스의 인스턴스인지 테스트합니다. isobject는 사실입니다.
인스턴스는 약간의 용도가 있습니다. 예를 들어, 우리는 세 가지 범주가있는 청구서를 처리하기위한 시스템을 작성했습니다.
코드 사본은 다음과 같습니다.
공개 수업 청구서 {// 세부 사항을 생략}
Public Class PhoneBill은 Bill {// avit reveral}을 확장합니다}
공공 클래스 Gasbill은 Bill {// 세부 사항을 생략} 확장합니다.
핸들러에는 청구서 유형의 객체를 수락하고 금액을 계산하는 방법이 있습니다. 두 가지 청구서 계산 방법이 다르고 들어오는 청구서 개체가 두 가지 중 하나 일 수 있다고 가정하므로 인스턴스를 사용하여 판단하십시오.
코드 사본은 다음과 같습니다.
공개 이중 계산 (Bill Bill) {
if (폰 부릴의 청구서 인스턴스) {
// 전화 청구서를 계산합니다
}
if (Gasbill의 청구서 인스턴스) {
// 가스 청구서를 계산합니다
}
...
}
이런 식으로 두 개의 서브 클래스는 하나의 방법으로 처리 될 수 있습니다.
그러나이 접근법은 종종 객체 지향 다형성을 이용하지 못하는 것으로 간주됩니다. 실제로, 위의 함수는 메소드 과부하가 완전히 달성 될 수 있어야합니다. 두 가지 이름과 반환 값을 제공하고 다양한 매개 변수 유형의 메소드를 수락합니다.
코드 사본은 다음과 같습니다.
공개 이중 계산 (전화 청구서) {
// 전화 청구서를 계산합니다
}
공개 이중 계산 (Gasbill Bill) {
// 가스 청구서를 계산합니다
}