Java学习笔记之“面向对象”

文为在How2j的学习总结,只代表个人见解,如有不妥,望指出以便更正。

以LOL游戏的英雄为例,使用面向对象的思想来设计盖伦提莫这两个英雄。

public class Hero {
	String name;    //姓名
	float hp;      //血量
	float armor;    //护甲
	int moveSpeed;   //移动速度
	int holdingAttack;  //助攻
	int kill;          //击杀
	int killed;       //被击杀
	int money;        //金钱
	int lastHit;      //补刀
	float attackSpeed;  //攻击速度
	String wordAfterkill;  //击杀时说的话
	String WordAfterkilled;  //被击杀时说的话
	
	//获取护甲值
	float getArmor() {
		return armor;
	}
	
	//坑队友
	void keng() {
		System.out.println("坑队友");
	}
	
	//增加移动速度
	void addSpeed(int speed) {
		//在原来的基础上增加移动速度
		moveSpeed = moveSpeed + speed;
	}
	
	//超神
	void legendary() {
		System.out.println("超神了");
	}
	
	//获取当前的血量
	float getHp() {
		return hp;
	}
	
	//回血
	void recovery(float blood) {
		System.out.println("回血" + blood);
		hp = hp + blood;	
	}

	public static void main(String[] args) {
		Hero garen = new Hero();
		garen.name = "盖伦";
		garen.hp = 616.28f;
		System.out.println(garen.name + "当前血量是" + garen.hp);
		garen.recovery(100);
		System.out.println("现在的血量是" + garen.hp);
		garen.armor = 270536f;
		garen.moveSpeed = 350;
		garen.addSpeed(100);
		garen.holdingAttack = 3;
		garen.kill = 5;
		garen.killed = 9;
		garen.money = 5000;
		garen.lastHit = 100;
		garen.attackSpeed = 0.5f;
		garen.wordAfterkill = "哈哈哈 提莫小辣鸡";
		garen.WordAfterkilled = "嘤嘤嘤";
		
		Hero teemo = new Hero();
		teemo.name = "提莫";
		teemo.hp = 383f;
		teemo.armor = 14f;
		teemo.moveSpeed = 330;
		teemo.holdingAttack = 5;
		teemo.kill = 9;
		teemo.killed = 5;
		teemo.money = 6000;
		teemo.lastHit = 200;
		teemo.attackSpeed = 5.0f;
		teemo.wordAfterkill = "气不气";
		teemo.WordAfterkilled = "呜呜呜";
		
	}
}

面向对象主要涉及到类、对象、属性、方法。

类:我们涉及LOL的英雄时,考虑到这些英雄都有一些共同的状态,比如他们都有名字,血量hp,护甲,移动速度等等,这就意味着我们可以设计一种东西,叫做类代表英雄这一类东西。总结一下:类就是对有一些共同的状态的东西的归类。

类:英雄(Hero)

状态:名字、血量、护甲、移动速度等

对象:类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄。一个个具体的英雄,就叫一个个的对象

new Hero() 就是Java中创建一个英雄对象的意思。

属性:一个英雄有姓名,血量,护甲等等状态,这些状态就叫做一个类的属性

属性是变量,需要满足变量的命名规则,其类型也为变量的类型,如int整型,float浮点型,String字符串型等等。

例如,设计盖伦和提莫的属性如下图所示,也就是一个给变量赋值的过程。

方法:在LOL中,一个英雄可以做很多事情,比如超神,超鬼,坑队友等等,能做什么在类里面就叫做方法。

方法是一个类的动作行为,命名时考虑以动词开头。方法类似于C语言中的函数,也包括类型和参数等。

有的方法是有返回类型的,例如取一个英雄有多少护甲的,返回类型是float;有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值,比如方法 "坑队友"。

方法也可以是有参数的,例如英雄在一些特定情况下,可以增加移动速度,我们就通过addSpeed这个方法增加移动速度。

以英雄这个类为例,其结构如下图。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值