Karel/OOP 스타일
(버전 사이의 차이)
(→예제 프로그램) |
(→객체지향 프로그램을 위하여 추가된 클래스) |
||
24번째 줄: | 24번째 줄: | ||
== 객체지향 프로그램을 위하여 추가된 클래스 == | == 객체지향 프로그램을 위하여 추가된 클래스 == | ||
=== KarelOOP Version 2 === | === KarelOOP Version 2 === | ||
− | * [http://dislab.hufs.ac.kr/ | + | * [http://dislab.hufs.ac.kr/KarelOOP2 JavaOOP Version 2 도움말 (Java document)] |
==== hufs.dislab.karel ==== | ==== hufs.dislab.karel ==== | ||
− | * [[IKarel ( | + | * [[IKarel (KarelOOP2)|IKarel]] |
− | * [[IKarelProgram ( | + | * [[IKarelProgram (KarelOOP2) | IKarelProgram]] |
− | * [[SimpleKarel ( | + | * [[SimpleKarel (KarelOOP2) | SimpleKarel]] |
− | * [[ColoredKarel ( | + | * [[ColoredKarel (KarelOOP2) | ColoredKarel]] |
==== stanford.karel ==== | ==== stanford.karel ==== | ||
− | * [[AbstractIKarel ( | + | * [[AbstractIKarel (KarelOOP2) | AbstractIKarel]] |
− | * [[AbstractIKarelProgram ( | + | * [[AbstractIKarelProgram (KarelOOP2) | AbstractIKarelProgram]] |
− | * [[OopKarelProgram ( | + | * [[OopKarelProgram (KarelOOP2) | OopKarelProgram]] - 더 이상 사용되지 않는데 예전 프로그램들과의 호환성을 위해 제공한다. |
=== KarelOOP Version 1 === | === KarelOOP Version 1 === | ||
43번째 줄: | 43번째 줄: | ||
==== stanford.karel ==== | ==== stanford.karel ==== | ||
− | * [[OopKarelProgram ( | + | * [[OopKarelProgram (KarelOOP1) | OopKarelProgram]] |
==== 예제 ==== | ==== 예제 ==== |
2020년 10월 20일 (화) 17:22 판
목차 |
개요
기존의 Karel은 함수 중심의 언어와 같이 필요한 함수를 추가하는 형태로 프로그램을 작성한다. 비록 계승을 통한 방법도 사용해 볼 수 있지만, 이 방법은 오히려 객체지향 프로그래밍 연습을 하는데 방해가 된다. 그래서 기존의 Karel을 이용하여 함수 중심의 사고를 익히고, 객체지향 Karel을 이용하여 객체지향 프로그래밍 기법을 익히도록 한다.
이 프로그램을 위해서는 다음 라이브러리를 다운로드하여 프로젝트에 추가해야 한다.
- Karel.jar - Original Karel library
- KarelOOP.jar - JavaOOP Version 1 (2013)
- KarelOOP2.jar - JavaOOP Version 2 (2020)
Karel을 이용하여 연습할 내용
- Karel의 기본 명령어 : move(), turnLeft(), pickBeeper(), putBeeper()
- 조건문 : if-else if-else
- Beeper를 감지하고 집어서 옮김
- 반본문 : for, while, do-while
- Top-down 방법으로 생각하기
객체지향 Karel을 이용하여 연습할 내용
- 객체의 개념
- Instance field, instance method
- Overloading
- 예) move(), move(4), turnLeft(2)
- 계승을 통한 재사용
- Overriding
객체지향 프로그램을 위하여 추가된 클래스
KarelOOP Version 2
hufs.dislab.karel
stanford.karel
- AbstractIKarel
- AbstractIKarelProgram
- OopKarelProgram - 더 이상 사용되지 않는데 예전 프로그램들과의 호환성을 위해 제공한다.
KarelOOP Version 1
KarelWorld
가 package로 선언되어 있어 내부 메소드를 접근할 수가 없어 추가 클래스의 package를 stanford.karel로 하였다.