一、对类和对象的理解:
什么是类?什么是对象?
对象是某一个具体的物体或者某一个具体的事物。是特定的具体的可感的,比如某一台电脑,某一本书,某一张桌子,眼睛所观察到的任何一个事物。
类 是一群对象共同点描述的兼程。是抽象的、主观的。
类和对象的区别:
类 | 对象 |
电脑 | 某一台特指的电脑 |
学生 | 某一个学生 |
二、对对象的描述
1.特征、状态:对象本身所具有的特点;
2.用途、功能、行为:对象可以做或者被用来做什么;
三、类的组成
1.生活中对类的划分;
2.程序中对类的划分:
属性对应对象的特征;
方法对应对象的行为。
描述/划分方法 | ||
类 | 属性 | 方法 |
对象 | 特征 | 行为 |
类称之为模板。
三、类的基本格式
类名必须与文件名一致!并且首字母大写,如果是多个单词合在一起每个单词的首字母都大写!这是Java提倡的书写格式!
public class 类名 {
//属性的格式
private 数据类型 属性名;
//方法的格式
public 返回值数据类型 方法名(数据类型 参数名,...){
//编写代码
}
}
四、实例化对象和调用方法的格式
实例化对象的格式:
类名 对象名 = new 类名( );
例 :Student stu = new Student();
注:对象名只能用字母、数字、下划线表示,并且只能以字母或下划线开头。
调用方法的格式:
对象名.方法名(参数值,……);
例:stu.Study();
五、对象是否可以作为参数
1.定义的类是可以作为数据类型的(引用类型、类类型或者对象类型)。
2.用来创建的对象自然可以作为参数。
六、代码
奥特曼打小怪兽的回合制过程模拟
思路分析:1.分别定义奥特曼和怪兽的类,需要定义的属性有名字、血量、攻击力。
2.定义设置和获取属性的方法。
3.定义一次攻击过程的方法,参数用另一个类中的对象。
4.定义主函数、程序入口,完成实例化对象属性。
5.回合制游戏需要建立循环双方相互减血直到一方血量不为零。(注意:不能一直循环, 最后需进行一次判断,否则到最后会输出两个都不为正。)
6.输出结果。
public class VS {
public static void main(String[] args){
//实例化
Outman ot = new Outman();
Monster mt = new Monster();
ot.setName("奥特曼");
//ot.name = "奥特曼";
ot.getName();
ot.setHp(3000);
ot.getHp();
ot.setHurt(600);
ot.getHurt();
mt.setName("小怪兽");
mt.getName();
//mt.name = "小怪兽";
mt.setHp(5000);
mt.getHp();
mt.setHurt(360);
mt.getHurt();
//显示初始血量
System.out.println(ot.getName()+" hp "+ot.getHp());
System.out.println(mt.getName()+" hp "+mt.getHp());
System.out.println(mt.getName()+" 率先发动攻击:");
do{
ot.setHp(mt.dohurt(ot));
ot.getHp();
//显示剩余血量
if(ot.getHp()>0){
System.out.println(ot.getName()+" 血量还剩 "+ot.getHp()+" 点。");
mt.setHp(ot.dohurt(mt));
if(mt.getHp()>0){
System.out.println(mt.getName()+" 血量还剩 "+mt.getHp()+" 点。");
}
}
}while(ot.getHp()>0&&mt.getHp()>0);
//输出结果
mt.setHp(ot.result(mt));
mt.getHp();
mt.result();
}
}
public class Outman{
private String name;
private int hp;
private int hurt;
//设置名字属性的方法
public void setName(String n){
name = n;
}
//获取名字属性的方法
public String getName(){
return name;
}
//设置血量属性的方法
public void setHp(int h){
hp = h;
}
//获取血量的方法
public int getHp(){
return hp;
}
//设置攻击力属性的方法
public void setHurt(int t){
hurt = t;
}
//获取攻击力的方法
public int getHurt(){
return hurt;
}
//对对手造成伤害的方法
public int dohurt(Monster m){
m.setHp(m.getHp() - hurt);
m.getHp();
System.out.print(name+" 对 "+m.getName()+" 造成 "+hurt+" 点伤害。");
return m.getHp();
}
//输出结果的方法
public int result(Monster m){
if(hp>0)
System.out.println(name+" 取得胜利。");
else{
//主角光环,正义必胜。。。。。
System.out.println(name+" 使用动感光波秒杀了对手。");
m.setHp(0);
m.getHp();
}
return m.getHp();
}
}
public class Monster{
private String name;
private int hp;
private int hurt;
//设置名字属性的方法
public void setName(String n){
name = n;
}
//获取名字属性的方法
public String getName(){
return name;
}
//设置血量属性的方法
public void setHp(int h){
hp = h;
}
//获取血量的方法
public int getHp(){
return hp;
}
//设置攻击力属性的方法
public void setHurt(int t){
hurt = t;
}
//获取攻击力的方法
public int getHurt(){
return hurt;
}
//对对手造成伤害的方法
public int dohurt(Outman o){
o.setHp(o.getHp() - hurt);
o.getHp();
if(o.getHp()>0)
System.out.print(name+" 对 "+o.getName()+" 造成 "+hurt+" 点伤害。");
return o.getHp();
}
//输出结果的方法
public void result(){
if(hp>0)
System.out.println(name+" 取得胜利。");
else
System.out.println(name+" 血量为0。 "+name+" 被击败了。");
}
}