ToyProblems 를 바로 ¶
Board.java ¶
~cpp import javax.swing.JOptionPane; public class Board { private int array[][]; // 배 private int max_x; // 가로기 private int max_y; // 로기 // public Board(int x, int y) { max_x = x; max_y = y; array = new int[max_y][max_x]; for (int i = 0; i < max_y; i++) for (int j = 0; j < max_x; j++) array[i][j] = 0; } //발국 가득 ? public boolean IsStepFull() { for (int i = 0; i < max_y; i++) for (int j = 0; j < max_x; j++) if (array[i][j] == 0) return false; return true; } // 가 벽? public boolean IsPostionWall(int x, int y) { if (x == -1 || x == max_x || y == -1 || y == max_y) return true; else return false; } //발국 는다 public void PutStep(int x, int y) { array[y][x]++; //래를 면 발국 때다 보 //ShowStep(); } //발국 보다 public void ShowStep() { String output = ""; for (int i = 0; i < max_y; i++) { for (int j = 0; j < max_x; j++) output += array[i][j] + " "; output += '\n'; } JOptionPane.showMessageDialog(null, output); } }
Roach.java ¶
~cpp public class Roach { private int p_x; // 바 x private int p_y; // 바 y //바 동 public void Move(Board bo, int x, int y) { p_x = x; p_y = y; bo.PutStep(p_x, p_y); while (!bo.IsStepFull()) { int c_x; // 바가 동 x int c_y; // 바가 동 y do { c_x = p_x; c_y = p_y; int dir = (int)(Math.random() * 8); switch (dir) { case 0: c_y--; break; case 1: c_x++; c_y--; break; case 2: c_x++; break; case 3: c_x++; c_y++; break; case 4: c_y++; break; case 5: c_x--; c_y++; break; case 6: c_x--; break; case 7: c_x--; c_y--; break; } } while (!SeeNextPos(bo, c_x, c_y)); p_x = c_x; p_y = c_y; bo.PutStep(p_x, p_y); } } //동 리를 다 //벽면 false 벽 면 true public boolean SeeNextPos(Board bo, int x, int y) { if (bo.IsPostionWall(x, y)) return false; else return true; } }
Human.java ¶
~cpp import javax.swing.JOptionPane; public class Human { // 바를 놓는다 public void PutRoach (Roach ro, Board bo, int x, int y) { ro.Move(bo, x, y); } // KillRoach를 떻게 까??? public void KillRoach (Roach ro) { //명 보다 ^^ } // 본다 public void SeeBoard (Board bo) { bo.ShowStep(); } public static void main(String[] args) { int start_x, start_y; // 바 변 int board_x, board_y; // 기 변 Human sehwan = new Human(); Roach roach = new Roach(); board_x = Integer.parseInt(JOptionPane.showInputDialog(null, "격 가로기")); board_y = Integer.parseInt(JOptionPane.showInputDialog(null, "격 로기")); start_x = Integer.parseInt(JOptionPane.showInputDialog(null, "바 가로")); start_y = Integer.parseInt(JOptionPane.showInputDialog(null, "바 로")); // 맨가 (0,0) Board board = new Board(board_x, board_y); sehwan.PutRoach(roach, board, start_x, start_y); // 바를 놓는다 sehwan.SeeBoard(board); // 다 돌면 본다 } }
내 ¶
1.객 개념과 바 ¶
가.객개념
:객가 가고 는 또는
동:객가 가고 는 기능 또는 는 동
) 동 - 객
-> 변
동 -> 메드()
:객가 가고 는 또는
동:객가 가고 는 기능 또는 는 동
) 동 - 객
,바,들,배기량,,기 -
달린다,기를 바꾼다,를 높나 낮다, 경 린다 - 동
객 -> 객달린다,기를 바꾼다,를 높나 낮다, 경 린다 - 동
-> 변
동 -> 메드()
객방법
래
public:같 래, 래, 같 내 는 래 근가능
private:같 래만 근가능
protected:같 래, 래, 같 내 는 래 근가능
friendly(략):같 래, 같 내 는 래 근 가능
(Encapsulation):
변 메드를 나 묶로 만든다.
는 모(modularity)과 보닉(information hiding) 공다.
모 각각 객를 드가 로 무관게 될 다는 것다.
보닉 객가 가는 보 근 권 다른 객로 부 근 다.
메(Message):
객 객가 는데 된다.
메를 객, 메드 , 메드 매개변 가 구를 가다.
래(Class):(벽돌)
류 객들 대 반로 는 변 메드를 고 다.
(Instance):(낸 벽돌)
래를 로 록 는 것
객(Object)
(Inheritance)
래가 가고 는 들 래 다.
다(Polymorphism)
러개 래가 같 메 대 각 방법로 는 능력다.
다 (overloading), 다 , (overriding) 다.
나.래 및 (객) 변 메드를 나 묶로 만든다.
는 모(modularity)과 보닉(information hiding) 공다.
모 각각 객를 드가 로 무관게 될 다는 것다.
보닉 객가 가는 보 근 권 다른 객로 부 근 다.
메(Message):
객 객가 는데 된다.
메를 객, 메드 , 메드 매개변 가 구를 가다.
래(Class):(벽돌)
류 객들 대 반로 는 변 메드를 고 다.
(Instance):(낸 벽돌)
래를 로 록 는 것
객(Object)
(Inheritance)
래가 가고 는 들 래 다.
다(Polymorphism)
러개 래가 같 메 대 각 방법로 는 능력다.
다 (overloading), 다 , (overriding) 다.
래
~cpp class 래 { // 변 부 … // 메드 부 … }
~cpp 래 래 = new 래(); 또는 래 래; 래 = new 래();다.변 및 메드 근
public:같 래, 래, 같 내 는 래 근가능
private:같 래만 근가능
protected:같 래, 래, 같 내 는 래 근가능
friendly(략):같 래, 같 내 는 래 근 가능
라.메드 다
다:같 가 러개 는 것
다:같 가 래 따라 다른 록 는 것
->바 공
다:같 가 러개 는 것
다:같 가 래 따라 다른 록 는 것
->바 공
2.객 객 과 ¶
가.객
다.래멤 멤
래 변 래 메드 )
~cpp 래(매개변 리) { … } 래(매개변 리) { 다른 객 ; // 반드 루 . … } 래 변 = new 래(매개변 리);나.this
다.래멤 멤
래 변 래 메드 )
~cpp [근권] static 변 ; [근권] static 메드 ; 래 변 래 메드 근) 래.래메드() 래메드() 객값.래메드()
라. 래 기 및 객 과
래 변 기 및 기 블록
래 변 기 및 기 블록
~cpp static 변=기값; 또는 static 배변=new 배; static { 러 개 변들 기 또는 배 기; }
3. ¶
... 는 ...
OOP ¶
, 메, 래, , 객, , 다
단게 명 다
단게 명 다
문 ¶
- 객가 미것 같데 는?
는 다. 같 미다^^;
- public과 protected 는?
고 는 기 때문 모르는 것^^. private 과 protected 는 루 면 똑같 됩다. 만 루다면 미는 려. 만 동 라는 객가 다고 봅다. 그런데 것 굉 개념. 동 개념 럭 과 를 동 만들다고 다. 그랬 때 동 가 가는 떠 는 럭 과 가고 다. 런 경 protected 로 면 그 를 다는 것. 만 부 근 가능다는 변 다. 만 public 부 근 가능게 되는 것. 드로 만들보. 떻게 다른 는게 가 가 겁다.
과 가 내 ¶
- ~ 벌 로 가 가능다 놀라데? ^^; 말 력 난 님 디 고를 가능 겠군. 나? 면 다른 를 고나?
- 를 렇게 바꿔보. 가는 방 력 -> 바벌래 두리를 려놓 -> 바벌래를 기 가 가는 방법로 바.
- 바 메드는 때 문다. 대문로 는 것 래.
- 내 1 내로 보.