자바 기본 문법 08-을 객체 지향 - 인터페이스

열거

열거 특별한 클래스 그 객체되어 제한적으로 고정 된 몇 가지 상수 객체.

JDK1.5 전

  • 게다가 개인 생성자 민영화

  • 이 클래스는 일정한 내부 객체들의 집합을 생성하고 이들 상수 오브젝트 공용 static 개질제 외부 노출을 추가

JDK1.5 포맷 후

[수정] ENUM ENUM 클래스 이름 {
  CONST 오브젝트리스트,
  리스트의 다른 멤버;
}

열거 클래스 요구 사항 및 특성 :

  • CONST 객체의 열거 클래스의 열거 클래스의 목록에 있어야합니다 첫 번째 줄 이 일정하기 때문에, 그것은 것을 제안 수도 .

  • 다른 코드 뒤에 개체의 일정 목록이 경우 ";"을 생략 할 수 있고, 그렇지 않은 경우는 생략 할 수 없습니다. ";"

  • 열거 클래스에 컴파일러는 기본적으로, 상수 매개 변수를 추가하지 않는 개체의 목록 작성, 열거 클래스의 필요가 인수없이 생성자 경우, 당신은 선언하지 않는, 인수없이 개인 생성자에 의해 제공됩니다

  • 열거 클래스의 요구가 참조 구조를 가지고있는 경우, 수동으로 민간의 참여 구조를 정의 할 필요가있다, 메소드 인수 생성자 호출은 거기에이다 더하기 (인수리스트) 뒤에 일정 개체 이름 이 될 수 있습니다.

  • 기본 열거 클래스 상속 그러므로 할 수있는 상속되지 않은 다른 유형의 java.lang.Enum 클래스이며,.

  • JDK1.5의 후 스위치 제공 열거에 대한 지원을 유형, 후자의 경우에는 열거 형 상수의 이름을 쓸 수 있습니다.

  • 열거 형을 권장 다른 속성의 경우 ( 필요하지 않은 일정이 변경 될 수 없습니다 논리적 의미에서 객체 있기 때문에, 이러한 특성은 또한 final로 선언된다).

일반적인 방법 :

1.toString () : 수동이 메소드를 오버라이드 (override) 할 기본 상수 이름 (개체 이름) 계속 반환!
2.name () : 반환 일정 이름 (개체 이름) 거의 사용되지]
3. ORDINAL () : 반환 기본적으로 0부터 시작하는 정수 시퀀스 번호,
4. () 값 : 반환 열거 클래스의 모든 상수 객체가 리턴 타입이 현재 열거 배열 타입 정적 메소드이다
5. valueOf (문자열 이름) 열거 상수 열거 오브젝트 취득 객체 이름 :

열거 클래스는 하나의 생성자가

보호 열거 (문자열 이름, INT 순서)

래퍼 클래스

아니오. 기본 데이터 유형 포장 (java.lang 패키지)
1 바이트 바이트
짧은 짧은
INT 정수
4
5 흙손 흙손
6 더블 더블
(7) 캐릭터
8 부울 부울
9

 

1, 권투와 언 박싱

포장 : 기본 데이터 유형을 -> 포장 클래스 객체

수동 포장 : 예를 들면 : 새로운 정수 (int 값) 또는 Integer.valueOf (int 값)

박싱 : 정수 난 INT 값 =;

포장 풀기 : 객체의 포장 -> 기본 데이터 유형

수동으로 풀고 예 : Integer 객체 .intValue ()

자동 언 박싱 : INT는 내가 Integer 객체를 =;

참고 : 자동 권투와 언 박싱 만 그들의 상응하는 종류의 사이에 달성 될 수있다.

일부 API 래퍼 클래스

이 캐시 개체 래퍼 클래스

바이트 -128 ~ 127
짧은 -128 ~ 127
정수 -128 ~ 127
-128 ~ 127
흙손 아니오
더블 아니오
캐릭터 0 ~ 127
부울 진실과 거짓

새로운 새의 각각에 대한 캐시 개체 클래스하거나 클래스 캐시 중 하나

래퍼 클래스 객체는 불변입니다 : 수정은 새 개체되면. 이와 같이, 파라미터가 전달 방법, 원래의 객체의 값을 변경하지 않는다

인터페이스

사용 키워드. 또한 .class 파일로 컴파일되지만,이 클래스 아님이 분명해야하지만, 다른 참조 데이터 유형.interface

[수정] 인터페이스 인터페이스 이름 {
  정적의 const를 //
  // 추상 메소드
  // 기본 방법
  // 정적 방법
  // 개인 방법
}

1, 공공 정적 상수 : 공공 정적 최종

2. 공공 추상적 인 방법 : 공공 추상적

비 추상 구현 클래스가 오버라이드 (override) 할 필요가 있습니다

3, 공중 기본 방법 : 공공의 기본, JDK1.8 이후

"개체 구현 클래스."전화

구현 클래스는 무시하도록 선택할 수 있습니다

4 공용 static있어서 공용 정적 JDK1.8 후

. "인터페이스 이름"만 사용 호출

구현 클래스는 무시할 수 없습니다

5 독자적인 방법 : 비공개 (개인 생략하지 않음) 후 JDK1.9

인터페이스를 구현

사용 인터페이스, 그것은 개체를 만들 수 없습니다 만, (구현 될 수 상속과 유사).implements

클래스는 동시에 여러 인터페이스를 구현할 수 있습니다

수정 클래스 구현 클래스는 []은 [수퍼 연장] 유단의 인터페이스 1, 2 {인터페이스 

  // [한다] 추상 메소드 인터페이스 다시
  단어를 쓰지 않는다, // 기본 인터페이스 방법 [선택] 디폴트를 오버라이드 (override)를

} // 상속 앞, 뒤에 구현

클래스를 구현하는 인터페이스를 구현하는 경우, 인터페이스는 달리 구현 클래스는 추상 클래스해야합니다, 모든 추상 메서드를 재정의해야합니다.

당신은 정적 메서드를 재정의 할 수 없습니다

해당 메서드를 호출하는 방법

  • 인터페이스 직접 "인터페이스 이름입니다."를 호출을 사용하여 정적 메소드

    • 단지 "인터페이스 이름을."사용할 수 전화는 클래스 객체 호출을 통해 달성 될 수 없다

  • 인터페이스의 추상 메소드의 경우, 기본 방법은 오직 클래스 객체를 호출하여 얻을 수있다

    • 인터페이스는 직접 개체를 만들 수 없습니다 개체 만 구현 클래스를 만들 수 있습니다

인터페이스의 다중 구현

클래스는 여러 인터페이스를 구현할 수 있습니다,이 인터페이스라고 깨달았 다 . 그리고, 클래스는 동시에, 부모 클래스에서 여러 인터페이스를 상속 할 수 있습니다.

인터페이스, 추상 메소드의 복수, 때 구현하는 모든 추상 메소드 클래스는 다시 작성해야합니다 . 추상 메소드는 같은 이름을 가진 경우에만 한 번 다시 작성해야 .

방법은있을 수 있습니다 충돌 :

(1) 구현 클래스는 다수의 인터페이스 및시 디폴트 메소드 서명과 동일하게 나타나는 복수의 인터페이스를 구현한다 :

구현 클래스는 선택을해야합니다

A : 한 예약 : 메소드 이름 .super 인터페이스 이름.

B : 또한 완전히 쓸 수있다

(2) 구현 클래스는 부모 클래스 및 구현 인터페이스를 상속 부모 클래스는 기본 인터페이스 메소드 서명에 같은 방식으로 나타날 때 :

A는 : 기본 Qindie는 원칙에 따라 그 부모 클래스의 보유

B : 또한 완전히 쓸 수있다

다중 상속 인터페이스

인터페이스는 다른 또는 복수의 인터페이스를 상속 할 수 있습니다, 인터페이스 상속을 사용 키워드는, 부모의 자녀는 인터페이스 인터페이스를 상속.extends

[수정] 인터페이스는, 인터페이스 인터페이스 1과 인터페이스 2 {연장

}

팁 :

하위 인터페이스가 기본 메소드를 오버라이드 (override) 할 때, 기본 키워드는 유지 될 수있다.

서브 클래스는 기본 메소드를 오버라이드 (override)하는 경우, 기본 키워드는 예약 할 수 없습니다.

인터페이스와 구현 다형성 클래스 오브젝트 레퍼런스

구현 클래스 상위 클래스 상속 서브 유사한 구현하는 인터페이스, 따라서 객체 유형 및 클래스 변수의 이행 사이의 인터페이스를 참조 할 수있다 다형성 구성. 인터페이스 유형 변수를 통해 방법을 호출, 메소드 본문의 최종 실행은 새 구현 클래스 객체 구현입니다.

클래식 인터페이스

 

 

추천

출처www.cnblogs.com/Open-ing/p/11885242.html