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

构造方法

    博客分类:
  • java
阅读更多

构造方法与方法重载:
1.构造方法:
用来创建对象和初始化属性值.
分为有参构造器和无参构造器.
每一个类都有一个默认的无参构造器,通过"new 类()"来调用从而创建对象。例如:Student stu=new Student();中的Student()就叫做Student类的无参构造器方法。
构造方法没有返回值。方法名必须和类名完全一致。每次使用构造器都会创建一个新的对象。


2.方法重载:
在同一个类中,定义多个同名但参数类型、参数数量或参数顺序不同的方法,叫做方法重载。例如:
public void study(){
  System.out.println("什么都没学");
}
public void study(int hour){
  System.out.println("不知道在学什么");
}
两者即为方法重载。
方法重载要求:1.方法名必须相同(即上例中的study),2.参数类型、数量及顺序至少有一点不同(上例中,()一个无参,(int hour)一个为整形参)。
在做同一件事情,但面向对象或做的事情的结果不唯一时经常使用方法重载。

代码示例:

public class Police{
	//定义一个Police类

	public String name;
	public int hp;
	
	public Police(String n,int h){
		name = n;
		hp = h;
	}
	//构造方法为属性赋值

	public void fight(Boss b){
		System.out.println(name+"警察对"+b.name+"Boss造成10点伤害");
		b.hp-=10;

	}
	public void fight(Thief t){
		System.out.println(name+"警察对"+t.name+"小贼造成15点伤害");
		t.hp-=15;
	}
	//方法重载
}


public class Thief{
	//定义Thief类
	public String name;
	public int hp;
       
	public Thief(String n,int h){
		name=n;
		hp=h;
	}

	public void fight(Police p){
		System.out.println(name+"小贼对"+p.name+"警察造成1点伤害");
		p.hp-=1;
	}
}
		

public class Boss{
	//定义Boss类
	public String name;
	public int hp;

	public Boss(String n,int h){
                name=n;
		hp=h;

	}

	public void fight(Police p){
		System.out.println(name+"Boss对"+p.name+"警察造成7点伤害");
		p.hp-=7;
	}
}
	

public class Manager{
	//创建管理文件
                  public static void main(String[] args){

		Police po=new Police("A",100);
		Boss bo=new Boss("B",100);
		Thief th=new Thief("C",100);

		
		java.util.Random r=new java.util.Random();
		int n=r.nextInt(2);
                //产生随机数,利用随机数使结果不唯一
		if(n==0){

			while(bo.hp>0){
                		po.fight(bo);
                		bo.fight(po);
			}
       			System.out.println("Boss血量为0,警察胜利");
       		}
		else{
			while(th.hp>0){
                		po.fight(th);
                		th.fight(po);
       			}
       			System.out.println("Thief血量为0,警察胜利");
       		};
	}	 
	
}

 
运行结果:

 

 

A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 A警察对BBoss造成10点伤
 BBoss对A警察造成7点伤害
 Boss血量为0,警察胜利

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics