类与对象

面向对象编程:
类是基本单位;对象是核心和基础;
类:
是一个抽象的概念,在程序中有1.固定格式;2.由属性和方法构成;3:属性和对象的特征相 对应,方法和对象的行为相对应。
格式:
//类的定义
public class 类名{

//定义属性的格式
private 类型 属性名;

//定义方法的格式
public 返回值类型 方法名(参数类型 参数名,参数类型 参数名,……){
//方法体
}
}

步骤:
1.找出场景中的对象;
2.找到对象的特征和行为;
3.实例化对象(类)
关键字:new
格式:类名 对象名=new 类名(); //带()都是方法,此处为构造方法
方法分为构造方法()和普通方法(表示对象的行为)
构造方法:1.实例化对象;2.给属性赋初始值;
格式:public 类名(参数类型 参数名,.....){
//方法体}
区别:1.返回值(普通方法有无返回值必须写出来,构造方法有返回值而不用写出来, 返回内存空间的首地址);
2.名字不同(构造方法为类名,普通方法为所需要的名称);
3.表示不同;
调用方法的格式:对象名.方法名(参数,……);
方法重载:1.方法名相同;
2.参数个数,类型,和顺序至少有一个不相同;
this关键字:作用:1.区分属性和参数;
2.调用构造方法;
值传递:适用于:基本类型,+String
引用传递:适用于类类型(类、接口、抽象类、数组)传递的是内存空间的首地址
关于对战练习的代码:
//定义一个Boss类
public class Boss {

//定义名称和血量属性
private String name;
private int blood;

//定义设置名称和获取名称属性值的方法
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
//定义设置血量和获取血量属性值的方法
public void setBlood(int b){
blood = b;
}
public int getBlood(){
return blood;
}

//定义Boss的战斗方法,Boss需要和战士进行战斗,所以需要一个战士类型的对象作为参数
public void fight(Soldier sol){
//让sol对象减少血量
sol.setBlood(sol.getBlood()-1);
//输出信息
System.out.println(name+"攻击了"+sol.getName()+","+sol.getName()+"剩余"+sol.getBlood()+"血量");
}

}

主函数:
//定义Game类
public class Game {

//定义程序的入口主函数
public static void main(String [] args){

//实例化Solider类的对象
Soldier sol = new Soldier();
//设置sol对象的名称和血量属性值
sol.setName("无敌");
sol.setBlood(10);

//实例化一个Boss类的对象
Boss boss = new Boss();
//设置boss对象的名称和血量属性值
boss.setName("呵呵");
boss.setBlood(10);

//循环战斗,条件战士和Boss的血量都必须要大于0
while(sol.getBlood() > 0 && boss.getBlood() > 0){
//让战士对象先攻击Boss对象
sol.fight(boss);
//判断boss的血量是否小于或者等于0
if(boss.getBlood() <= 0){
//输出信息
System.out.println(sol.getName()+"胜利啦!");
//跳出循环
break;
}
//让Boss对象攻击战士对象
boss.fight(sol);
//判断sol的血量是否小于或者等于0
if(sol.getBlood() <= 0){
//输出信息
System.out.println(boss.getName()+"胜利啦!");
//跳出循环
break;
}
}


}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值