[转帖]构造方法_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2948 | 回复: 0   主题: [转帖]构造方法        下一篇 
只是很无聊
注册用户
等级:中尉
经验:440
发帖:33
精华:0
注册:2013-6-18
状态:离线
发送短消息息给只是很无聊 加好友    发送短消息息给只是很无聊 发消息
发表于: IP:您无权察看 2013-6-19 9:42:19 | [全部帖] [楼主帖] 楼主

构造方法与方法重载:
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)一个为整形参)。
在做同一件事情,但面向对象或做的事情的结果不唯一时经常使用方法重载。

代码示例:

Java代码  
北京联动北方科技有限公司

  1. public class Police{ 
  2.        //定义一个Police类 
  3.       
  4.        public String name; 
  5.        public int hp; 
  6.       
  7.        public Police(String n,int h){ 
  8.              name = n; 
  9.              hp = h; 
  10.        } 
  11.        //构造方法为属性赋值 
  12.       
  13.        public void fight(Boss b){ 
  14.              System.out.println(name+"警察对"+b.name+"Boss造成10点伤害"); 
  15.              b.hp-=10; 
  16.             
  17.        } 
  18.        public void fight(Thief t){ 
  19.              System.out.println(name+"警察对"+t.name+"小贼造成15点伤害"); 
  20.              t.hp-=15; 
  21.        } 
  22.        //方法重载 
  23. public class Thief{ 
  24.        //定义Thief类 
  25.        public String name; 
  26.        public int hp; 
  27.       
  28.        public Thief(String n,int h){ 
  29.              name=n; 
  30.              hp=h; 
  31.        } 
  32.       
  33.        public void fight(Police p){ 
  34.              System.out.println(name+"小贼对"+p.name+"警察造成1点伤害"); 
  35.              p.hp-=1; 
  36.        } 
  37. public class Boss{ 
  38.        //定义Boss类 
  39.        public String name; 
  40.        public int hp; 
  41.       
  42.        public Boss(String n,int h){ 
  43.              name=n; 
  44.              hp=h; 
  45.             
  46.        } 
  47.       
  48.        public void fight(Police p){ 
  49.              System.out.println(name+"Boss对"+p.name+"警察造成7点伤害"); 
  50.              p.hp-=7; 
  51.        } 
  52. public class Manager{ 
  53.        //创建管理文件 
  54.        public static void main(String[] args){ 
  55.             
  56.              Police po=new Police("A",100); 
  57.              Boss bo=new Boss("B",100); 
  58.              Thief th=new Thief("C",100); 
  59.             
  60.             
  61.              java.util.Random r=new java.util.Random(); 
  62.              int n=r.nextInt(2); 
  63.              //产生随机数,利用随机数使结果不唯一 
  64.              if(n==0){ 
  65.                   
  66.                    while(bo.hp>0){ 
  67.                          po.fight(bo); 
  68.                          bo.fight(po); 
  69.                    } 
  70.                    System.out.println("Boss血量为0,警察胜利"); 
  71.              } 
  72.              else{ 
  73.                    while(th.hp>0){ 
  74.                          po.fight(th); 
  75.                          th.fight(po); 
  76.                    } 
  77.                    System.out.println("Thief血量为0,警察胜利"); 
  78.              }; 
  79.        } 
  80.       


运行结果:

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,警察胜利




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论