首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

第三次学时总结

2013-07-11 
第三次课时总结?????????????????????????????????????????????? 第三次课时总结???????? 方法可以分为普

第三次课时总结

?????????????????????????????????????????????? 第三次课时总结

???????? 方法可以分为普通方法和构造方法两种,普通方法是用来描述对象的行为,而构造方法是用来实例化对象的。下面主要介绍一下构造方法。

??????? 构造方法格式如下:

???????? public 类名(数据类型 参数名){

}

?????????构造方法和普通方法的区别如下:

???????(1)?构造方法和普通方法的返回值不同,构造方法是不能定义返回值类型的,要注意的是不能定义返回值类型不代表构造函数没有返回值。

???????(2)构造函数的名字必须为类名。

???

????????? 此外,每一个类默认的都有一个构造方法,即通过 new 类名();的调用来创建一个对象。可以说构造方法主要由以下两个作用:

????????? (1)用来实例化对象,例如:

???????????????????????? Student stu = new Student();

??????????? 当然我们也可以为类重新定义构造方法,此时系统默认的构造方法江北覆盖,不能再被调用。

??????????(2) 给属性赋初值。

????????????? 看如下代码:

????????????????? Student stu = new Student(name);

????????????? 在这里要注意的是new操作之后在堆内存中开辟了一块空间,在其中存储了属性,相关方法,即开始时付给的初值。但在栈内存中存储的是堆内存中构造函数所返回的地址。

???????????? 下面在介绍一下方法重载,普通方法和构造方法都可以进行方法重载。要进行方法重载必须要满足一定的条件:

???????????? 首先方法名字要完全相同。然后一下三个条件满足其中一个才可进行方法重载

????????????? (1)参数个数不同

??????????????(2)参数个数想通但参数类型不同

??????????????(3)参数和数类型均相同但出现的顺序不同

??????????????重载后的方法调用会根据参数的不同来自动调用。

?????????????? this关键字表示的是当前的对象,当参数名和属性名相同时,要在属性名前加this.

??????????????????

?????????????? 练习:

???????????????? 编制一个简单回合制游戏。

???????????????? 源代码如下:

??

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; }                 }                                  }                }} 

?

热点排行