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