第二章总结

第二章总结
一、类和对象的概念理解
(1)类:有共同 属性 和 功能 (方法) 的同一类事物的总和。
例如:People就是一个类。
People属性有name、old、high、weight
功能有eat、sleep、play

(2)对象:一类事物中的个体,有自身具体的属性和功能(方法)。
例如: zhoutao就是一个对象。
zhoutao具体的属性有name=zhoutao、old=19、high=178、weight=125
功能有 eat、sleep、play

二、类和对象的定义
(1)类的定义:
public class People //定义People类,类名首字母需要大写
{ private String name; //定义各种属性
private int old;
private int high;
private int weight;
public void setName(String n)
{ name=n; }
public String getName()
{ return(name); }
public void setWeight(int w) //无返回值
{ weight=w; }
public String getWeight() //有返回值,可以进行值运算
{ return(weight); }
public void eat()
{ weight++; //吃饭体重增加
System.out.println(name+“正在吃饭”); }
}

(2)创建对象:
People peo=new People();

peo.setName(“周涛”);
peo.setWeight(130);
peo.eat();

三、构造器方法、方法重载、this关键字、值传递、引用传递
(1)构造器方法:用来创建对象和初始化对象的方法。
注释:JAVA给每一个类都默认有一个无参构造器,当重载构造器后,默认的构造器会被覆盖并且无法使用。
1)语法格式: public 类名(数据类型 形参名,...){
//方法体
}
例如:public Student(String n){
name=n;
}
(2)方法重载:要求1.方法名相同
2.参数名称、参数个数、参数顺序至少有一项不同。
注释:JAVA只看你的方法名是否相同,参数名、个数、顺序是否至少有一项不同而判断你是不是重载了这个方法。而方法的返回值类型、公有还是私有,JAVA不做判断,可以变也可以不变,看你自己的需求了。

(3)this关键字:用在类中相当于指代了对象,可以避免参数同名造成的歧义。
例如: public Student(String name){
this.name=name;
}
(4)值传递:就是传递值,用于基本数据类型和String类型。
(5)引用传递:传递类的各种值,适用于类。


三、课堂实践
回合制游戏:**角色和男爵Boss进行战斗,直到一方的血量为0时结束战斗,输出谁胜利了!
源代码:
public class Legends { //定义英雄类
private String name;
private int blood;
private int power;

public void setName(String n)
{ name=n; }
public String getName()
{
return(name);
}
public void setBlood(int b)
{
blood=b;
}
public int getBlood()
{
return(blood);
}
public void setPower(int p)
{
power=p;
}
public int getPower()
{
return(power);
}
public void attack(Monster mon,Legends leg)
{
mon.setBlood(mon.getBlood()-power);
System.out.println(name+"正在攻击"+mon.getName());
}
public void attack(Bin bin,Legends leg) //方法重载
{
bin.setBlood(bin.getBlood()-power);
System.out.println(name+"正在攻击"+bin.getName());
}
}

public class Monster { //定义野怪类
private String name;
private int blood;
private int power;

public void setName(String n) //重载构造函数
{
name=n;
}
public String getName()
{
return(name);
}
public void setBlood(int b)
{
blood=b;
}
public int getBlood()
{
return(blood);
}
public void setPower(int p)
{
power=p;
}
public int getPower()
{
return(power);
}
public void attack(Monster mon,Legends leg)
{
leg.setBlood(leg.getBlood()-power);
System.out.println(name+"正在攻击"+leg.getName());
}
}

public class Bin { //定义小兵类
private String name;
private int blood;
private int power;
public Bin(String name,int blood,int power)
{
this.name=name;
this.blood=blood;
this.power=power;

}

public void setName(String n)
{
name=n;
}
public String getName()
{
return(name);
}
public void setBlood(int b)
{
blood=b;
}
public int getBlood()
{
return(blood);
}
public void setPower(int p)
{
power=p;
}
public int getPower()
{
return(power);
}
public void attack(Bin bin,Legends leg)
{
leg.setBlood(leg.getBlood()-power);
System.out.println(name+"正在攻击"+leg.getName());
}

}

public class Fight { //定义对战类

/**
* @param args
*/
public static void main(String[] args) { //主函数运行战斗
// TODO Auto-generated method stub
Legends leg=new Legends();
leg.setName("Riven");
leg.setBlood(2000);
leg.setPower(450);

Monster mon=new Monster();
mon.setName("Dragon");
mon.setBlood(5000);
mon.setPower(150);

String name="xiaobin";
int blood=500;
int power=20;
Bin bin1=new Bin(name,blood,power); //用构造函数初始化

while(leg.getBlood()>0&&mon.getBlood()>0)
{
leg.attack(mon, leg);
mon.attack(mon, leg);
}
if(mon.getBlood()<0)
System.out.println(leg.getName()+"击杀了"+mon.getName());
else
System.out.println(mon.getName()+"击杀了"+leg.getName());

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值