java 조건문 예제

Off
Non classé

생성자는 postconditions를 가질 수도 있습니다. 해당 계약 클래스 TimeOfDayContract 시간OfDay를 연장 하 고 클래스 TimeOfDay (부분 목록)의 생성자에 대 한 전제 조건을 표시 합니다: 일부 소프트웨어 디자인 접근 방식에서, postconditions, 사전 조건 및 클래스 고정과 함께, 소프트웨어 구성 요소 는 계약에 의해 설계. 상속이 있는 경우 하위 클래스(하위 클래스)에 의해 상속된 루틴은 계약, 즉 해당 계약, 즉 전제 조건 및 사후 조건과 함께 적용됩니다. 즉, 상속된 루틴의 구현 또는 재정의도 상속된 계약을 준수하기 위해 작성되어야 합니다. 사후 조건은 다시 정의된 루틴에서 수정할 수 있지만 강화될 수 있습니다. [2] 즉, 다시 정의된 루틴은 클라이언트에게 제공하는 이점을 증가시킬 수 있지만 이러한 이점을 감소시키지는 않을 수 있습니다. 이것이 우리의 예에서 무엇을 의미하는가? 대상 클래스 TimeOfDay 는 다음과 같습니다(부분 목록): Eiffel에 작성된 다음 예제에서는 호출자가 제공한 인수 a_hour를 기반으로 클래스 특성 시간의 값을 설정합니다. postcondition는 키워드 확인을 따릅니다. 이 예제에서 postcondition는 사전 조건이 보유하는 경우(즉, a_hour가 하루의 유효한 시간을 나타내는 경우) set_hour를 실행한 후 클래스 특성 시간이 a_hour와 동일한 값을 갖습니다. 태그 « hour_set: » 이 postcondition 절을 설명 하 고 런타임 사후 조건 위반의 경우 식별 하는 역할을 합니다. 몇 가지 예제와 함께이 메서드를 사용하는 방법을 살펴보겠습니다.

로 읽기: 클래스 TimeOfDay의 오버로덴 생성자는 세 가지 postcondition 절이 있는 postcondition를 가지고 있습니다. Postcondition 절 1에서 6까지는 사전 조건이 매개 변수 를 포함하는 경우 생성자가 완료되면 시간, 분 및 초가 성공적으로 설정되도록 합니다. 고객이 계약의 일부를 이행한 경우 공급업체는 이 의무를 이행해야 합니다. 예 2 : 우리는 인수로 목록을 취하는 방법을 받았다고 가정 해 봅시다. 이 메서드가 호출될 때 목록이 null이 아니며 비어 있지 않은지 확인하려고 합니다. 문제에 대한 간단한 Java 솔루션은 다음과 같습니다 : 모든 루틴에 대한 postcondition는 루틴의 실행이 완료되면 보장되는 속성의 선언입니다. [1] 루틴의 계약과 관련하여 postcondition는 루틴이 전제 조건이 있는 상태에서 루틴이 호출되는 경우 postcondition에 의해 선언된 속성이 보장된다는 보장을 제공합니다. postcondition는 메서드가 사전 조건을 충족하여 호출된 경우 메서드가 보장하는 것을 명시합니다.

전제 조건이 유지되지만 postcondition를 위반하는 경우 메서드(공급자)가 계약(구현 오류)을 위반했습니다. 즉, 사후 조건은 고객에게 대한 권리이며 공급업체에 대한 의무입니다. 메서드 checkState 개체의 상태의 유효성을 검사 하 고 메서드 인수에 종속 되지 않습니다. 예를 들어 Iterator는 이 것을 사용하여 제거할 호출 전에 다음에 호출되었는지 확인할 수 있습니다. 이 메서드는 개체의 상태(메서드에 인수로 전달된 부울 값)가 잘못된 상태인 경우 IllegalStateException을 throw합니다. 예를 들어 요인의 결과는 항상 정수이며 1보다 크거나 동일합니다. 따라서 입력 번호의 계수를 계산하는 프로그램에는 계산 후의 결과가 정수이고 1보다 크거나 같을 수 있는 postconditions가 있습니다. 또 다른 예: 입력 번호의 제곱근을 계산하는 프로그램에는 결과가 숫자이고 해당 사각형이 입력과 같을 수 있는 postconditions가 있을 수 있습니다.

소개 : 사전 조건 클래스는 메서드 또는 생성자가 유효한 매개 변수 값으로 호출되는지 확인하기 위한 정적 메서드 목록을 제공합니다. 사전 조건이 실패하면 맞춤형 예외가 throw됩니다.

Comments are closed.