자바 객체 지향 프로그래밍 장 51-9

1. 객체 지향의 주요 특징은 무엇입니까?

세 상기 캡슐화, 상속, 다형성 .
포장 : 포장은 객체에 속성과 뭔가의 행동을 의미, 목적이 공공의 속성과 행동이 노출 될 필요가되어,이 발표는 선택적으로 다른 개체에게 공개 할 수있다.
상속 : 부모 개체가이 속성과 행동을해야합니다 속성과 그 아이의 행동을 가지고, 자식 객체 속성과 부모 개체의 동작을 상속 할 수 있습니다.
다형성 : 다른 클래스의 객체가 같은 메시지에 응답 할 수 있도록 의미합니다. 다형성 유연한 언어, 추상, 행동 공유, 동일한 이름의 애플리케이션 기능의 문제에 대한 좋은 해결책의 코드 공유의 장점.

2. 패키지는 어떻게 달성하는 것입니다?

패키지 정보 객체는 객체 속성과 직접 외부 물체의 내부에 액세스하는 방법 내부에 숨겨져는 금지되어 있습니다.
자바 패키지의 클래스는 세 단계로 달성 :

  1. 액세스를 제한 할 수있는 Visible 속성을 수정합니다.
  2. 읽기 속성을 설정하는 방법.
  3. 읽기에서 읽기 속성에 대한 제한을 추가하는 방법 때문이다.

3. 어떤 방법 객체? 작업 환경 사이의 상호 작용?

A, 포장 및 디자인을 조합함으로써 " 높은 응집력을 낮은 결합 특성"이다. 예를 들면, 그 다음의 예는 오브젝트 B 조합의 오브젝트 인스턴스로 볼 수있는 클래스 참조 클래스 B를 갖는다.

수정을 4.protected 특징은 무엇인가?

방법은 부모 클래스의 멤버 변수에 정의 수정 한 경우, 동일한 패키지에 대한 액세스를 보호하므로, 패키지 내의 클래스 내에서 액세스 및 서브 클래스,하지만 아버지 : 보호 된 수정은 주요 참고 도서는 이런 말을합니다 다른 패키지도 액세스 할 수있는 서브 클래스 공용 클래스 선언.

어떤 방법이 5.Object?

ObjectC ±»å ç ???? ?? ?? ° ½æ

1.Object 클론 ()

현재 개체 복제는 , 보호 방법은 그렇지 않고 CloneNotSupportedException를 슬로우 만이 메소드를 호출 할 수 있습니다 Cloneable 인터페이스를 달성하기 위해, 얕은 복사의 목적을 달성하기 위해.

주로 전송 파라미터의 8 가지 기본 유형 이외에 자바가 다른 클래스의 객체가 매개 변수를 참조로 전달하는 전달 값에 의해 전달되는, 우리는 때때로 메서드 매개 변수의 변화에 ​​대해 얘기하고 싶지 않아, 이것은 당신이 복제 방법을 복제하는 데 필요한 클래스입니다.

2.Class getClass ()

현재의 클래스 객체를 가져옵니다

toString ()를을 3.String

