How2J——面向对象
重点:
1、
Hero teemo = new Hero();
teemo.name= “提莫”;
2、
这个坑队友的方法应该写在Hero方法里,不能写在主方法里!
3、
void recovery(float blood){
hp = hp + blood;
}
类和对象(Item作业)
package basis;
public class Item {
String name;
int price;
public static void main(String[] args) {
// TODO Auto-generated method stub
Item healthPotion = new Item();
healthPotion.name = "血瓶";
healthPotion.price = 50;
Item strawSandals = new Item();
strawSandals.name = "草鞋";
strawSandals.price = 300;
Item longSword = new Item();
longSword.name = "剑";
longSword.price = 350;
}
}
属性(英雄)
package basis;
public class Hero {
String name;
float hp;//血量
float armor;//盔甲,护甲
int moveSpeed;//移动速度
int deadNumber;//死亡次数
int killNumber;//杀人次数
int supportNumber;//助攻次数
int money;
String killedWord;
String attackWord;
int attackSpeed;//攻击速度
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero garen = new Hero();
garen.name="盖伦";
garen.hp=616;
garen.armor=27;
garen.moveSpeed=350;
garen.killedWord = "我一定会回来的!";
System.out.println("英雄1 " + garen.name + ":" + garen.killedWord );
Hero teemo = new Hero();
teemo.name= "提莫";
teemo.hp = 383;
teemo.armor = 14;
teemo.moveSpeed = 330;
teemo.killedWord = "壮志未酬身先死。";
System.out.print("英雄2 " + teemo.name + ":" + teemo.killedWord);
}
}
方法
package basis;
public class Hero {
String name;
float hp;
float armor;
int moveSpeed;
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero garen = new Hero();
garen.name = "盖伦";
garen.hp = 30;
garen.armor = 3;
garen.moveSpeed = 100;
void keng(){
System.out.println("坑队友");
}
}
}
注意:
1、这个坑队友的方法应该写在Hero方法里,不能写在主方法里!
方法(英雄的完善)
public class Hero {
String name;
float hp;//血量
float armor;//盔甲,护甲
int moveSpeed;//移动速度
int deadNumber;//死亡次数
int killNumber;//杀人次数
int supportNumber;//助攻次数
int money;
String killedWord;//被杀后说的话
String attackWord;//杀人时说的话
int attackSpeed;//攻击速度
//坑队友方法
void keng() {
System.out.println("坑队友");
}
//获取护甲值
float getArmor() {
return armor;
}
//增加速度
//有参数的方法
void addSpeed(int speed) {
moveSpeed = speed + moveSpeed;
}
//超神
void legendary() {
System.out.println("超神");
}
//获取当前血量
float getHp() {
return hp;
}
//回血
void recovery(float blood) {
hp = hp+blood;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero garen = new Hero();
garen.name="盖伦";
garen.hp=616;
garen.armor=27;
garen.moveSpeed=350;
garen.killedWord = "我一定会回来的!";
System.out.println("英雄1 " + garen.name + ":" + garen.killedWord );
garen.recovery(133f);
System.out.println("我又加血了!" + garen.hp);
Hero teemo = new Hero();
teemo.name= "提莫";
teemo.hp = 383;
teemo.armor = 14;
teemo.moveSpeed = 330;
teemo.killedWord = "壮志未酬身先死。";
teemo.recovery(1.1f);
System.out.println(teemo.hp);
System.out.print("英雄2 " + teemo.name + ":" + teemo.killedWord);
}
}
疑问:
float recovery(float blood) {
return hp+blood;
}
不会报错,但是这个方法会没有用处。
Teemo = 383
garen = 616
void recovery(float blood){
hp = hp + blood;
}
正确
Teemo = 383 + 1.1 = 384.1
garen = 616 + 133 = 794.0