`

java类与对象

阅读更多

 

面向对象编程:就是在模拟现实生活。

 对象:只要是一个具体的物体或者一个具体的事物就是一个对象。
 举例:
  荷花
 会从那些方面去描述一个对象呢?
 特征:名字,年龄,身高,体重,性别,...
 行为(功能,用途):走路,吃饭,睡觉,学习,玩,...

物体根据  根据对象相似的特征和相似的行为进行归类。
 程序中的类:就是将生活中的对象进行一种抽象的定义。
  类包含两个部分:1.属性   2.方法(方法分为两类:1.构造方法   2.普通方法)
  类的属性对应的是对象的特征;类的方法对应的是对象的行为。 

3.类的格式
 public class 类名 {
  //属性定义格式
  private 数据类型 属性名;
  
  //构造方法定义格式
  public 类名构造方法名(数据类型 参数名,...){
   //代码
  }
  
  //普通方法定义格式
  public 返回值数据类型 方法名(数据类型 参数名,...){
   //代码
  }
 }

4.实例化对象和调用方法的格式
 实例化对象的关键字:new
 格式:
 类名  对象名  = new 构造方法名(参数值);

 调用方法的格式:
  对象名.方法名(参数值);

5.构造方法
 构造方法用途
  1.初始化属性值
  2.实例化对象
 
 构造方法和普通方法的区别
  1.返回值不同
  2.调用时间不同
  3.方法名不同
  4.用途不同

6.方法重载
 方法重装的原因        不同的对象会有同一种方法,要将他们进行区分
  
 方法重载的条件:
  1.在一个类中或者在有继承关系的父类和子类中;
  2.方法名必须要完全一致;
  3.方法所带的参数个数,参数类型,参数顺序必须要有一个不同。
  
 调用重载的方法:
  根据方法所带的参数个数,参数类型,参数顺序来区分方法的调用。

7.this关键字
 作用:
 1.当参数名和属性名相同时,可以使用this关键字来做区分,加了this的表示属性,没有加的则表示参数。
 2.调用构造方法,属性或者方法。
参数和属性名不同时可以不用this
         this.属性=参数
 this.name
 this.study();
 public 构造方法(String name){
  this(name,1);
 }
 
 Student stu = new 构造方法("a");
 Student stu2 = new 构造方法("a");
 
 
  this表示当前调用方法的对象

 

附带“德玛西亚与艾希对打”的代码

 

import java.util.Random;


public class fighting
{
	    

	
	private String name;//角色名字
	
	private int power;//攻击力量
	private int upPower;//初始攻击
	
	private int blood;//血量
	
	private int maxBlood;//血量上限
	
	private int upSpeed;//初始速度
	private int speed;//速度
	private int exp=0;//经验
	private int degree=1;//级别
             //获取属性
	//初始攻击值
	public int getUpPower()
	{
	this.upPower+=this.degree*2;
	return this.upPower;
	}
	//初始最大血量
	public int getmaxBlood()
	{
	this.maxBlood+=this.degree*10;
	return this.maxBlood;
	}
	//初始攻速
	public int getUpSpeed()
	{
	this.upSpeed+=this.degree;
	return this.upSpeed;
	}
	//等级初始
	public int getDegree()
	{
	this.degree=(this.exp+100)/100;
	return this.degree;
	}
	
	
	
	//设置和获取名字属性
	public void setName(String name)
	{
		this.name=name;
	}
	public String name()
	{
		return this.name;
	}
	//构造函数
	public fighting(String name ,int power,int maxBlood,int speed)
	{
	this.name = name;
	this.upPower=power;
	this.maxBlood=maxBlood;
	this.upSpeed=speed;
	} //攻击某人
	public void attack(fighting r)
	{
	//初始化攻击双方属性
	this.blood=this.getmaxBlood();
	this.speed=this.getUpSpeed();
	this.power = this.getUpPower();
	r.blood=r.getmaxBlood();
	r.speed=r.getUpSpeed();
	r.power = r.getUpPower();

	r.name=r.name();

	int i=0;
	Random rand = new Random();//产生随机数
	
	while(this.blood>0&&r.blood>0)
	{
	i++;
	if(i>10) break;//战斗10次结束
	if(this.speed>r.speed)//一方速度比另一方速快
	{
	r.blood=r.blood-this.power;//速度快的一方开始攻击
	System.out.println(this.name+"用q打了对方一下,对方减少了"+this.power);
	System.out.println(r.name+"你还剩余"+r.blood+"滴血");
	if(r.blood>0)//一击未死,对方开始进攻
	{
	this.blood=this.blood-r.power;
	System.out.println(r.name+"用技能q打了对手一下,血量减少"+r.power);
	System.out.println(this.name+"你还剩余"+this.blood+"滴血");
	}
	}
	else if(this.speed==r.speed&&rand.nextInt(10)>5)//产生一个10以内的随机数并且大于五,才能让对手进攻
	{
	r.blood=r.blood-this.power;
	System.out.println(this.name+"用技能w打了你一下,血量减少"+this.power);
	System.out.println(r.name+"你还剩余"+r.blood+"滴血");
	if(r.blood>0)
	{
	this.blood=this.blood-r.power;//剩余血量大于0,对手进攻
	System.out.println(r.name+"用技能q打了你一下,血量减少"+this.power);
	System.out.println(this.name+"你还剩余"+this.blood+"滴血");
	}
	}
	else
	{
	this.blood=this.blood-r.power;
	System.out.println(r.name+"用技能e打了你一下,血量减少"+r.power);
	System.out.println(this.name+"你还剩余"+this.blood+"滴血");
	if(this.blood>0)
	{
	r.blood=r.blood-this.power;
	System.out.println(this.name+"用技能r打了你一下,血量减少"+this.power);
	System.out.println(r.name+"你还剩余"+r.blood+"滴血");
	}
	}
	}
	//决定比赛的输赢的方法
	if(i>10||r.blood==this.blood)//当比赛的会和超过或者血量相等时
	System.out.println("此场为平局");
	else if(r.blood<=0)//对手的血量小于0
	{
		System.out.println(r.name+"你输了");


	
	this.exp=this.exp+1;//经验增长
	System.out.println(this.name+"你赢了");
	System.out.println(this.name+"你获得了1点经验");
	System.out.println(this.name+"你当前的等级是"+this.getDegree()  +"级 经验是"+exp);}
	else
	{
		System.out.println(this.name+"你输了");

		this.exp=this.exp+1;
		System.out.println(r.name+"你赢了");
		System.out.println(r.name+"你获得了1点经验");
		System.out.println(r.name+"你当前的等级是"+this.getDegree()+"级 经验是"+exp);
		
		
	}

	}
	
	
	
	
	
	
	


	
	} 


		   
		   
		   
	   
	   




public class winner {

	/**
	 * @param args
	 * @param  
	 */
//	public static void main(String[] args) 
//	{ 
//		
//		
//		// TODO Auto-generated method stub
//
//	}
//
//}
	public static void main(String[] arg)
	{

	fighting r1 = new fighting("艾希",100,350,8);//实例化一个对象r1
	fighting r2 = new fighting("德玛西亚",100,350,8);//实力化对象r2
	for(int i=0;i<10;i++)//打十个回合
	r1.attack(r2);//调用攻击函数
	}
}

 

分享到:
评论

相关推荐

    JAVA类与对象及数组习题

    JAVA类与对象及数组习题 JAVA类和对象及数组是JAVA编程语言的基础概念。下面是关于JAVA类和对象及数组的习题,涵盖了构造方法、继承、多重继承、变量声明、数组初始化等方面的知识点。 1. 构造方法的调用方式: ...

    java类与对象教学(2)

    在“java类与对象教学(2)”中,我们将深入探讨几个关键知识点:对象重构、`this`关键字、静态变量与静态方法,以及对象的进一步讨论和包的使用。 1. **对象重构**: 重构是改进代码结构的过程,不改变其外部行为,...

    java类与对象实例

    "java类与对象实例" 在 Java 中,类和对象是两个紧密相连的概念。类是一种蓝图,用于创建对象,而对象是类的一个实例。类描述了对象的基本结构,包括属性、方法和事件等。类设计的关键概念包括封装、继承和多态。 ...

    java类与对象的应用

    总之,Java类与对象是程序设计的关键元素,理解和掌握它们对于成为一名优秀的Java开发者至关重要。通过深入研究源码、利用合适的工具,并在实践中不断应用,我们可以不断提升对这一核心概念的理解和运用能力。

    java类与对象的基本概念

    类与对象的基本概念java类与对象的基本概念

    Java类与对象

    详细的描述了类和对象的相关内容,清晰明了,绝对的好PPT

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象...

    本科课程【java程序设计】实验2 - 类与对象编程练习_java类与对象实验_1 + 1=王的博客-CSDN博客.mht

    本科课程【java程序设计】实验2 - 类与对象编程练习_java类与对象实验_1 + 1=王的博客-CSDN博客.mht

    Java类与对象基本概念PPT教案学习.pptx

    Java类与对象基本概念PPT教案学习.pptx

    java面向对象、类与对象的定义笔记

    类是创建对象的根源,它定义了同一类对象共有的属性和方法。类中的属性(Attribute)可以理解为对象所拥有的变量,而方法(Method)则是对象可以执行的操作或行为。 对象(Object)是类的实例(Instance),是具有...

    Java类与对象2

    详细的描述了类和对象的相关内容,清晰明了,绝对的好PPT

    Java面向对象程序设计课后答案全解

    1. **类与对象**:Java中的基本构建块是类,它代表了现实世界中的事物或概念。对象则是类的实例,具有类定义的属性和行为。学习如何创建和使用类及对象,是理解Java面向对象编程的关键。 2. **封装**:封装是面向...

    java关于类和对象课件

    java关于类和对象课件,类的继承 方法的重写 Object类 对象转型 多态

    JAVA类和对象

    面向对象的基本概念 类声明、对象创建 参数传递 this引用 类的管理(包和JAR文件) 字符串类 数组

Global site tag (gtag.js) - Google Analytics