`

Java类与对象小结

阅读更多

类与对象小结

      Java编程是面向对象的面向对象的编程过程,即模拟现实生活的各种事和物。既然如此,生活中的对象和Java中的对象有什么联系呢?

      现实生活中,对象要是生活中具体的某一个物体或者具体的某一个事物,例如:一个学生,其特征包括姓名,性别,学分,年龄等,其行为包括考试,睡觉,学习等;一个篮球,其特征包括颜色,材料,重量等,其用途有娱乐,比赛等。Java中的对象包括属性和方法,属性便相当于现实生活中对象的特征,方法相当于其行为或用途。下面通过一个有趣的程序了解Java中的类和对象。

 

 

//战士与怪兽的战斗

 

//定义一个战士类
public class Soldier {

 /**战士的属性包括血量和姓名,方法为战斗方法
  * @param args
  */
 //定义属性
 String name;//姓名
 int blood;//血量
 
 //定义设置和调用属性值的方法
 public void setName(String name){
  this.name = name;
 }//设置名字的方法
 public String getName(){
  return name;
 }//返回名字的方法
 public void setBlood(int blood){
  this.blood = blood;
 }//设置血量的方法
 public int getBlood(){
  return blood;
 }//返回血量的方法
 
 /*
  * 定义攻击怪兽的战斗方法
  */
 public void fight(Monster mo){
  mo.blood--;
  System.out.println(this.getName()+"  攻击了  "+mo.getName()+"  ");
  System.out.println(mo.getName()+" 血量减一    ");
  System.out.println("战士血量为  "+this.getBlood()+"     怪兽的血量为  "+mo.getBlood());
  System.out.println("-----------------------------------------------------------");
 }

}

 

 

//定义一个怪兽类

public class Monster {
 /**怪兽的属性包括血量和姓名,方法为战斗方法
  * @param args
  */
 //定义属性
 String name;//姓名
 int blood;//血量
 
 //定义设置和调用属性值的方法
 public void setName(String name){
  this.name = name;
 }//设置名字的方法
 public String getName(){
  return name;
 }//返回名字的方法
 public void setBlood(int blood){
  this.blood = blood;
 }//设置血量的方法
 public int getBlood(){
  return blood;
 }//返回血量的方法
 
 /*
  * 定义攻击战士的战斗方法
  */
 public void fight(Soldier so){
  so.blood--;
  System.out.println(this.getName()+"  攻击了  "+so.getName()+"  ");
  System.out.println(so.getName()+" 血量减一    ");
  System.out.println("战士血量为  "+so.getBlood()+"     怪兽的血量为  "+this.getBlood());
  System.out.println("-----------------------------------------------------------");
 }

}

 

 

//定义一个包含程序入口的Test类

 

public class Test {

 /**定义程序入口
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //实例化一个战士对象
  Soldier so = new Soldier();
  so.setName("雷欧");//设置战士名字
  so.setBlood(10);//设置战士血量
  
  //实例化一个怪兽对象
  Monster mo = new Monster();
  mo.setName("哥斯拉");//设置怪兽名字
  mo.setBlood(8);//设置怪兽血量
  
  Test ts = new Test();
  //开始攻击
  ts.VS(mo,so);

 }
 
 //定义战斗平台
 public  void VS( Monster mo,Soldier so){
  //攻击前判断双方血量是否均大于零
  while((mo.blood>0)&&(so.blood>0)){
   mo.fight(so);//怪兽攻击战士 
   if(so.blood<=0){
    System.out.println(mo.getName()+"   胜利了 !");
    break;
   }//若战士血量为零,则怪兽胜利,跳出循环
    
   so.fight(mo);
   if(mo.blood<=0){
    System.out.println(so.getName()+"   胜利了 !");
    break;
   }//若战士血量为零,则怪兽胜利,跳出循环
    
  }
  //if(n1.blood<=0)
   //System.out.println(n2.getName()+"胜利!");
  //else
   //System.out.println(n1.getName()+"胜利!");
 
 }


}

 

 

 

 

 

 

 

 

 

运算结果 :

 

哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  9     怪兽的血量为  8
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  9     怪兽的血量为  7
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  8     怪兽的血量为  7
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  8     怪兽的血量为  6
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  7     怪兽的血量为  6
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  7     怪兽的血量为  5
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  6     怪兽的血量为  5
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  6     怪兽的血量为  4
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  5     怪兽的血量为  4
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  5     怪兽的血量为  3
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  4     怪兽的血量为  3
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  4     怪兽的血量为  2
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  3     怪兽的血量为  2
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  3     怪兽的血量为  1
-----------------------------------------------------------
哥斯拉  攻击了  雷欧  
雷欧 血量减一    
战士血量为  2     怪兽的血量为  1
-----------------------------------------------------------
雷欧  攻击了  哥斯拉  
哥斯拉 血量减一    
战士血量为  2     怪兽的血量为  0
-----------------------------------------------------------
雷欧   胜利了 !

 

 程序结束。

 

      程序中定义了两个战斗对象:战士和怪兽,通过对像的属性和方法,展示了双方的战斗情景。初学者可通过这个程序对Java中类与对象的概念进行初步的认识小结。

分享到:
评论

相关推荐

    java面向对象编程总结

    面向对象编程是 Java 的核心特性,它是一种设计和组织代码的方式,强调将数据和操作数据的方法封装在一起。本文将深入探讨 Java 中面向对象编程的主要概念和机制。 首先,面向对象的思维模式要求我们分析问题,识别...

    JAVA类与对象实验报告(2).doc

    JAVA 类与对象实验报告 一、类的定义和使用 在 JAVA 中,类是面向对象编程的基本单元。类的定义包括类的声明、成员变量的声明、构造方法的声明和成员方法的声明。在本实验中,我们定义了一个 Circle 类,实现了 ...

    JAVA IO流小结

    JAVA IO流小结 JAVA IO流是指Java语言中用来实现输入/输出操作的机制。IO流是指任何有能力产出数据的数据源对象或者有能力接收数据的数据源对象。他屏蔽了实际的I/O设备处理数据的细节。 一、流的定义和分类 流是...

    java异常机制小结

    Java 异常机制小结 Java 异常机制是 Java 语言中一个非常重要的方面,也是程序设计的一大难点。Java 语言在设计的当初就考虑到异常处理的框架的方案,使得所有的异常都可以用一个类型来表示,不同类型的异常对应...

    Java面向对象重要概念小结.docx

    构造器是一个与类同名的特殊方法,用于初始化新创建的对象。每个类可以有一个或多个构造器,根据需要提供不同的初始化参数。 7. **访问修饰符**: 包括public、protected、default(包访问权限)和private,它们...

    Java中类的继承学习小结

    下面是对"Java中类的继承学习小结"的详细讲解。 首先,类的继承使用关键字`extends`来实现。子类(也称为派生类)声明时,会指定一个父类(或超类): ```java public class DerivedClass extends BaseClass { //...

    实验5 JAVA常用类.doc

    - **String** 类在Java中是不可变的,这意味着一旦创建了String对象,就不能改变它的值。常用的方法包括 `concat()`、`substring()`、`indexOf()`、`replace()` 等。 - **StringBuffer/StringBuilder** 是可变的...

    Java 正则表达式小结

    - Java中的正则表达式主要通过`java.util.regex`包来实现,包括`Pattern`、`Matcher`和`PatternSyntaxException`等类。 2. **Pattern类** - `Pattern`类代表正则表达式模式,它是编译后的正则表达式。使用`...

    java集合小结

    ### Java集合小结 #### 一、集合的概念与重要性 集合是Java编程语言中用于存储、管理和操作数据的一种重要工具。它提供了多种数据结构来适应不同的应用场景,从而有效地提高程序开发效率。从数据结构的角度来看,...

    C#与java相似点和差异小结.doc

    以下是关于这两种语言相似点和差异的小结: 1. **源文件约定**: - **C#** 允许一个源文件(.cs)中包含多个顶级公共类,文件名不必与类名相同。 - **Java** 则要求每个源文件(.java)只能有一个顶级类,且文件名...

    Java个人学习小结

    ### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...

    类的使用,学习,小结 java定义一个学生类

    在Java编程语言中,类是面向对象编程的基础。类是一种数据结构,它包含了数据(也称为属性或成员变量)和操作这些数据的方法(也称为成员函数或行为)。在这个例子中,我们看到一个简单的名为`A`的学生类的定义,这...

    java小结

    #### 小结 通过以上内容,我们对Java的基础知识有了更深入的理解。了解这些基础知识对于编程非常重要,特别是对于初学者来说。掌握了这些概念后,你可以更好地理解和编写Java代码,同时也能避免一些常见的错误和...

    JAVA日期判断方法小结

    "JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...

    Java面向对象教程

    以上内容只是Java面向对象编程的一小部分,马士兵教授的教程会更深入地探讨这些概念,并结合实例进行讲解,帮助开发者更好地理解和应用面向对象技术。通过学习和实践,你可以掌握创建高效、可维护的Java应用程序的...

    java String类常用方法练习小结

    【Java String类常用方法详解与实战】 在Java编程语言中,`String`类是一个非常重要的类,它代表不可变的字符序列。所有的字符串字面值(例如:"abc")都是`String`类的实例。本篇文章将深入探讨`String`类的一些...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 实体域对象的其他持久化模式...

    JAVA程序:接口小结

    本文档“JAVA程序:接口小结”很可能是对Java接口的全面总结,包含了相关的代码示例,帮助学习者深入理解和运用接口。 接口在Java中的主要特性包括: 1. **接口是完全抽象的**:接口中的所有方法默认都是抽象的,...

    JAVA 模块知识小结

    Hibernate是一个对象关系映射(ORM)框架,用于将Java对象映射到数据库中的表格。它简化了数据库操作,让开发者可以使用Java的方式操作数据库,而不需要编写大量的SQL语句。Ibatis是一个轻量级的ORM框架,相较于...

Global site tag (gtag.js) - Google Analytics