类与对象

类与对象

来自一个小白的理解

初学Java第一个遇到的知识点就是类和对象,虽然这个的理解并我们的编程的主体,但是我认为在编程中编写出一个好的程序,不仅仅需要的是好的算法,好的方法,对基本概念的理解也非常重要。
下面我将一个简单的battle程序来举例介绍。因为类包含对象,所以我们先来认识一下对象。

对象

通俗来说对象就是–我们所编写程序的承受者,可以是一个人,一个无生命实物等等,所以让我们想想一个事物应该有哪些东西?大小,颜色,动作……因此我们把描述对象分为两个部分:属性和功能。
属性:对象的基本特征,大小,颜色……属性的定义就像绘画一样画出一个东西的过程(当然我们只需要画出程序所需属性)。
例如:battle的程序我们首先就需要画出我们的battle人物,在battle中人物需要哪些属性?在下面的程序中我们就创建了三个对象:libai,luban,zhuzai。

package battle;
public class PK {
	//主方法
	public static void main(String[] arg){
		LB luban=new LB();
		LB libai=new LB();
		LB zhuzai=new ZZ();
		   
		libai.name ="李白";
		luban.name ="鲁班";
		libai.bat =20;
		luban.bat =20;
		zhuzai.bat=20;
		zhuzai.name="主宰";
		zhuzai.blood=100;
		
		int n=1;
		while(n<4){
			System.out.println("现在是第"+n+"轮!");
			libai.blood =(int)(Math.random()*100)+100;
			luban.blood =(int)(Math.random()*100)+100;	
			libai.Bat(luban);
			n++;
		}
		if(libai.x>luban.x){
			System.out.println("李白晋级!");
			libai.blood =(int)(Math.random()*100)+100;
			zhuzai.Bat(libai);
			
		}else{
			System.out.println("鲁班晋级!");
			luban.blood =(int)(Math.random()*100)+100;
			zhuzai.Bat(luban);
		}
	}
}

那么类是什么呢?类相当于对象的一个集合。将具有相同类型的属性的对象放在一个类中进行定义。比如在battle程序中两个对战的人物所需要的属性类型是一样的,都是名字、血量值、战斗值。这时候我们只需定义一个类,然后在主方法里面创建两个对象,赋两个值。就像是用相同的模板,用不同颜色填色创造出不同的图画.比如我们创建的李白,鲁班两个对象其实具有相同的属性类型所以我们可以吧他们归为一个类,在一个类里面进行属性定义,方法构建。主宰具有不同的方法所以我们用另一个类来构建。下面的程序其实就是我们构建的两个不同类。

package battle;
public class LB {
	//定义名字,血量值,战斗值
		public String name;
		public  int blood;
		public  int bat;
		public  int x;
		//攻击方法
		public void Bat(LB luban){
			while(blood>0 && luban.blood>0){
				luban.blood-=bat;
				if(luban.blood>0){
					blood-=bat;
				}
				System.out.println(name+blood+";"+luban.name+luban.blood);
			}
			if(blood<=0){
				System.out.println(luban.name+"胜利");
				x++;
			}else{
				System.out.println(name+"胜利");
				luban.x++;
			}
		}
}

package battle;

public class ZZ extends LB{
	
	public void Bat(LB luban){
		while(blood>0 && luban.blood>0){
			luban.blood-=2*bat;
			if(luban.blood>0){
				blood-=bat;
			}
			System.out.println(name+blood+";"+luban.name+luban.blood);
		}
		if(blood<=0){
			System.out.println(luban.name+"胜利");
		}else{
			System.out.println(name+"胜利");
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值