java第一课(1):类和对象基本篇

Java作为一门完全面向对象的编程语言,类和对象是任何一门面向对象编程的基本核心所在,面向对象编程就是在模拟现实生活。
一、基本概念:
对象:一个具体的事物就是一个对象;通俗讲,就像你指着一样东西就可以说这就是一个对象,而不是模糊地说人或椅子桌子,要说某张桌子某个人。可以从特征和行为(功能)两方面来描述一个对象。例如,我手头的一个杯子是一个对象,描述这个对象,从特征来说有颜色、形状、价格等,从功能上讲有盛水、保温等。
类:把对象按照具有相似特征和相似行为(功能)分类,例如对象有苹果雪梨桃子,就可以归为一个类:水果。程序中的类有两部分组成:用对象的特征来定义属性,用对象的行为来定义方法。程序中的类就是根据对象的特征和行为,按照程序类中的格式进行抽象化定义,格式如下:
public class 类名{
public 数据类型 属性名;
public 返回值类型 方法名(数据类型 参数名) {
}
}
实例化对象和调用方法的格式如下:
类名 对象名=new 类名();
调用属性和方法:对象名.属性名
对象名.方法名(可以有参数)
二、实例:
场景:回合制对战:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
如果是奥特曼胜利,则奥特曼要和BOSS进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
1.找出场景中的对象以及对象的特征和行为:
奥特曼:特征:姓名,血量,攻击伤害;行为:战斗
小怪兽:特征:姓名,血量,攻击伤害;行为:战斗
BOSS:特征:姓名,血量,攻击伤害; 行为:战斗
2.根据对象的特征和行为以及类的格式,抽象定义类:
三个对象抽象为两个类,小怪兽和BOSS抽象为Master怪兽类,奥特曼抽象为ultraman奥特曼类
3.实例化主函数的类,在主函数中实例化对象,调用方法和属性:Game类中提供运行程序的入口
public class Game {
public static void main(String [] args){//提供主函数入口

        //实例化一个Ultraman类的对象,设置名字,血量,攻击
        Ultraman atm = new Ultraman("奥特曼",200,10);
        //实例化两个Master类的对象
        Master m1=new Master("小怪兽",50,10);
        Master m2=new Master("怪兽BOSS",150,10);

        while(m1.blood>0&&atm.blood>0){//根据怪兽血量循环调用超人战斗方法
            int ran1=(int)(Math.random()*2)+1;//随机产生1和2
            if(ran1==1){//1时奥特曼赢,调用atm.fightwin
                atm.fightwin(m1);
            }
            if(ran1==2){//2时怪兽赢,调用m1.fightwin
                m1.fightwin(atm);
            }
        }
        if(atm.blood>0){
            System.out.println("奥特曼赢了第一回合,进入第二回合");
            while(m2.blood>0&&atm.blood>0){//根据怪兽血量循环调用超人战斗方法
               int ran2=(int)(Math.random()*2)+1;//随机产生1和2
               if(ran2==1){//1时奥特曼赢,调用atm.fightwin
                   atm.fightwin(m2);
               }
               if(ran2==2){//2时怪兽赢,调用m2.fightwin
                   m2.fightwin(atm);
               }
            }
            if(atm.blood>0)System.out.println("奥特曼WIN~");
            else {System.out.println("奥特曼Game Over");}
        }
        else {System.out.println("奥特曼Game Over");}
    }

Master怪兽类
public class Master {
public String name;//设置姓名属性
public int blood;//设置血量属性
public int attack;//设置攻击属性

 public Master(String name,int blood,int attack){//构造函数
        this.name = name;
        this.blood = blood;
        this.attack= attack;
 }

 public void fightwin(Ultraman u){//设置战斗方法
         u.blood-=attack;
         System.out.println(name+"给"+u.name+"一击,"+u.name+"血槽为"+u.blood+","+name+"血槽为"+blood);
         if(u.blood<=0&&blood>0){
          System.out.println(name+"胜利,"+u.name+"被打败");
         }
 }

}
Ultraman奥特曼类
public class Ultraman {
public String name;//设置姓名属性
public int blood;//设置血量属性
public int attack;//设置攻击属性

 public Ultraman(String name,int blood,int attack){//构造函数
        this.name = name;
        this.blood = blood;
        this.attack=attack;
 }
 public void fightwin(Master m){//设置战斗方法
     m.blood-=attack;
     System.out.println(name+"给"+m.name+"一击,"+name+"血槽为"+blood+","+m.name+"血槽为"+m.blood);
     if(m.blood<=0&&blood>0){
      System.out.println(name+"胜利,"+m.name+"被打败");
     }
 }

}

猜你喜欢

转载自blog.csdn.net/Findingxu/article/details/51503090