Karel/OOP 스타일

(버전 사이의 차이)
이동: 둘러보기, 찾기
(예제 프로그램)
(객체지향 프로그램을 위하여 추가된 클래스)
24번째 줄: 24번째 줄:
 
== 객체지향 프로그램을 위하여 추가된 클래스 ==
 
== 객체지향 프로그램을 위하여 추가된 클래스 ==
 
=== KarelOOP Version 2 ===
 
=== KarelOOP Version 2 ===
* [http://dislab.hufs.ac.kr/JavaOOP2 JavaOOP Version 2 도움말 (Java document)]
+
* [http://dislab.hufs.ac.kr/KarelOOP2 JavaOOP Version 2 도움말 (Java document)]
  
 
==== hufs.dislab.karel ====
 
==== hufs.dislab.karel ====
* [[IKarel (JavaOOP2)|IKarel]]
+
* [[IKarel (KarelOOP2)|IKarel]]
* [[IKarelProgram (JavaOOP2) | IKarelProgram]]
+
* [[IKarelProgram (KarelOOP2) | IKarelProgram]]
* [[SimpleKarel (JavaOOP2) | SimpleKarel]]
+
* [[SimpleKarel (KarelOOP2) | SimpleKarel]]
* [[ColoredKarel (JavaOOP2) | ColoredKarel]]
+
* [[ColoredKarel (KarelOOP2) | ColoredKarel]]
  
 
==== stanford.karel ====
 
==== stanford.karel ====
* [[AbstractIKarel (JavaOOP2) | AbstractIKarel]]
+
* [[AbstractIKarel (KarelOOP2) | AbstractIKarel]]
* [[AbstractIKarelProgram (JavaOOP2) | AbstractIKarelProgram]]
+
* [[AbstractIKarelProgram (KarelOOP2) | AbstractIKarelProgram]]
* [[OopKarelProgram (JavaOOP2) | OopKarelProgram]] - 더 이상 사용되지 않는데 예전 프로그램들과의 호환성을 위해 제공한다.
+
* [[OopKarelProgram (KarelOOP2) | OopKarelProgram]] - 더 이상 사용되지 않는데 예전 프로그램들과의 호환성을 위해 제공한다.
  
 
=== KarelOOP Version 1 ===
 
=== KarelOOP Version 1 ===
43번째 줄: 43번째 줄:
  
 
==== stanford.karel ====
 
==== stanford.karel ====
* [[OopKarelProgram (JavaOOP1) | OopKarelProgram]]
+
* [[OopKarelProgram (KarelOOP1) | OopKarelProgram]]
  
 
==== 예제 ====
 
==== 예제 ====

2020년 10월 20일 (화) 17:22 판

목차

개요

기존의 Karel은 함수 중심의 언어와 같이 필요한 함수를 추가하는 형태로 프로그램을 작성한다. 비록 계승을 통한 방법도 사용해 볼 수 있지만, 이 방법은 오히려 객체지향 프로그래밍 연습을 하는데 방해가 된다. 그래서 기존의 Karel을 이용하여 함수 중심의 사고를 익히고, 객체지향 Karel을 이용하여 객체지향 프로그래밍 기법을 익히도록 한다.

이 프로그램을 위해서는 다음 라이브러리를 다운로드하여 프로젝트에 추가해야 한다.

Karel을 이용하여 연습할 내용

  1. Karel의 기본 명령어 : move(), turnLeft(), pickBeeper(), putBeeper()
  2. 조건문 : if-else if-else
    • Beeper를 감지하고 집어서 옮김
  3. 반본문 : for, while, do-while
  4. Top-down 방법으로 생각하기

객체지향 Karel을 이용하여 연습할 내용

  1. 객체의 개념
  2. Instance field, instance method
  3. Overloading
    • 예) move(), move(4), turnLeft(2)
  4. 계승을 통한 재사용
  5. Overriding

객체지향 프로그램을 위하여 추가된 클래스

KarelOOP Version 2

hufs.dislab.karel

stanford.karel

KarelOOP Version 1

KarelWorld가 package로 선언되어 있어 내부 메소드를 접근할 수가 없어 추가 클래스의 package를 stanford.karel로 하였다.

stanford.karel

예제

예제 프로그램

개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기