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

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

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

    把困難踩在腳下

    迎難而上

     

    java---構(gòu)造函數(shù)

    如果我們定義一個(gè)與類名相同的函數(shù)就是構(gòu)造函數(shù),我們可以在一個(gè)類中定義多個(gè)構(gòu)造函數(shù),但是這些構(gòu)造函數(shù)的列表參數(shù)必須不同(個(gè)數(shù)或者數(shù)據(jù)類型)。如果我們沒有定義一個(gè)構(gòu)造函數(shù),系統(tǒng)就會(huì)給這個(gè)類定義一個(gè)默認(rèn)的構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)沒有參數(shù)。如果我們定義了構(gòu)造函數(shù)那么系統(tǒng)定義的構(gòu)造函數(shù)就會(huì)被覆蓋。下面用程序來說明。
    程序1:
    class YuanGong{
             private int   id;
             private String name;
             private float salary;
             private String depart;
             public void say(){
             System.out.println("員工號(hào):"+'\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("商務(wù)");
         p.say();
        }
    }
    上面程序的輸出結(jié)果如下圖所示:

    我們看到在程序并沒有定義構(gòu)造函數(shù)YuanGong(),這是系統(tǒng)定義的,而且還沒有參數(shù)。
    程序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("技術(shù)");
            }
             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("員工號(hào):"+'\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,"財(cái)政");
         p2=new YuanGong();
         p1.say();
         p2.say();
         }
    }
    此程序的輸出結(jié)果如下圖所示:

    在此程序中我們定義了四個(gè)構(gòu)造函數(shù),分別是單參、雙參、四參和沒有參數(shù)。我們可以看到最后沒有參數(shù)的構(gòu)造函數(shù)的結(jié)果和程序1初始化的結(jié)果一樣。
    看程序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("技術(shù)");
            }
             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("員工號(hào):"+'\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,"財(cái)政");
         p2=new YuanGong();
         p1.say();
         p2.say();
         }
    }
    這個(gè)程序編譯的時(shí)候就會(huì)出現(xiàn)如下圖所示的錯(cuò)誤:

    程序3與程序2的區(qū)別就是少了一個(gè)無參的構(gòu)造函數(shù),這樣做就驗(yàn)證了“如果類中定義了新的構(gòu)造函數(shù)就會(huì)覆蓋系統(tǒng)定義的構(gòu)造函數(shù)”。程序2同樣也覆蓋了系統(tǒng)定義的構(gòu)造函數(shù)只不過我們又新建了一個(gè)無參的構(gòu)造函數(shù),這就造成了程序2中無參函數(shù)的輸出結(jié)果與程序1初始化的輸出結(jié)果相同。

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


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學(xué)習(xí)網(wǎng)站

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品无码久久千人斩| 日韩高清在线高清免费| 性色av极品无码专区亚洲| 99久久99这里只有免费费精品| 亚洲韩国—中文字幕| 久久精品国产免费| 在线观看免费国产视频| 狠狠入ady亚洲精品| 亚洲精品麻豆av| a级毛片免费高清视频| 亚洲精品无码久久一线| 99国产精品视频免费观看| 亚洲黄色免费在线观看| 国产精品成人观看视频免费| 亚洲欧洲日韩国产一区二区三区| 成人网站免费观看| 妇女自拍偷自拍亚洲精品| 精品国产日韩亚洲一区| 久久久国产精品无码免费专区| 免费久久精品国产片香蕉| 国产免费黄色无码视频| 亚洲va在线va天堂va四虎| 成年人免费的视频| 国产精品手机在线亚洲| 亚洲精品一品区二品区三品区| 日日麻批免费40分钟无码 | 69式互添免费视频| 亚洲色大成网站www久久九| 亚洲国产a级视频| 国产成人精品免费久久久久| 亚洲综合丁香婷婷六月香| 免费国产美女爽到喷出水来视频| 成全在线观看免费观看大全| 亚洲国产视频一区| 在线观看亚洲天天一三视| 国产乱子精品免费视观看片| 欧洲亚洲国产精华液| 国产亚洲一区二区三区在线观看| 亚洲w码欧洲s码免费| 欧洲美女大片免费播放器视频| 亚洲狠狠久久综合一区77777|