面向過程就是分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
例子:猜數字游戲
class GuessGame{
????Player p1;
????Player p2;
????Player p3;//用3個實例變量分別表示3個player對象
????public void startGame() {
????p1=new Player();
????p2=new Player();
????p3=new Player();//創建出player對象
????int guessp1=0;
????int guessp2=0;
????int guessp3=0;//聲明3個變量來保存是否猜中
????boolean p1isRight=false;
????boolean p2isRight=false;
????boolean p3isRight=false;//聲明3個變量來保存猜測的數字
????int targetNumber = (int)(Math.random()*10);
????System.out.println("I'm thinking of a number between 0 and 9...");//產生謎底數字
????while(true) {
????????System.out.println("Number to guess is "+targetNumber);
????????p1.guess();
????????p2.guess();
????????p3.guess();//調用Player的guess()方法
????????guessp1=p1.number;
????????System.out.println("Player one guessed "+guessp1);
????????guessp2=p2.number;
????????System.out.println("Player one guessed "+guessp2);
????????guessp3=p3.number; ??
????????System.out.println("Player one guessed "+guessp3);//取得每個Player所猜測的數字并將它列出
????????if(guessp1==targetNumber) {
????????????p1isRight = true;
????????}
????????if(guessp2==targetNumber) {
????????????p2isRight = true;
????????}
????????if(guessp3==targetNumber) {
????????????p3isRight = true;
????????}//檢查是否猜中,若是猜中則去設定是否猜中的變量
????????if(p1isRight||p2isRight||p3isRight) {//如果有一或多個猜中
????????????System.out.println("We have a winner!");
????????????System.out.println("Player one got it right? "+p1isRight);
????????????System.out.println("Player two got it right? "+p2isRight);
????????????System.out.println("Player three got it right? "+p3isRight);
????????????System.out.println("Game is over");
????????????break;
????????????}else {//不然的話就重復循環繼續猜下去
????????????????//都沒猜到,所以要繼續下去
????????????????System.out.println("Players will have to try again.");
????????????}//if/else結束
????????}//循環結束
????}//方法結束
}//類結束
class Player{
????int number = 0;
????public void guess() {
????????number = (int)(Math.random()*10);
????????System.out.println("I'm guessing "+number);
????}
}
public class hm{
????public static void main(String[] args) {
????????GuessGame game = new GuessGame();
????????game.startGame();
????}
}