7月6日第二次课时总结
今天的内容是java的基础内容,内容不多,但是比较重要,今天将的主要内容是类和对象。在了解类和对象之前,我们先了解一下什么叫做面向对象编程,所谓面向对象编程简单的有一句话来说就是用程序来模拟现实世界。
那么什么又是对象呢,其实对象在现实世界中随处可见,只要是一个具体的物体或一个具体的事物都可以叫做一个对象,但要注意的是一定要是具体的,比如说若果说笔是一个对象就是错误的,但是若果说我手中正在用的笔就是正确的。
我们可以把不同类型、不同颜色、不同用途的笔归纳为一类——笔,现实世界中,可以根据对象相似的特征或相似的行为进行分类,将他们归纳为不同的类。这与程序中的类是不同的,程序中的类是按照固定的格式对对象的行为和特征进行定义,包括两个部分:属性和方法。
基本格式如下:
public class 类名{
// 定义属性
private l类型 属性名;
//方法格式
public 返回值类型 方法名(参数){
}
}
要注意的的是,类名的第一个字母必须大写,且要和文件名一致。
实例化对象的方法格式:
类名 对象名 = new 类名();例如
Customer cus = new Customer();
如何调用类中的方法呢?格式如下:
对象名.方法名();
现在请大家想一个问题,定义的类和用类实例化的对象可不可以 作为参数来使用呢?答案是可以的,在上一篇文章中我们提到了String 在java中是一个类,我们经常将String作为参数使用那么其他类也是可以的。
本节课的练习题目为做一个简单的回合制小游戏,源代码如下:
package second0706; //定义一个一个角色类 public class Role { private String name;//名字属性 private int hp;//生命属性 private int speed;//速度属性 private int atk;//攻击力属性 //设置名字的方法 public void setName(String n) { name = n; } //获取名字的方法 public String getName(){ return name; } //设置生命的方法 public void setHp(int n){ hp = n; } //获取生命的方法 public int getHp(){ return hp; } //设置速度的方法 public void setSpeed(int n){ speed = n; } //获取速度的方法 public int getSpeed(){ return speed; } //设置初始攻击力的方法 public void setAtk(int n){ atk = n; } //设置获取攻击力的方法 public int getAtk(){ return atk; } public void attack(Role r){ r.setHp(r.getHp()-this.getAtk()); System.out.println(r.getName()+"的气血石"+r.getHp()); } } package second0706; import java.util.Random; //定义一个战斗类 public class fight { //函数的入口 public static void main(String [] args){ //设置两个角色 Role r1 = new Role(); r1.setName("熊哥"); r1.setHp(100); r1.setSpeed((int)(Math.random()*14+1)); int j = (int)(Math.random()*29+1); r1.setAtk(j); Role r2 = new Role(); r2.setName("我"); r2.setHp(120); r2.setSpeed((int)(Math.random()*8+5)); int x =(int)(Math.random()*20+5); r2.setAtk(x); System.out.println("决斗开始"); for(int i =0;i<100;i++){ if(r1.getSpeed()>r2.getSpeed()){ r1.attack(r2); r2.attack(r1); if(r1.getHp()<=0||r2.getHp()<=0){ System.out.println("游戏结束"); if(r1.getHp()<=0){ System.out.println(r1.getName()+"被"+r2.getName()+"杀死了"); }else if(r2.getHp()<=0){ System.out.println(r2.getName()+"被"+r1.getName()+"杀死了"); } break; } }else if(r1.getSpeed()<r2.getSpeed()){ r2.attack(r1); r1.attack(r2); if(r1.getHp()<=0||r2.getHp()<=0){ System.out.println("游戏结束"); if(r1.getHp()<=0){ System.out.println(r1.getName()+"被"+r2.getName()+"杀死了"); }else if(r2.getHp()<=0){ System.out.println(r2.getName()+"被"+r1.getName()+"杀死了"); } break; } } } } }