`

类和对象总结

 
阅读更多
一、基本概念
:生活中把具有相似特征和行为的事物分为一类。
    程序中的类就是一个模型,为对象的创建做准备。
    类中包括属性和方法:
        属性——事物的特征,如颜色、名字、大小等;
        方法——事物的行为,如名字的获取、学习行为、pk行为等。

对象:类中某个具体的事物是一个对象。

二、类的创建:
1、类的格式
  public class 类名{
       //定义属性
       //定义方法
  }
  *类的命名要和文件名一致,首字母要大写。
  *一个类中不可以定义两个完全一样的方法。

  定义属性的格式  private 数据类型 类名;
  定义方法的格式 1>普通方法
                    public 返回值类型 方法名(参数类型 参数名,...){
                      方法体
                      }
                 2>构造方法
                    public 方法名(参数类型 参数名,...){
                      方法体
                      }
  普通方法和构造方法的区别
作用方法名返回值方法的调用
普通方法表示一般行为任取必须有返回值类型不能调用构造方法
构造方法给属性设置初始值;创建一个对象和类名一致没有返回值类型;返回的是地址可调用普通方法
                  
  2、实例化对象
   格式  
       类名 对象名 = new 类名();
   属性赋值
       对象名.属性名=属性值;
   普通方法的调用
       对象名.方法名(参数);
   构造方法的调用必须用new关键字
       new 方法名(参数);

三、方法的重载
    条件:a.方法名相同;
          b.参数个数、数据类型、顺序至少有一个不同。
    作用:同一个类中有不同的对象,不同对象对于同一个事物的行为不一定相同;
          同一个对象对于同一个事物可能有不同的表现。

四、this关键字
    作用:a.当属性名和变量名相同时,区分属性和变量(this在类中用来指代当前调用方法的对象);
          b.调用构造方法(必须是在构造方法中用this调用构造方法,对this的调用必须是构造函数中的第一个语句)。

五、值传递和引用传递
    值传递  方法执行中形参值的改变不影响实参的值。
            用于八个基本数据类型(int,short, long, byte, char, float, double, boolean)、String.
    引用传递  实际上是对地址的传递,方法执行中形参值的改变会影响实参的值。
              用于数组、接口、所有用class定义的类。

如以下程序表示Soldier和Boss对战过程,当有一方血量为0时,另一方胜出,游戏结束。
其中Soldier和Boss是两个类名,名字、血量、技能都是属性;名字、血量、技能的设置和获取,以及pk过程都是行为。

定义一个Soldier类

public class Soldier {

	/**
	 * 定义Soldier类的属性
	 */
	private String name;  //定义姓名属性
	private String skill;  //定义技能属性
	private int blood;  //定义血量属性
	
	/**
	 * 定义Soldier类设置name,skill,blood的方法
	 * @param 把name赋给name属性
	 *        把skill赋给skill属性
	 *        把blood赋给blood属性
	 */
	public Soldier(String name,int blood){
		this.name=name;    
		this.blood=blood;
	}
	public void setName(String n){
		name=n;
	}
	public void setSkill(String n){
		skill=n;
	}
	public void setBlood(int n){
		blood=n;
	}
	/**
	 * 定义Soldier获得name,skill,blood属性的方法
	 */
	public String getName(){
		return name;
	}
	public String getSkill(){
		return skill;
	}
	public int getBlood(){
		return blood;
	}
	/**
	 * 定义Soldier攻击的方法
	 */
	public void Pk(Soldier sol,Boss bos,int i){
		bos.setBlood(bos.getBlood()-i);
		switch(i){
		case 1:
			sol.setSkill("普通方法");
		    System.out.println(sol.getName()+"用"+sol.getSkill()+"攻击"+
		    bos.getName()+","+bos.getName()+"减少"+i+"滴血,"+bos.getName()+"剩余"+bos.getBlood()+"滴血。");
		break;
		case 2:
			sol.setSkill("加强方法");
		    System.out.println(sol.getName()+"用"+sol.getSkill()+"攻击"+
		    bos.getName()+","+bos.getName()+"减少"+i+"滴血,"+bos.getName()+"剩余"+bos.getBlood()+"滴血。");
		break;
		}
	}
	
}
	


定义一个Boss类,其方法与Soldier基本一致
public class Boss {
	/**
	 * 定义Boss类的属性
	 */
	private String name;  //定义姓名属性
	private String skill;  //定义技能属性
	private int blood;  //定义血量属性
	
	/**
	 * 定义Boss类设置name,skill,blood的方法
	 * @param 把name赋给name属性
	 *        把skill赋给skill属性
	 *        把blood赋给blood属性
	 */
	public Boss(String name,int blood){
		this.name=name;    
		this.blood=blood;
	}
	public void setName(String n){
		name=n;
	}
	public void setSkill(String n){
		skill=n;
	}
	public void setBlood(int n){
		blood=n;
	}
	/**
	 * 定义Boss获得name,skill,blood属性的方法
	 */
	public String getName(){
		return name;
	}
	public String getSkill(){
		return skill;
	}
	public int getBlood(){
		return blood;
	}
	/**
	 * 定义Boss攻击的方法
	 */
	public void Pk(Boss bos,Soldier sol,int i){
		sol.setBlood(sol.getBlood()-i);
		switch(i){
		case 1:
			bos.setSkill("普通方法");
		    System.out.println(bos.getName()+"用"+bos.getSkill()+"攻击"+
		    sol.getName()+","+sol.getName()+"减少"+i+"滴血,"+sol.getName()+"剩余"+sol.getBlood()+"滴血。");
		break;
		case 2:
			bos.setSkill("加强方法");
			System.out.println(bos.getName()+"用"+bos.getSkill()+"攻击"+
				sol.getName()+","+sol.getName()+"减少"+i+"滴血,"+sol.getName()+"剩余"+sol.getBlood()+"滴血。");
		    break;
		}
	}
	
}

定义一个Game类,用于运行pk过程
public class Game {
/**
 * 定义主函数入口
 */
	public static void main(String[] args){
		/**
		 * 分别实力化Soldier类和Boss类对象sol和bos
		 */
		Soldier sol = new Soldier("战士",10);
		Boss bos = new Boss("怪兽",10);
		//实例化一个随机数类对象rand1,表示Soldier和Boss出击的方式的随机性
		Random rand1 = new Random();
		//实例化一个随机数类对象rand2,表示每次是Soldier或Boss出击的随机性
		Random rand2 = new Random();
		
		while(sol.getBlood()>0&&bos.getBlood()>0){
			int i = rand1.nextInt(2);
			int j = rand2.nextInt(2);
			switch(j){
			case 0:
				sol.Pk(sol,bos,i+1);
			if(bos.getBlood()<=0)
			System.out.println(sol.getName()+"胜利了!");
			break;
			case 1:
				bos.Pk(bos,sol,i+1);
		    if(sol.getBlood()<=0)
		    System.out.println(bos.getName()+"胜利了!");
		    break;
			} 
		};
	}
}
分享到:
评论

相关推荐

    Java中的类和对象总结

    ### Java中的类和对象总结 #### 一、类与对象的概念 在面向对象编程中,类(Class)和对象(Object)是两个核心概念。类是对象的抽象模板,它定义了对象的数据结构(即属性)和行为(即方法)。而对象则是类的具体...

    类和对象、构造方法总结

    在编程领域,面向对象编程(Object-Oriented Programming, OOP)是一种常见的编程范式,其中类和对象是核心概念。本篇文章将深入探讨类与对象以及构造方法的相关知识点。 首先,类是对象的蓝图,它定义了一组特性和...

    C++ 类与对象习题

    - **类定义**: C++中用来描述一类对象的共同特征和行为的概念。它是一个抽象数据类型,包含了数据成员和成员函数。 - **成员函数**: 定义在类中的函数,用于实现类的行为。 - **数据成员**: 定义在类中的变量,用于...

    类对象和类指针

    总结,类对象和类指针在不同场景下各有优势。类对象更适合于轻量级对象和效率要求高的场合,而类指针则适用于需要动态绑定和管理大量对象的情况。理解并熟练运用这两种方式,能够帮助我们更好地设计和实现面向对象的...

    C++ 类和对象

    总结一下,C++的类和对象是实现面向对象编程的基础。类定义了对象的结构和行为,而对象是类的实例,拥有类定义的属性和方法。理解并熟练掌握类和对象的使用,对于任何C++程序员来说都是至关重要的。通过阅读《C++类...

    类与对象-java实验报告

    本次实验的目的是深入理解和掌握Java编程语言中的类与对象的概念,通过设计和实现一系列几何图形类,包括点、直线、三角形、矩形、正方形、圆形和椭圆,来实践面向对象的设计方法。实验要求学生不仅能够创建数据域和...

    类和对象的基本概念和用法

    类和对象的基本概念和用法 类和对象是面向对象编程(Object-Oriented Programming,OOP)的基础概念。...总结:在类作用域里面,不管什么属性的成员都能访问,在类外面,只能访问公有成员,不能访问私有和保护成员。

    面向对象编程:类和对象

    本文将深入探讨C#2005中面向对象编程的基石——类和对象,通过解析给定文件的信息,提炼并扩展相关知识点。 ### 类的概念 类在面向对象编程中扮演着中心角色,它不仅封装了数据,还封装了对这些数据进行操作的方法...

    使用类的对象还是指针

    在这篇文章中,我们将总结了使用类的对象还是指针的主要区别和使用场景,希望能够帮助有疑问的朋友更好地理解和应用。 首先,我们需要了解类的对象和指针的存储空间上的区别。使用new关键字创建的对象存储在堆上,...

    类与对象的关系

    在C#中,创建类意味着定义了一组属性和方法,这些属性和方法描述了该类的对象将会拥有什么数据和可以执行什么行为。在面向对象的程序设计中,类是对现实世界中具有相似性质的对象的抽象和封装。 在上机实验中,学生...

    类与对象实验

    第二个例子展示了类的组合,即一个类`Father`中包含了两个`Son`对象`s1`和`s2`。`Father`类的构造函数接受三个整型参数,分别用于初始化`Father`的`age`以及`Son`对象`s1`和`s2`的`age`。在`main()`中,创建了一个`...

    对于类和对象的个人理解

    总结来说,类和对象是面向对象编程的核心,它们定义了软件组件的结构和行为。通过合理地设计和实现类与对象,我们可以构建出复杂、模块化的软件系统。在开发过程中,借助源码管理和开发工具,我们可以更高效地实现和...

    java类与对象实验报告.docx

    在Java编程语言中,类是面向对象编程的基础,它用于封装数据和操作这些数据的方法。在给定的实验中,有两个主要的类被创建:`complex1` 和 `Complex`,它们都用来表示复数,并提供了复数的加法和减法运算。 1. **...

    Java面向对象总结

    ### Java面向对象总结 #### 一、继承 继承是面向对象编程中的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现了代码的复用。 1. **子类继承父类就拥有了父类的属性和方法**:当一...

Global site tag (gtag.js) - Google Analytics