java 类与对象_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 类与对象

java 类与对象

 2013/11/27 21:28:01  Only_one.zy  程序员俱乐部  我要评论(0)
  • 摘要:生活中,具体的某个事物就是一个对象,而根据对象相似的特征以及行为则能进行归类。在JAVA这一面向对象编程的语言中,类与对象的概念实际和现实生活中的类与对象极其相似,也可以说就是生活中类与对象的一种计算机语言化。在JAVA中,对象就是类的实例化。类具有属性和方法,而属性大多私有,方法大多公有,这也和JAVA封装有关。而对于私有属性,既然不能直接调用,那么也就只能通过公有的方法来对私有属性进行操作。对于一个类除去属性和普通方法,还有一个最为关键的东西,那就是构造方法,顾名思义
  • 标签:Java

? ? 生活中,具体的某个事物就是一个对象,而根据对象相似的特征以及行为则能进行归类。在JAVA这一面向对象编程的语言中,类与对象的概念实际和现实生活中的类与对象极其相似,也可以说就是生活中类与对象的一种计算机语言化。在JAVA中,对象就是类的实例化。

? ? 类具有属性和方法,而属性大多私有,方法大多公有,这也和JAVA封装有关。而对于私有属性,既然不能直接调用,那么也就只能通过公有的方法来对私有属性进行操作。

? ? 对于一个类除去属性和普通方法,还有一个最为关键的东西,那就是构造方法,顾名思义,其就是在对象创建之时对其进行的初始化。说到类的创建,其中的new 关键字则是负责开辟一个新的内存空间,而构造方法则是将类实例化,并初始化属性。至于构造方法与普通方法的区别,其最重要的是构造方法的名字必须为类名,并且无返回值类型

? ? 对于同名方法形参不同,则叫做方法的重载,而方法的重载则大大加大了程序的灵活性。顾名思义,方法重载也就是方法再次定义,但再次定义之时除去参数不一致以外,其他均是相同。

? ? 在类中,还有一个关键字,其叫做this。this,在英文中是这个的意思,是一个指示代词。而在类中,this代表的则是对象。

? ? 在学习类与对象的练习中,遇到的一个问题,就是怎么从这个类引用另一个类中构建的对象。其实很简单,通过在方法中增加类的形参就可以了。就与String一样,String也是一个类,既然String 也能写在方法中,那么其他自己定义的类又有何不可呢?

? ? 下面就是对类与对象所编的一个坑爹程序:

?

class="java" name="code">public class 盖伦和寒冰的回合制打斗 {
	public static void main(String [] args){
		Dema gailun=new Dema(3500,18,180,150);
		Hanbing aixi=new Hanbing(1800,18,380,80);
		int i=0;
		String dema="qweaaraqaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",hanbing="rwaaawaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
		
		while(aixi.getBlood()>0 && gailun.getBlood()>0){
			i++;
			//开始攻击   埃希先上
			if (i%2==1){
				if(hanbing.charAt(i/2+1)=='a')
					aixi.a(gailun);
				else if(hanbing.charAt(i/2+1)=='w')
					aixi.w(gailun);
				else 
					aixi.r(gailun);
				System.out.println(aixi.getName()+"攻击"+gailun.getName()+","+gailun.getName()+"还剩"+gailun.getBlood()+"点血");
			}
			else{
				if(dema.charAt(i/2)=='a')
					gailun.a(aixi);
				else if (dema.charAt(i/2)=='q')
					gailun.q(aixi);
				else if (dema.charAt(i/2)=='w')
					gailun.w(aixi);
				else if (dema.charAt(i/2)=='e')
					gailun.e(aixi);
				else 
					gailun.r(aixi);
				System.out.println(gailun.getName()+"攻击"+aixi.getName()+","+aixi.getName()+"还剩"+aixi.getBlood()+"点血");
			}

		}
		if (aixi.getBlood()<=0) 
			System.out.println(gailun.getName()+" 终结 "+aixi.getName()+","+gailun.getName()+"已经接近神!");
		else 
			System.out.println(aixi.getName()+" 终结 "+gailun.getName()+","+aixi.getName()+"已经接近神!");
	}

}




public class Dema{
	//德玛西亚盖伦的基本属性
	private String name="盖伦";
	private int blood;
	private int level;
	private int gong;
	private int fang;
	
	//构造方法
	public Dema(int blood,int level,int gong,int fang){
		
		this.blood=blood;
		this.level=level;
		this.gong=gong;
		this.fang=fang;
	}
	
	public String getName(){
		return name;
		
	}
	//获得与设置血量的方法
	public int getBlood(){
		return blood;
	}
	public void setBlood(int blood){
		this.blood=blood;
	}
	//获得攻击力的方法
	public int getGong(){
		return gong;
	}
	//获得防御力的方法
	public int getFang(){
		return fang;
	}
	
//平A与技能的方法
	//盖伦平A的方法
	public void a(Hanbing hanbing){
		hanbing.setBlood(hanbing.getBlood()-gong+hanbing.getFang());
	}
	//盖伦Q的方法
	public void q(Hanbing hanbing){
		hanbing.setBlood(hanbing.getBlood()-(int)(gong*1.4)+hanbing.getFang());
	}
	public void w(Hanbing hanbing){
		hanbing.setBlood(hanbing.getBlood()-(int)(gong*1.5)+hanbing.getFang());
	}
	public void e(Hanbing hanbing){
		hanbing.setBlood(hanbing.getBlood()-(int)(gong*1.6)+hanbing.getFang());
	}
	public void r(Hanbing hanbing){
		hanbing.setBlood(hanbing.getBlood()-(int)(gong*1.85)+hanbing.getFang());
	}
}





public class Hanbing {
	private String name="埃希";
	private int blood;
	private int level;
	private int gong;
	private int fang;
	
	
	//构造方法
	public Hanbing(int blood,int level,int gong,int fang){
		
		this.blood=blood;
		this.level=level;
		this.gong=gong;
		this.fang=fang;
	}
	
	public String getName(){
		return name;
	}
	//防御获取

	//获得与设置血量的方法
	public int getBlood(){
		return blood;
	}
	public void setBlood(int blood){
		this.blood=blood;
	}
	//获得攻击力的方法
	public int getGong(){
		return gong;
	}
	//获得防御力的方法
	public int getFang(){
		return fang;
	}
	
//平A与技能的方法	
	public void a(Dema dema){
		dema.setBlood(dema.getBlood()-gong+dema.getFang());
	}
	public void w(Dema dema){
		dema.setBlood(dema.getBlood()-(int)(gong*1.5)+dema.getFang());
	}
	public void r(Dema dema){
		dema.setBlood(dema.getBlood()-(int)(gong*1.7)+dema.getFang());
	}

}

?

??

?

?

?

发表评论
用户名: 匿名