面向对象——类和对象
下面来讲讲Java中的类和对象。
首先,如果你要设计一款游戏,使用面向对象的思想来设计,我们要怎么做?
- 1-类
无论什么游戏,都存在一些共同的“属性”
比如,名字,血量,攻击力,移速等
我们就可以设计一个“类”,用来代表这些“属性”
类:人物
属性:名字,血量攻击力,移速
注: 本例用到了3种数据类型 分别是 String(字符串),float(浮点数), int(整数),本章只做简单的使用 ,就不展开了,关于变量知识的详细讲解,将在下个章节展开.
注: 这个类没有主方法,不要试图运行它。 并不是所有的类都是有主方法的。
注: 这个类没有主方法,不要试图运行它。 并不是所有的类都是有主方法的。
public class Figure {
String name; //姓名
float hp; //血量
float attack; //攻击力
int moveSpeed; //移动速度
}
- 2-对象
类就像一个模板,根据这样的模板,可以创建一个个具体的人物,
这个具体的人物就是Java的对象
new Figure() 就是java中创建一个人物对象的意思
public class Figure {
String name; //姓名
float hp; //血量
float attack; //攻击力
int moveSpeed; //移动速度
public static void main(String[] args) {
Figure dog = new Figure ();
dog.name = "狗";
dog.hp = 61.28f;
dog.attack= 27.56f;
dog.moveSpeed = 450;
Figure cat= new Figure ();
cat.name = "猫";
cat.hp = 33f;
cat.attack= 14f;
cat.moveSpeed = 370;
}
}
面向对象——Java类的属性
一个人物有名字,血量,攻击力等状态
这些状态就是这个类的属性
- 1-属性的类型
属性的类型可以是基本类型,比如int整数,float 浮点数
也可以是类类型,比如String 字符串
- 2-属性名称
属性名称一般来说,都是小写
比如name
如果有多个单词组成,后面的单词的第一个字母大写
比如 moveSpeed
属性也是变量,所以需要满足 变量的命名规则
面向对象——Java类的方法
这个人物在游戏里可以做的事情很多,可以做什么在类里就是方法
- 1-什么是方法
比如说狗正在吃饭,猫把碗拿走,导致狗吃不上饭。这就是捣乱。
猫可以给狗捣乱,狗也可以给猫捣乱
所以为Figure 这个类,设计一个方法:Trouble
public class Figure {
String name; //姓名
float hp; //血量
float attack; //攻击力
int moveSpeed; //移动速度
//捣乱
void Trouble(){
System.out.println("捣乱!");
}
}
- 2-方法返回类型
有的方法是有返回类型的,
比如方法:
float getArmor(){
return hp;
}
这个方法是用来获取一个人物有多少血量的,返回类型是float
有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值
比如方法 "捣乱"
public class Figure {
String name; //姓名
float hp; //血量
float attack; //攻击力
int moveSpeed; 移动速度
获取血量
float getArmor(){
return hp;
}
捣乱
void Trouble(){
System.out.println("捣乱!");
}
}
- 3-方法的参数
人物在一些特定情况下,可以增加移动速度
这样我们就通过addSpeed这个方法增加移动速度
void addSpeed(int speed){
//在原来的基础上增加移动速度
moveSpeed = moveSpeed + speed;
}
int speed 叫做方法的参数
给猫增加100的移动速度:
Figure cat= new Figure ();
cat.name = "猫";
cat.moveSpeed = 370;
cat.addSpeed(100);
- 4-方法的命名
方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng ...
如果有多个单词,后面的每个单词的第一个字母使用大写
比如 addSpeed