<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    把困難踩在腳下

    迎難而上

     

    java---構造函數

    如果我們定義一個與類名相同的函數就是構造函數,我們可以在一個類中定義多個構造函數,但是這些構造函數的列表參數必須不同(個數或者數據類型)。如果我們沒有定義一個構造函數,系統就會給這個類定義一個默認的構造函數,這個構造函數沒有參數。如果我們定義了構造函數那么系統定義的構造函數就會被覆蓋。下面用程序來說明。
    程序1:
    class YuanGong{
             private int   id;
             private String name;
             private float salary;
             private String depart;
             public void say(){
             System.out.println("員工號:"+'\t'+id);
             System.out.println("   姓名:"+'\t'+name);
             System.out.println("   薪水:"+'\t'+salary);
             System.out.println("   部門:"+'\t'+depart);
          }
            public void setId(int id){
             this.id=id;
          }
           public int getId(){
            return id;
          }
           public void setName(String name){
            this.name=name;
         }
          public String getName(){
           return name;
         }
         public void setSalary(float salary){
          this.salary=salary;
         }
         public float getSalary(){
          return salary;
         }
         public void  setDepart(String depart){
         this.depart=depart;
         }
         public String  getDepart(){
         return depart;
         }
    }
    public class Test1{
         public static void main(String args[]){
         YuanGong p=new YuanGong();
         p.say();
         p.setId(50);
         p.setName("哈哈");
         p.setSalary(2000);
         p.setDepart("商務");
         p.say();
        }
    }
    上面程序的輸出結果如下圖所示:

    我們看到在程序并沒有定義構造函數YuanGong(),這是系統定義的,而且還沒有參數。
    程序2:
    class YuanGong{
             private int   id;
             private String name;
             private float salary;
             private String depart;
             YuanGong(int id){
             this.setId(id);
             this.setName("未確定");
             this.setSalary(1000);
             this.setDepart("后勤");
             }
             YuanGong(int id,String name){
             this.setId(id);
             this.setName(name);
             this.setSalary(3000);
             this.setDepart("技術");
            }
             YuanGong(int id,String name,float salary,String depart){
             this.setId(id);
             this.setName(name);
             this.setSalary(salary);
             this.setDepart(depart);
           }
            YuanGong(){
           }
            public void say(){
             System.out.println("員工號:"+'\t'+id);
             System.out.println("   姓名:"+'\t'+name);
             System.out.println("   薪水:"+'\t'+salary);
             System.out.println("   部門:"+'\t'+depart);
          }
            public void setId(int id){
             this.id=id;
          }
           public int getId(){
            return id;
          }
           public void setName(String name){
            this.name=name;
         }
          public String getName(){
           return name;
         }
         public void setSalary(float salary){
          this.salary=salary;
         }
         public float getSalary(){
          return salary;
         }
         public void  setDepart(String depart){
         this.depart=depart;
         }
         public String  getDepart(){
         return depart;
         }
    }
    public class Test2{
         public static void main(String args[]){
         YuanGong p1=null;
         YuanGong p2=null;
         p1=new YuanGong(10);
         p2=new YuanGong(20,"張三");
         p1.say();
         p2.say();
         p1=new YuanGong(30,"李四",5000,"財政");
         p2=new YuanGong();
         p1.say();
         p2.say();
         }
    }
    此程序的輸出結果如下圖所示:

    在此程序中我們定義了四個構造函數,分別是單參、雙參、四參和沒有參數。我們可以看到最后沒有參數的構造函數的結果和程序1初始化的結果一樣。
    看程序3:
    class YuanGong{
             private int   id;
             private String name;
             private float salary;
             private String depart;
             YuanGong(int id){
             this.setId(id);
             this.setName("未確定");
             this.setSalary(1000);
             this.setDepart("后勤");
             }
             YuanGong(int id,String name){
             this.setId(id);
             this.setName(name);
             this.setSalary(3000);
             this.setDepart("技術");
            }
             YuanGong(int id,String name,float salary,String depart){
             this.setId(id);
             this.setName(name);
             this.setSalary(salary);
             this.setDepart(depart);
           }
             public void say(){
             System.out.println("員工號:"+'\t'+id);
             System.out.println("   姓名:"+'\t'+name);
             System.out.println("   薪水:"+'\t'+salary);
             System.out.println("   部門:"+'\t'+depart);
          }
            public void setId(int id){
             this.id=id;
          }
           public int getId(){
            return id;
          }
           public void setName(String name){
            this.name=name;
         }
          public String getName(){
           return name;
         }
         public void setSalary(float salary){
          this.salary=salary;
         }
         public float getSalary(){
          return salary;
         }
         public void  setDepart(String depart){
         this.depart=depart;
         }
         public String  getDepart(){
         return depart;
         }
    }
    public class Test3{
         public static void main(String args[]){
         YuanGong p1=null;
         YuanGong p2=null;
         p1=new YuanGong(10);
         p2=new YuanGong(20,"張三");
         p1.say();
         p2.say();
         p1=new YuanGong(30,"李四",5000,"財政");
         p2=new YuanGong();
         p1.say();
         p2.say();
         }
    }
    這個程序編譯的時候就會出現如下圖所示的錯誤:

    程序3與程序2的區別就是少了一個無參的構造函數,這樣做就驗證了“如果類中定義了新的構造函數就會覆蓋系統定義的構造函數”。程序2同樣也覆蓋了系統定義的構造函數只不過我們又新建了一個無參的構造函數,這就造成了程序2中無參函數的輸出結果與程序1初始化的輸出結果相同。

    posted on 2010-10-16 17:24 馮魁 閱讀(2077) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产成人亚洲精品播放器下载| 亚洲不卡1卡2卡三卡2021麻豆| 色婷婷精品免费视频| 无码乱肉视频免费大全合集| 精品亚洲成AV人在线观看| 久久国产色AV免费观看| 久久亚洲私人国产精品vA| 十九岁在线观看免费完整版电影| 亚洲AV无码专区亚洲AV伊甸园| aaa毛片视频免费观看| 一本色道久久综合亚洲精品| 久久久受www免费人成| 九月丁香婷婷亚洲综合色| 久久青草精品38国产免费| 久久精品国产精品亚洲蜜月| 日韩电影免费在线观看| 亚洲理论在线观看| 最近最好的中文字幕2019免费| 亚洲国产AV无码一区二区三区| 免费A级毛片无码A| 三级网站在线免费观看| 亚洲精品在线播放视频| 无码人妻一区二区三区免费手机| 亚洲AV无码一区二区三区牲色| www.亚洲一区| 免费网站观看WWW在线观看| 亚洲最新视频在线观看| 精品久久久久久久久免费影院| 亚洲av午夜电影在线观看| 亚洲国产精品一区二区第四页| a毛片免费全部在线播放**| 亚洲专区在线视频| 宅男666在线永久免费观看| 三级片免费观看久久| 国产亚洲无线码一区二区| 99蜜桃在线观看免费视频网站| 成人亚洲国产va天堂| 亚洲AV无码一区二区三区在线观看| 中文在线免费观看| 亚洲制服丝袜中文字幕| 亚洲中文字幕无码专区|