java-类与对象
类与对象的概念
类:具有的相同、相似的属性、特征、行为方式、功能的一类事物的抽象,例如王者荣耀游戏里的英雄是一个类。
对象:是类的具体实例,例如王者荣耀游戏里的英雄李白就是一个对象。
类与对象的定义与使用
类的定义: 关键字class ,类要写在同名的 .java文件中 ,一个类通常包含类名、属性、方法三部分
格式:
public class 类名{
属性
格式:访问修饰符 属性类型 属性变量名;//基本数据类型关键字byte char boolean short int long float double
方法:行为/功能的描述
格式:访问修饰符 返回值类型 方法名(参数类型 参数变量名){
}
}
如果要使用类方法,则需创建一个类对象去调用。
创建对象-- 实例化对象 关键字==new ==
格式:类名 对象变量名= new 类名();
对象属性的初始化方式:(4种方式)
- 声明该属性的时候初始化
- 定义Setter和Getter方法
- 通过构造函数的重载
- 利用静态代码块和实例代码块(
对象属性的初始化顺序:
静态代码块 ——> 实例代码块 ——> 构造方法
被static所修饰的代码块加载的时候就会执行, 对于多个被static修饰的代码块,谁在前面谁先执行。
实例代码
public class LiBai {
//属性
public String name = "小白(李白)";//声明该属性的时候初始化
public int hp;//血量
public int ad;//攻击力
public static int v;//基础移速
//提供一系列的Setter和Getter方法
public void SetName(String name){
this.name = name;
}
public String GetName(){
return name;
}
public void SetHp(int hp){
this.hp = hp;
}
public int GetAd(){
return ad;
}
public void SetAd(int ad){
this.ad = ad;
}
public int GetHp(){
return hp;
}
//构造函数
public LiBai(String name, int hp, int ad) {
this.name = name;
this.hp = hp;
this.ad = ad;
}
//静态代码块 注意:静态代码块用于对静态变量进行初始化
static{
v = 402;
}
//代码块
{
ad = 520;
hp = 5210;
}
//方法 定义李白的攻击行为
public void ack_1(LiuBei liubei) {
int is =(int) (100+1.6*ad); //伤害计算
if(liubei.hp-is>0){
liubei.hp-=is;
System.out.println(name+"攻击了"+liubei.name+"使其失去了"+is+"生命值,其还剩下"+liubei.hp+"。");
}
else{
int hp=liubei.hp;
liubei.hp=0;
System.out.println(name+"攻击了"+liubei.name+"使其失去了"+hp+"生命值,其还剩下"+liubei.hp+"。");
}
}
}