객체: 상태, 행동 및 인터페이스
도입됨| English | 의미 |
|---|---|
| instance/ˈɪnstəns/ | 인스턴스 |
| encapsulation/ɪnˌkæpsjʊˈleɪʃn/ | 포장 |
이 현상을 설명할 수 있는 이유는 무엇인가?
- 두 개 이상의 은행 계좌 모델 객체는 서로 다른 잔고를 유지하면서도 동일한 입금 연산에 응답할 수 있습니다.
- 예측을 먼저 제시하십시오. 비교하고자 하는 양이나 특성을 명시한 뒤, 두 설명을 구별할 수 있는 증거가 무엇인지 결정하십시오.
모델 만들기
- 클래스는 상태와 동작을 포함하는 유형을 정의합니다. 객체는 인스턴스입니다. 엔캡슐레이션은 인터페이스를 통해 접근을 제어하여 연산이 불변식을 보존할 수 있게 합니다. 상속은 적절한 유형 관계를 모델링하며, 조합은 다른 객체를 포함하거나 사용하는 객체를 모델링합니다.
- 캡슐 encapsulation: 인터페이스를 통해 상태(state)에 대한 접근 제어; 인스턴스(instance): 클래스의 개별 객체.
무효한 상태 변경을 방지해야 할 것은 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
인variant(불변 조건)를 적용하기 전에 이를 검증하는 연산을 거치지 않으면 인캡슐레이션(encapsulation)이 성립하지 않습니다.-public하게 쓰일 수 있는 필드는 검증 절차를 완전히 우회하므로, 사용자는 결국 오류를 범하게 됩니다.
각 전문 용어에 대한 정확한 의미를 매칭하시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
정의를 사용하여 유사한 양과 과정을 구분하시오.
검증 가능한 증거 선택하기
- 메서드 호출은 특정 인스턴스에 작용합니다. 상태 변화는 전제 조건과 후건 조건을 만족해야 합니다. 다형성은 계약이 준수될 때 코드가 공통 인터페이스를 사용하여 서로 다른 구현을 사용할 수 있게 합니다.
- 작은 합성 계좌 또는 재고 모델을 구현하십시오. 두 개의 독립적인 인스턴스를 테스트하고, 무효한 연산 및 경계값을 거절하십시오. 모델은 실제 금융 계좌 및 인증 정보로부터 멀리 유지하십시오.
이 경우 조사 또는 모델이 더 타당하게 만들 수 있는 두 가지 습관은 무엇인가?
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
조건과 가정을 명시하면 다른 사람이 정확히 작업을 재현할 수 있으며, 근거 증거를 기록하면 결론을 검증할 수 있습니다. 반대되는 결과를 숨기는 것은 잘못된 결론을 반박할 수 있는 증거를 제거하는 것이며, 한 번의 측정으로는 더 넓은 주장을 입증할 수 없습니다.
알려진 값으로부터 시작하기
- 알려진 값과 그 단위를 명시하십시오. 이 사례에 가정이 부합하는 식을 선택한 후 대입하기前面으로 변형하십시오.
- 알려진 사실: 객체 A는 40 단위로 시작하여 15을 받습니다; 객체 B는 20 단위로 시작하여 5을 받습니다. 최종 잔고는 각각 55과 25입니다. 총액은 80이지만, 개별 객체의 잔고는 어느 쪽도 80이 아닙니다.
인스턴스는 12 단위로 시작하여 8을 추가하고 3을 제거합니다. 최종 값을 구하십시오. 동일한 순서를 사용하십시오: 알려진 양 → 모델 → 관계 → 대입 → 단위 및 해석.
12 단위로 시작하여 8를 더하고 3를 뺀 인스턴스의 최종 값을 구하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
결과값은 17 단위입니다.已知: 시작 12; 추가 8; 제거 3. 상태를 단계별로 추적하세요: 12 + 8 = 20; 20 - 3 = 17 단위. 각 연산은 해당 인스턴스 상태만 변경합니다.
결론及其 한계 확인하기
- 클래스는 하나의 인스턴스와 다른 것입니다. 상속이 자동으로 조합보다 나은 것은 아닙니다. 필드를 단순히 숨기는 것이 모든 연산이 유효한 상태를 보존함을 증명하지는 않습니다.
- 원래 관찰로 돌아가십시오. 결과가 어떤 것을 지지하며, 어떤 조건을 전제로 하며, 경쟁 설명을 검증하는 방법 하나를 제시하십시오.
클래스의 두 인스턴스는 항상 하나의 잔고를 공유해야 한다. 이 주장은 틀렸다: 각 인스턴스는 자체 상태(state)를 소유한다. 같은 클래스의 두 계좌가 서로 다른 잔고를 가질 수 있다. 그들은 연산과 구조 등 클래스 정의만 공유할 뿐, 필드 값 자체는 공유하지 않는다.
객체: 상태, 동작 및 인터페이스: 메서드 호출은 특정 인스턴스에 작용합니다. 상태 변화는 전제 조건과 후건 조건을 만족해야 합니다. 다형성은 계약이 준수될 때 코드가 공통 인터페이스를 사용하여 서로 다른 구현을 사용할 수 있게 합니다.
클래스의 두 인스턴스는 항상 하나의 잔고를 공유해야 합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
각 인스턴스는 자체 상태를 소유합니다: 같은 클래스의 두 계정이 서로 다른 잔고를 가질 수 있습니다. 그들은 연산과 구조 등 클래스 정의만 공유할 뿐, 필드 값은 공유하지 않습니다.
인터페이스를 통해 상태 접근 제어하기: 기술 용어를 쓰십시오.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
포장(encapsulation)은 인터페이스를 통해 상태(state)에 대한 접근을 제어하는 것을 의미합니다.