`
狼迹天涯
  • 浏览: 6404 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

类和对象

    博客分类:
  • java
阅读更多
       

 7月6日:类和对象

 

1、类与对象的概念:

     类:生活中的一类事物。例如:飞机,汽车,电脑等等。
     对象:类中特定的某一个。例如:桌子上的那支笔,我的这本书,你这个人等等。

 总的来说:
     类是泛指在某些方面具有某些相似的属性的所有事物。比如:人(类),交通工具(类)。
     对象是特指“类”中的某一个,比如:人(类)中的某一个(你、我、他),电脑(类)中的某一个(我正在使用的这台电脑)
  
2、类

      生活中的类一定是具有某些共同的特征的事物的集合。而这些特征在程序中被定义为属性和方法。
     属性和方法就是类在程序中的组成。 

 

3、类的基本格式

public class 类名{
	
		//定义属性的格式
		private 数据类型 属性名;
	}

 

    类中可定义的访问修饰符有4种:public(公有的),private(私有的),默认的(int...),protected(受保护的)
    例如:private String name;
               //在类中的属性尽量定义为私有的。

     注:因为所有的属性都是私有的。故需要定义一个设置属性值的方法(如下)(从而才可以在类的外面进行赋值属性,调用属性。。)

//方法的格式
		public 返回值数据类型 方法名(数据类型 形参名,...){


		}

		public String setName(String n){
			name=n;

		}
		//赋值属性的方法
		public String getName(){

			return name;
		}
		//获取属性的方法		
	}

 

注:一个“.java”文件中只写一个类,一个方法中只做一件事

 

4、实例化对象和调用方法的格式
     实例化对象的关键字是:new


 格式:
        类名 对象名=new 类名();


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

 

        注:

        java中只有两种数据类型,

       1、基本数据类型(int char等)
       2、引用数据类型(多为类名)

 

5、对象也可作为参数。定义的类也可作为数据类型。多在传参时使用。
                       例如:

  public void teach(student s){
		
	   //方法体
  }

 
  代码示例:战斗小游戏。

 

public class Fight{
	//创建一个Fight类
	
	//定义属性(特征)
	private String name;
	private int hp;
	

	//定义方法(行为)
	//定义一个设置姓名的方法
	public void setName(String n){
		
		name=n;//赋值

		//n为形参名
	}
	
	//定义一个获取姓名的方法
	public String getName(){
		
		return name;

	}
	
	//定义一个设置血量的方法
	public void setHp(int h){

		hp=h;

	}

	//定义一个获取血量的方法
	public int getHp(){

		return hp;

	}

	//定义一个战斗方法
	public void fight(Boss b){

		System.out.println(b.getName()+"对"+getName()+"造成了10点伤害");
		hp-=10;

		//b.setHp(b.getHp()-10);
		//调用对方血量的方法

	}

}

 

 

public class Boss{
	//创建一个Boss类。


	//定义属性(特征)
	private String name;
	private int hp;
	

	//定义方法(行为)
	//定义一个设置姓名的方法
	public void setName(String n){
		
		name=n;//赋值

		//n为形参名
	}
	
	//定义一个获取姓名的方法
	public String getName(){
		
		return name;

	}
	
	//定义一个设置血量的方法
	public void setHp(int h){

		hp=h;

	}

	//定义一个获取血量的方法
	public int getHp(){

		return hp;

	}

	//定义一个战斗方法
	public void fight(Fight f){

		System.out.println(f.getName()+"对"+getName()+"造成了7点伤害");
		hp-=7;
		
		//f.setHp(s.getHp()-7);
		//调用对方血量的方法

	}

}

 

 

      注:因为类中定义的都是(私有)属性,故需要定义“赋予姓名”“获取姓名”的(公有)方法。

 

public class Fighting{
	//创建管理文件
	

	public static void main(String[] args){

		//实例化一个战士的对象
		Fight fig=new Fight();

		//设置对象的姓名和血量
		fig.setName("凌统");
		fig.setHp(100);
		
		//实例化一个Boss的对象
		Boss bos=new Boss();

		//设置对象的姓名和血量
		bos.setName("甘宁");
		bos.setHp(100);

		//调用战斗的方法
		while(fig.getHp()>=0&&bos.getHp()>=0){
			fig.fight(bos);
			bos.fight(fig);
		}
		if(fig.getHp()<=0){
			
			System.out.println(fig.getName()+"被打败,"+bos.getName()+"胜利");

		}else{

			System.out.println(bos.getName()+"被打败"+fig.getName()+"胜利");
		
		}		
	}
}

 

 

注:可以在此基础程序上进行进一步的扩展。
  1、可以使用随机数函数,使损失的血量随机不确定,使结果不唯一。
   2、增加对战的人数,使战斗多样性。(运用类的继承)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics