浅谈java类与对象

      java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维方式。这可能就是java如此流行的原因之一。

        一个类在另一个类中不能直接被调用,而是通过创建对象。类也可以继承另一个类,即子类继承父类,子类能继承父类所有的方法和属性,在此之外,子类可以写自己的方法,添加属性,或者重写父类中的方法。继承可以提高代码的重用率,增加代码的结构化。

        属性与方法在类中可以被定义成公有或私有,私有则不能在别的类中被直接调用,需要为该方法或属性添加set,get方法。通常定义成私有是为了保护数据,避免其他调用者随意更改。

         下面以一个奥特曼与小怪兽,boss之间打斗的例子来说明类与对象的具体用法:

   定义一个fight类,用于奥特曼打小怪兽,boss,其中的属性有血量,攻击值,方法是fight,给怪兽,boss减血。

      public class Fight {
          private String name;  
          private int blood;      //血量
          private int power;   //攻击
         
         
          public Fight(String name,int blood,int power){                                    //构造函数,用于赋初始值
              this.name=name;
              this.power=power;
              this.blood=blood;
          }
     
        //访问name                                                                               //给私有成员增加get,set方法
      public String getname(){ 
         return this.name;
      }
        //访问blood
       public int getblood(){
           return this.blood;
       }
       //访问攻击值
        public int getpower(){
            return this.power;
        }
        //给blood ,power重新赋值
        public void setblood(int bloodvalue){
            this.blood=bloodvalue;
        }
        public void setpower(int powervalue){
            this.power=powervalue;
        }
       
      //奥特曼打小怪兽   boss
       public void fighter1(Fight2 figh,Fight3 fighter3 )
        {                
       
             figh.setblood(figh.getblood()-power);
              System.out.println(name+"正在攻击"+figh.getname()+" "+
                                               figh.getname()+"血量减少"+power+ "现在血量是"+figh.getblood());
             
            fighter3.setblood(fighter3.getblood()-power);
            System.out.println(name+"正在攻击"+fighter3.getname()+" "+fighter3.getname()+"血量减少了"+power+
                                                         "现在血量是"+fighter3.getblood());
              if(figh.getblood()<=0&&fighter3.getblood()<=0)
              {
                  System.out.println(getname()+"win!");
              }
              else {
                  figh.fighter2(this,fighter3);
              }
                 
          }
         
}

接下来的Fight2,Fight3类与fight类类似,在此就不再赘述

public class Fight2 {

    private String name;
    private int blood;      //血量
    private int power;   //攻击
   
    public Fight2(String name,int blood,int power){
        this.name=name;
        this.power=power;
        this.blood=blood;
    }
   //访问name 
    public String getname(){
        return this.name;
    }
     
    //访问blood
    public int getblood(){
        return this.blood;
    }
    //访问攻击值
    public int getpower(){
        return this.power;
    }
   
    //给blood ,power重新赋值
    public void setblood(int bloodvalue){
        this.blood=bloodvalue;
    }
    public void setpower(int powervalue){
        this.power=powervalue;
    }
   
      //小怪兽打奥特曼   小怪兽打boss
      public void fighter2(Fight fi,Fight3 fighter3){
         int bloodx=fi.getblood();
         bloodx=bloodx-power;
         fi.setblood(bloodx);
          System.out.println(name+"正在攻击"+fi.getname()+" "+
                                           fi.getname()+"血量减少"+power+ "现在血量是"+fi.getblood());
         
        fighter3.setblood(fighter3.getblood()-power);
        System.out.println(name+"正在攻击"+fighter3.getname()+" "+fighter3.getname()+"血量减少了"+power+
                                                     "现在血量是"+fighter3.getblood());
          if(fi.getblood()<=0&&fighter3.getblood()<=0)
          {
              System.out.println(getname()+"win!");
          }
          else {
              fighter3.fight3(fi,this);
          }
             
      }
   

}

public class Fight3 {

      private String name;
      private int blood;
      private int power;
     
      //赋初值
      public Fight3(String name,int blood,int power){
          this.name=name;
          this.power=power;
          this.blood=blood;
      }
      //访问name
      public String getname(){
           return this.name;
       }
       //访问blood
       public int getblood(){
           return this.blood;
       }
     //访问攻击者值
        public int getpower(){
            return this.power;
        }
     
        //给blood ,power重新赋值
        public void setblood(int bloodvalue){
            this.blood=bloodvalue;
        }
        public void setpower(int powervalue){
            this.power=powervalue;
        }
       
       
      public void fight3(Fight fi,Fight2 figh){
          //boss打奥特曼
          fi.setblood(fi.getblood()-power);
          System.out.println(name+"正在攻击"+fi.getname()+" "+
                                                     fi.getname()+"血量减少了"+power+
                                                     "现在血量是"+fi.getblood());
          //boss打小怪兽
          figh.setblood(figh.getblood()-power);
          System.out.println(name+"正在攻击"+figh.getname()+" "+figh.getname()+"血量减少了"+power+
                                                     "现在血量是"+figh.getblood());
          if(fi.getblood()<=0&&figh.getblood()<=0){
              System.out.println(getname()+" win!");
          }
          else{
              fi.fighter1(figh, this);
             
      }
   
      }


}

         

猜你喜欢

转载自15700786134.iteye.com/blog/2213745
今日推荐