第二章总结

第二章总结
一、类和对象的概念理解
  (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());

}

}

猜你喜欢

转载自lightningv.iteye.com/blog/1901619