2009年2月28日星期六

2面向对象

一. 对象是靠类的模型塑造出来的,对象本身已知的事物被称为实例变量,对象可以执行的动作称为方法。

二.要点
①面向对象设计扩展功能不需改动之前已经测试好的程序代码。
②所有的java程序都定义在类中
③类如同蓝图描述该类型的对象要如何创建。
④对象自治:你无须在意他如何完成任务。
⑤对象有一只的事物,并能执行工作。
⑥对象可执行的动作成为方法,它代表对象的行为。
⑧创建类时,可能同时会需要创建独立测试用的类。
⑨类可以继承自较为抽象的父类。JAVA的程序在执行期一组会互相交谈的对象。


三.猜数字
摘要:这个小程序涉及到game与player两个对象。game会产生介于0-9之间的随机数字,而3个player对象会猜测该数字。
类:GuessGame.class Player.class Gamelauncher.class
程序逻辑
①Gamelauncher这个类带有main()方法。
②main()中会创建出GuessGame对象,并调用他的startGame()方法。
③startGame()方法是游戏的起点。他会创建三个player,然后跳出要猜测的随机数字。他会要求player猜测并检查结果,过程会被 列出来


public class GuessGame{
Player p1;
Player p2;
Player p3;

public void startGame() {
p1 = new Player();
p2 = new Player();
p3 = new Player();

int guessp1 = 0;
int guessp2 = 0;
int guessp3 = 0;

boolean p1isRight = false;
boolean p2isRight = false;
boolean p3isRight = false;

int targetNumber = (int)(Math.random()*10);
System.out.println("i'm thinking of a number betwen 0 and 9...");

while(true) {
System.out.println("Number to guess is"+targetNumber);

p1.guess();
p2.guess();
p3.guess();

guessp1 = p1.number;
System.out.println("Player one guessed"+guessp1);

guessp2 = p2.number;
System.out.println("Player two guessed"+guessp1);

guessp3 = p3.number;
System.out.println("Player three guessed"+guessp1);

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("");
}
}
}
}

package com.whj;
public class Player{
int number = 0;

public void guess() {
number = (int) (Math.random()*10);
System.out.println("i'm guessing"+number);
}
}

package com.whj;
public class GameLauncher{
public static void main (String[] args){
GuessGame game = new GuessGame();
game.startGame();
}

}

结果:
i'm thinking of a number betwen 0 and 9...
Number to guess is6
i'm guessing8
i'm guessing2
i'm guessing8
Player one guessed8
Player two guessed8
Player three guessed8

Number to guess is6
i'm guessing6
i'm guessing1
i'm guessing8
Player one guessed6
Player two guessed6
Player three guessed6
We have a winner!
Player one got it right?true
Player two got it right?false
Player three got it right?false
Game is over.


四.java程序结构
1.java程序总是有一个或多个类组成
2.通常把每个类的代码放在单独的文件中,而且所有文件名必须与它里面定义的类名相同
3.java源文件名的扩展名必须是 .java

五.名词解释
primitive data type:基本数据类型
class:类
class definition:类定义
instance:实例
instance variable:实例变量
attribute:属性
field:成员域
data abstraction:数据抽象
programe comment:程序注释
method:方法
executing:执行
constructor:构造函数
program statment:程序语句
encapsulation:封装
data member:数据成员
primitive type:基本数据类型
entity:实体
subclass:子类
superclass:超类
derived:派生
inherit:继承
package:包
java standard class library:java 标准类库

没有评论: