目标:
1.掌握类和对象的格式和用途
2.把握好如何将生活中类和对象转换为程序。

面向对象编程:模拟现实生活。
所有的概念,都是源自于生活中。

1.找出生活中的对象?
对象:只要是生活中具体的某一个物体或者具体的某一个事物就是一个对象。
举例:
某一个学生
特征:姓名,性别,学分,年龄,学校,....
行为:考试,说话,睡觉,吃饭,学习,打游戏,看电视,...
某一个篮球
特征:形状,材料,颜色,重量,半径
用途、功能、行为:弹,
某一支笔


你眼睛里看到的任何一个物体就是一个对象。

1.找对象 :具体的的某个事物 独一无二的
2.找对象的特性和行为

2.类的组成
生活中的分类,是根据对象相似的特征和相似的行为进行归类的。

程序中类,是按照固定的格式,对对象的特征和行为进行的定义,定义成一个相应的模板。

程序中类由2个部分组成:1.属性(对象的特征) 2.方法(对象的行为)

3.类的基本格式

public class 类名 { 


 //定义属性的格式 

 private 数据类型 属性名; 


 //方法的格式 

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


 } 


 }




注:一个.java文件中只有一个类


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

类名 对象名 = new 类名(); 

 Student stu = new Student();


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

stu.setName("张三"); 

 int s = stu.getScore(); 

 s-=1; 

 stu.setScore(s); 


 stu.study(); 

 stu.play();



5.对象是否可以作为参数?
1.定义的类是否可以作为数据类型?
可以的

2.你用类实例化对象的是可以作为参数的。


[color=red]注: 参考String类 [/color]

6.练习
1.回合制游戏:**角色和男爵Boss进行战斗,直到一方的血量为0时结束战斗,输出谁胜利了!

2.总结:类和对象总结
1.概念描述清楚
本身你自己的理解+生活中的实例+代码







个人理解:
类:一群具有相同属性、方法的物体的集合。
对象:某个类下的具体物体,有特定的属性、方法。

生活中的例子: 1.比如说 电脑 就是一个类
( 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,
又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
都有显示器,键盘,鼠标,显卡,内存.....)
2.但电脑之间也有不同,如电脑品牌不同(苹果,联想,华硕,戴尔....),不同品牌的不同型号的机器硬件有所不同,
不同操作系统、 不同内存、不同键盘、不同鼠标,但大体功能一样 (即:能够按照程序运行,自动、高速处理海量数据)
所以说某品牌某型号电脑即为一个对象,它是对象的一个具体事例,具体化电脑的一些属性。
如: 联想G480 即为一个对象
3. 64位操作系统 4G内存 为相应的对象的属性值
电脑可以允许各种软件 为相应的对象的行为或方法

类的声明:public class 类名(Computer){ //声明一个类 

 //定义属性的格式 

 private 数据类型 变量名; 


 private String name = new String(); 


 private int number ; 


 //定义方法 

 public 返回值类型 方法名(){} 


 public void setname(String n){ 

 name=n; 

 } 


 public void setnumber(int num){ 

 number=num; 

 } 


 }



实例化相应类的对象及其方法的调用:
类名 对象名 = new 类名();//实例化一个对象
如:Computer computer = new Computer();

对象名.方法名(参数名或数值);//方法的调用
如:computer.setname("lenovo");
computer.setnumber(480);

/**
 * 
 * @author Guanxianxiao
 *
 */
public class Zed {
	private String name = new String();
	private int blood ;
	private int ATK;
	public void setname(String n){
		name=n;		
	}
	public void setblood(int b){
		blood=b;		
	}
	public void setATK(int a){
		ATK=a;		
	}
	public String getname(){
		return name;
	}
	public int getblood(){
		return blood;
	}
	public int getATK(){		
		return ATK;
	}
	public void attack(Baron b){
		int blood_temp=b.getblood()-this.getATK();
		b.setblood(blood_temp);	
		System.out.println("纳什男爵的血量:"+b.getblood());
	}

}




***********************************************************


/**
 * 
 * @author Guanxianxiao
 *
 */
public class Baron {
	private String name = new String();
	private int blood ;
	private int ATK;
	public void setname(String n){
		name=n;		
	}
	public void setblood(int b){
		blood=b;		
	}
	public void setATK(int a){
		ATK=a;		
	}
	public String getname(){
		return name;
	}
	public int getblood(){
		return blood;
	}
	public int getATK(){		
		return ATK;
	}
	public void attack (Zed z){
		int blood_temp=z.getblood()-this.getATK();
		z.setblood(blood_temp);	
		System.out.println("影流之主的血量:"+z.getblood());
	}	
}





***********************************************************


public class Fighting {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Baron baron = new Baron();
		Zed  zed = new Zed();
		baron.setname("大龙-纳什男爵");
		baron.setblood(1000);
		baron.setATK(25);

		System.out.println("选手1:"+baron.getname()+"->"+"血量:"+baron.getblood()+"->"+"攻击力:"+baron.getATK());

		zed.setname("影流之主-劫");
		zed.setblood(700);
		zed.setATK(38);

		System.out.println("选手1:"+zed.getname()+"->"+"血量:"+zed.getblood()+"->"+"攻击力:"+zed.getATK());

		System.out.println("*********************************开始战斗(回合制)*********************************");

		int who_first;
		who_first = (int) (Math.random()*2);
		System.out.println(who_first);

		if(who_first==0){
			while(baron.getblood()>0&&zed.getblood()>0){
				 baron.attack(zed);
				if(zed.getblood()<=0){
					System.out.println(baron.getname()+"击杀了"+zed.getname());
					break;
				}
				else{
					zed.attack(baron);
					if(baron.getblood()<=0){
						System.out.println(zed.getname()+"击杀了"+baron.getname());
						break;
					}
				}
			}

		}
		else if(who_first==1){
			while(baron.getblood()>0&&zed.getblood()>0){
				zed.attack(baron);
				if(baron.getblood()<=0){
					System.out.println(zed.getname()+"击杀了"+baron.getname());
					break;
				}
				else{
					baron.attack(zed);
					if(zed.getblood()<=0){
						System.out.println(baron.getname()+"击杀了"+zed.getname());
						break;
					}
				}
			}	
		}		
	}		
}