개체를 나타내는 문자열을 결과 , 하위 클래스는 일반적으로 덮여있다.

) (마무리 4.void

출시 때 개체 사용되는 이 방법은 거의 사용되지 호출 결정할 수 없기 때문에.

5.Boolean 등호 ()

두 개체가 공통 데이터 종류가 동일한 부호를 가리키는 것인지 결정 파라미터 못해

6.int의 해시 코드 ()

정수 객체가 표현하는 이 응용 프로그램에서 정수를 실행, 변경되지 않은 상태로 유지

7.void 대기 ()

대기 스레드 응용 스레드 동기화

대기는 그 객체에 대한 잠금을 가지고 있습니다, 개체의 잠금에 대한 현재의 thread의 대기는, 현재의 thread가 오브젝트의 소유자 여야하는 것입니다. 로크가 획득되거나 중단 될 때까지 기다려 () 메소드를 기다린다. (긴 시간 초과) 로크가 소정 기간 내에 얻어진 복귀하지 않은 경우, 타임 아웃 간격 설정을 기다린다.
다음 이벤트가 발생할 때까지이 방법을 현재의 thread를 호출 한 후 잠을.

  1. 다른 스레드는 객체의 notify 메소드를 호출합니다.

  2. 다른 스레드는 개체의가는 notifyAll 메소드를 호출합니다.

  3. 다른 스레드 호출이 스레드를 중단 중단.

  4. 시간 간격.

    이 때, 스레드가 중단 된 경우, 다음의 InterruptedException 예외를 발생, 예약 할 수 있습니다.

8.notify

대기의 여파로 스레드 동기화를위한 스레드

9.notifyAll

웨이크를 기다리는 모든 스레드의 스레드 동기화를위한

일반 방법 6. 과부하의 관계는 무엇인가?

동일한 방법 이름, 또는 다른 수의 파라미터 유형 , 실현의 두 가지 방법이 과부하 방법으로 볼 수있는, 단지 다른 종류의 복귀 컴파일러 못해

조건 서브 클래스 무엇 7. 부모 클래스의 방법이 필요 무시? 부모 클래스와 동일한 이름으로 정의 서브 클래스는 덮어 쓰기해야합니까?

조건 :

  1. 서브 클래스 액세스 권한 수정이 같거나 커야합니다 부모
  2. 같은 이름의 정적 인 방법과 비 정적 메서드 서로를 커버 할 수
  3. 방법 전방 최종 수식은 ,이 방법은 서브 클래스의 메소드에서 재정의 될 수 없다
  4. JDK에서, 부모 클래스 다시 커버의 많은 서브 클래스가, 같은 Object 클래스 부울 동등하게, 다른 의미를 부여 (개체 OBJ) 방법
  5. 추상 클래스가 있으면 추상적 인 방법 , 구체적인 서브 클래스는해야한다 추상 메소드는 커버

꼭 그렇지는 않습니다 :

상위 클래스는 정적 인 방법 대신에 서브 클래스의 인스턴스 인, 또는 그 반대가 지정 될 경우 상위 클래스 및 서브 클래스에있어서, 예시적인 방법이어야한다.
부모 클래스와 서브 클래스는 정적 메서드 경우, 커버 또는 서브 클래스 재정의 방법을 물려 받았다.

8. 패키지를위한 객체 지향 프로그래밍에서 어떤 상속과 다형성?

패키지 프로그램이 더 편리하게, 그것은 안전 운전에 도움이되는 사용자로부터 숨겨진 내부 구현을 확인하고 개체의 일반적인 특성이 가까운 사람들의 습관에 다형성 사이에 달성 될 수있다 상속합니다.

9. 두 디자인 클래스 및 지의 Src는, Src에 int 형식의 속성에 패키지 (필수 음수)마다 오브젝트의 특정 방법에 의해 src 속성을 변경, 객체는 지 통보 할 수있다 이 속성의 Src 메시지의 값을 얻었다.


class Dis {
    int val;
    public  Dis(int con_val){
       val = con_val;
    }
    public void monitor() {
        System.out.println("the value of Src has changed");
    }
}

class Src{
    Dis dis;//组合dis
    int value;

    public Src(Dis con_dis) {
        value = con_dis.val >= 0 ? con_dis.val : 0;//保证value非负
        this.dis=con_dis;//Src对象中拥有了Dis对象的引用
    }
    public void valueChange() {
        for (int i = 0; i < 2; i++) {
            int oldvalue = value;
            value += i;
            if (oldvalue != value){
                dis.monitor();//只改变了一次
            }
        }
    }
}

public class test {
    public static void main(String[] args) {
        Dis dis=new Dis(666);
        Src src=new Src(dis);//创建src对象,并将src对象作为参数传入
        src.valueChange();//the value of Src has changed
    }
}

종료 :

보충 변경할 온 후 ~ ~ ~

추천

출처www.cnblogs.com/He-Fan/p/11575976.html