类和对象的总结(2)

放假前上过类与对象的课~
发现自己的遗忘速度比我想象中的要快得多~ 正所谓“曲不离口拳不离手”,现在应
该是"曲不离口,键盘不离手"啊.
第二次做没有第一次吃力了,不过有点还是忘记了~

之前也有写过这个总结,熊哥说的,总结是写给自己看的。
熊哥今天很生气,后果很严重,嘿嘿。
同志们,我们都不要迟到,及时完成作业啊! 不想唱歌的说~


好吧~ 还是入正题了。


[size=large][align=center]类跟对象很重要。[/align][/size]


一.类:是从生活中抽象出来的,表示一类具有相似特征、行为的物体。

类由两个部分组成:1.属性 2.方法
属性对应对象的特征。
方法对应对象的行为。

类称之为模板。


二.对象:由类引申出来的表示具体的某一个物体或者某一个事物。

对象由两部分组成:1.特征 2.行为

1.特征、状态:对象本身所具有的特点;
2.行为、用途、功能:对象可以做或者被用来做什么;


三.定义一个类:

public class 类名{

//私有的,定义对象属性
private 数据类型 属性名;

//公有的,定义对象的方法
public 数据类型 方法名{

方法体;
}

}


四.实例化一个对象和调用方法:

实例化对象:

类名 对象名 = new 类名();
如: student str = new student();


调用方法:

对象名.方法;
如: str.getName();


五.对象是否可以作为参数

1.定义的类是可以作为数据类型的(引用类型、类类型或者对象类型)。
2.用来创建的对象自然可以作为参数。


remenber:设类名时,注意每个单词第一个字母都要大写.(那是Java的格式)

/*************************************************************/

练习:回合制游戏:奥特曼和小怪兽要战斗,直到一方的血量为0的时候结束战斗,输

出谁胜利了!

思路分析:

对象: 奥特曼,小怪兽;
共有的特征:姓名,血量;
行为:战斗,输了减血;

1.分别建一个超人和怪兽的类,定义属性,方法。名字、血量属性和战斗方法。
2.定义主函数,定义他们的特征(名字,血量)、行为(超人跟怪兽战斗),血量首先0

的就输了。


附上战斗的代码:

/******************超人类**************************/

public class Aoto{

//定义一个Aoto类
private String name;
private int blood;

//定义名字,得到名字
public void setName(String n){
name = n;
}
public String getName(){
return name;
}

//定义血量,得到血量
public void setBlood(int a){
blood = a;
}

public int getBlood(){
return blood;
}

//战斗,超人打怪兽,怪兽减血
public void fight(Monster Mo){

Mo.setBlood(Mo.getBlood()-1);
System.out.println(Mo.getName()+"被击中");

}
}

/******************怪兽类**************************/


public class Monster{

//定义一个Aoto类
private String name;
private int blood;

//定义名字,得到名字
public void setName(String n){
name = n;
}
public String getName(){
return name;
}

//定义血量,得到血量
public void setBlood(int a){
blood = a;
}

public int getBlood(){
return blood;
}

//战斗,怪兽打超人,超人减血
public void fight(Aoto Ao){

Ao.setBlood(Ao.getBlood()-1);
System.out.println(Ao.getName()+"被击中");

}
}

/******************入口函数**************************/


public class Manager{

//定义入口函数
public static void main(String [] args){

Aoto Ao = new Aoto();
Monster Mo = new Monster();

//定义Aoto对象
Ao.setName("奥特曼");
Ao.getName();
Ao.setBlood(10);
Ao.getBlood();

//定义Monster对象
Mo.setName("小怪兽");
Mo.getName();
Mo.setBlood(10);
Mo.getBlood();

//开始战斗

Ao.fight(Mo);
Mo.fight(Ao);

for(int i=0;i<7;i++){
Mo.fight(Ao);
}

for(int j=0;j<9;j++){
Ao.fight(Mo);
}

//决胜负
if(Ao.getBlood()<=0)
System.out.println(Mo.getName()+"赢了!");
else if(Mo.getBlood()<=0)
System.out.println(Ao.getName()+"赢了!");
else
System.out.println(Ao.getName()+"与"+Mo.getName()+"未能一决高下

");
}
}

/******************************************************************/

问题与解决方法:

这个程序就卡住的地方就是fight函数~
开始学是这样的:
public void fight(Aoto Ao){

Ao.getBlood()--;
System.out.println(Ao.getName()+"被击中");

}

逻辑错,还不能编译(这不知道为什么);
getBlood()一直是setBlood里面的数啊~ 不会改~ 所以这样做是错的。

改正之后就是:
public void fight(Aoto Ao){

Ao.setBlood(Ao.getBlood()-1);
System.out.println(Ao.getName()+"被击中");

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值