1. 제목 :
다른 문자 입력 그래픽 오브젝트 팩토리 클래스를 이용하여 얻어진 대응하는 패턴을 나타내는 콜백 인터페이스 사용, 간단한 공장 모드는, 그 도면은 탑저 부피를 산출한다.
2. 코드 :
/ ** 인터페이스 방법 추상 모양 요청 영역 PAI 종래 양 정의 * * / 패키지 homework1_1, 공용 인터페이스 도형 { 더블 PAI = 3.14 ; 공공 더블 의 getArea을 (); }
/ ** zhouchang 원주를 찾는 방법을 포함, 긴 직사각형 직사각형 직사각형 구성의 창 대표 쿠안 폭 표현으로, 클래스 사각형을 정의 계량 용의 getArea * * / 패키지 ; homework1_1가 공용 클래스 직사각형 유단을 {도형 번 창; 더블 콴, 직사각형 ( 더블 창, 더블 쿠안) { 이 본 .chang = 장] 이 본 .kuan = 쿠안; } 공개 더블 zhouchang () { 더블 C = (장 콴 +) * 2 ; 리턴 C; } 공공 더블의 getArea () { 반환 장 * 쿠안 단계; } }
/ ** 정의 서브 클래스는 두 가지 방법, 지역을 찾는 대표의 getArea이 zhouchang 대표는 원주 찾을 것을 특징으로 상위 클래스 사각형 광장, 상속, * / 패키지 homework1_1을, 공공 클래스 광장 (가) 확장 사각형 { 광장 ( 더블 사이드) { 슈퍼 (측면을, 사이드); } 공공 더블 의 getArea () { 반환 장 * 장을; } 공공 더블 zhouchang을 () { 더블 C * = 장 4. ; 반환 C를; } }
/ ** , 삼각형 등, 계량의 자신의 방법이있다 * * / 패키지 homework1_1을, 공공 클래스 삼각형 구현 도형 { 더블 , 더블 B, 더블 C, 삼각형 ( 더블 A, 더블 B, 더블 C) { 다음은이 II.A = a 및 이 본 .B = B] 이 본 가 .c = C; } 공개 더블 의 getArea () { 더블 D = (A + B + C) / 2 ; 리턴Math.sqrt (d *의 (다) * (DB) * (D- c)); } }
/ ** 실린더의 바닥 면적 형상 클래스에 의해 정의되고 고 자기 참조 볼륨 경우 getVolume, setarea 변화 형 계산하는 단계; * * * / 패키지 homework1_1; 공용 클래스 콘 { 도형 형상, 이중 높이; 콘 (도형 형상을, 이중 높이) { 이 본 .shape = 형상] 이 본 .height의 = 높이; } 공개 더블 경우 getVolume는 () { 반환 shape.getArea () * ; 높이 } 공개 무효 {setArea (Shape의 형상) 이 본 .shape = 모양; } }
/ ** , 사용자에 따라 공장 기능 문자 모양의 유형을 통과 할 수 있습니다 * * / 패키지 homework1_1을, 공공 클래스 공장 { 정적 도형 모양 = 널 (null)을 , 공공 정적 형태 (Shape) whatShape ( 숯불 C) { 스위치 (C) { 케이스 'R & LT': 형상 = 새로운 새로운 직사각형 (5,3) BREAK ; 케이스 'T'모양 = 새로운 새로운 삼각형 (5,3,6); BREAK ; 케이스 'S': 형상 = 새로운 새 정사각형 (5). BREAK ; 케이스 'C'모양 =새로운 원 (5); 휴식 ; } 리턴 형상; } }
/ * 다른 얻을 하부의 특성에 따라, 메인 클래스 T 정의 오브젝트 주어진 실린더 체적 출력 파라미터를 생성하는 업로드] * * / 패키지 homework1_1; 오기 java.util.Scanner; 공용 클래스 T { / ** * @ PARAM의 인수 * / 공공 정적 무효 메인 (문자열 []에 args) { // TODO 장 자동 생성 방법 스텁 = 스캐너에서 새로운 새로운 스캐너합니다 (System.in) 에서 System.out.println ( "문자를 입력" ), 문자 C in.next = ()이 수 charAt (0 ) 콘 콘 = 새로운 새로운 콘 (factory.whatShape (C) ,. 5 ); 에서 System.out.println (cone.getVolume ()); } }