`
15700786134
  • 浏览: 4747 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

浅谈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);
             
      }
   
      }


}

         

分享到:
评论

相关推荐

    总结一——浅谈Java的类与对象

    NULL 博文链接:https://xiangpin.iteye.com/blog/1668307

    浅谈java面向对象和引用

    浅谈java面向对象和引用,初学java的一些疑惑点

    浅谈Java面向对象程序设计.pdf

    浅谈Java面向对象程序设计.pdf

    浅谈Java的输入输出流

    浅谈Java输入输出流的使用。  Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及...

    浅谈java包的使用

    java包的使用。在自定义的java包中调用其他的类对象的方法。这是我今天下午的学习心得。希望可以给大家点帮助。

    浅谈Java中的对象和对象引用

    在Java中,有一组名词经常一起出现,它们是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然。我们来一起了解一下对象和对象引用之间的区别和联系。  1....

    浅谈对象、类.docx

    浅谈对象、类。在学习Java的初期,我们个别人会因刚入门而对对象与类理解陷入困难,在此我用一个例子来表达我的理解。

    浅谈Java内存区域与对象创建过程

    下面小编就为大家带来一篇浅谈Java内存区域与对象创建过程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    浅谈Java实现面向对象编程java oop

    主要介绍了浅谈Java实现面向对象编程java oop,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    浅谈Java实体对象的三种状态以及转换关系

    主要介绍了浅谈Java实体对象的三种状态以及转换关系,具有一定参考价值,需要的朋友可以,看看。。

    Java同步机制浅谈

    Java 对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized 关键 字就可以轻松地解决多线程共享数据同步问题。到底如何?――还得对synchronized 关键字 的作用进行深入了解才可定论。 总的说来,...

    浅谈Java的发展及特点

    现在是计算机网络时代,随着计算机的发展,Java己经成为一个主流,从它的开发到现在的成熟,经过几个阶段的探索,才完成...它与别的编辑语言来比具有其自己的特点:平台无关性、安全性、面向对象、多线程、可扩展性等.

    浅谈java面向对象(类,封装,this,构造方法)

    下面小编就为大家带来一篇浅谈java面向对象(类,封装,this,构造方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    浅谈java对象之间相互转化的多种方式

    主要介绍了浅谈java对象之间相互转化的多种方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    浅谈java中的对象、类、与方法的重载

    本文主要对java中的对象、类、与方法的重载进行简要概述,具有一定的参考价值,需要的朋友一起来看下吧

    浅谈java面向对象中四种权限

    主要介绍了浅谈java面向对象中四种权限,具有一定借鉴价值,需要的朋友可以参考下。

    浅谈java web中常用对象对应的实例化接口

    下面小编就为大家带来一篇浅谈java web中常用对象对应的实例化接口。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    浅谈Java回收对象的标记和对象的二次标记过程

    主要介绍了浅谈Java回收对象的标记和对象的二次标记过程的相关内容,小编觉得还是挺不错的,这里给大家分享一下,需要的朋友可以参考。

    简单谈谈Java类与类之间的关系

    类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就简单给大家介绍一下。

Global site tag (gtag.js) - Google Analytics