这一章考试经常考,提醒读者弄清楚类与对象的使用。
4.15.1用类描述坦克
Tank.java
public class Tank {
double speed;
int bulletAmount;
void speedUp(int s) {
speed=speed+s;
}
void speedDown(int d) {
if(speed-d>=0)
speed=speed-d;
else
speed=0;
}
void setBulletAmount(int m) {
bulletAmount=m;
}
int getBulletAmount() {
return bulletAmount;
}
double getSpeed() {
return speed;
}
void fire(){
if(bulletAmount>=1) {
bulletAmount=bulletAmount-1;
System.out.println(“打出一发炮弹”);
}else
{System.out.println(“没有炮弹了,无法开火”);
}
}
}
Figh.java
public class Fight {
public static void main(String[] args) {
// TODO Auto-generated method stub
Tank tank1,tank2;
tank1=new Tank();
tank2=new Tank();
tank1.setBulletAmount(10);
tank2.setBulletAmount(10);
System.out.println(“the bulletamount of tank1:”+tank1.getBulletAmount());
System.out.println(“the bulletamount of tank2:”+tank2.getBulletAmount());
tank1.speedUp(80);
tank2.speedUp(90);
System.out.println(“tank1目前速度:”+tank1.getSpeed());
System.out.println(“tank2目前速度:”+tank2.getSpeed());
tank1.speedDown(15);
tank2.speedDown(30);
System.out.println(“tank1目前速度:”+tank1.getSpeed());
System.out.println(“tank1目前速度:”+tank2.getSpeed());
System.out.println(“Tank1 开火 !!”);
tank1.fire();
System.out.println(“Tank2 开火 !!”);
tank2.fire();
tank2.fire();
System.out.println(“tank1:炮弹数量”+tank1.getBulletAmount());
System.out.println(“tank2炮弹数量:”+tank2.getBulletAmount());
}
}
4.15.2学习与教师
Teacher.java
public class Teacher {
int teacherType;
public void speak(){
if(teacherType==1){
System.out.println(“课程二次方程”);
}
else if(teacherType==2){
System.out.println("课程五线谱");
}
}
}
Student.java
public class School {
Teacher mathTeacher,musicTeacher;
void setTeacher(Teacher t1,Teacher t2){
mathTeacher=t1;
musicTeacher=t2;
}
void startMathLesson(){
mathTeacher.speak();
}
void startMusicLesson(){
musicTeacher.speak();
}
}
MainClass.java
public class MainClass {
public static void main(String[]args){
Teacher zhang,wang;
zhang=new Teacher();
wang=new Teacher();
zhang.teacherType=1;
wang.teacherType=2;
School middleschool=new School();
middleschool.setTeacher(zhang,wang);
middleschool.startMathLesson();
middleschool.startMusicLesson();
}
}
4.15.3共同的森林
village.java
public class Village {
static int treeAmount;
int peopleNumber;
String name;
Village(String s){
name=s;
}
void treePlanting(int n){
treeAmount=treeAmount+n;
System.out.println(name+“植树”+n+“颗”);
}
void fellTree(int n){
if(treeAmount-n>=0){
treeAmount=treeAmount-n;
System.out.println(name+"伐树"+n+"颗");
}
else{
System.out.println("无树木可伐");
}
}
static int lookTreeAmount(){
return treeAmount;
}
void addPeopleNumber(int n){
peopleNumber=peopleNumber+n;
System.out.println(name+"增加了"+n+"人");
}
}
MainClass.java
public class MainClass2 {
public static void main(String []args){
Village zhaovillage,mavillage;
zhaovillage=new Village(“赵庄的人口”);
mavillage=new Village(“马家河子的人口”);
zhaovillage.peopleNumber=100;
mavillage.peopleNumber=150;
Village.treeAmount=200;
int leftTree=Village.treeAmount;
System.out.println(“森林里有”+leftTree+“颗树”);
zhaovillage.treePlanting(50);//代码2
leftTree=mavillage.lookTreeAmount();//代码3
System.out.println(“森林里有”+leftTree+“颗树”);
mavillage.fellTree(70);
leftTree=mavillage.lookTreeAmount();
System.out.println(“森林里有”+leftTree+“颗树”);
leftTree=Village.lookTreeAmount();
System.out.println(“森林里有”+leftTree+“颗树”);
System.out.println(“赵庄的人口”+zhaovillage.peopleNumber);
zhaovillage.addPeopleNumber(12);
System.out.println(“赵庄的人口”+zhaovillage.peopleNumber);
System.out.println(“马家河子的人口”+mavillage.peopleNumber);
mavillage.addPeopleNumber(10);
System.out.println(“马家河子的人口”+mavillage.peopleNumber);
}
}