JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:我想請問一下建構子的問題 [Re:yengceng]
musichemi

Java流.忍者



發文: 44
積分: 0
於 2004-04-22 00:21 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list

yengceng Wrote:
這個程式裡,我有兩個問題,一個是,什麼是預設建構子,再來就是,
int Return_width()
{ return width;}
這是什麼意思啊..
可不可麻煩白話一點解釋給我聽一下呢,謝謝!!


1.預設建構子就是你什麼constructor都不用寫...
在class中就自動會去跑一個 this() 的constructor,
用意只是在於你去new一個class的instance時,
把其所定義的variable都初始化而已。

如果你要使用預設建構子去達成你的variable_define class的話,
其實什麼都不用寫,
直接把變數的宣告和初始化寫在一起就好了。

2. return就是你的函式中有設定return type時(下面例子紅色的int就是)
那就需要在函式結束前回傳一個傳給caller,
而回傳的值的return type一定要和原本函式設定的return type一致。

例如:

1
2
3
4
5
6
7
8
9
10
  
    //函式定義:
    public int  addFun(int x, int y) {
           return x + y;
     }
 
    //在caller時機使用時:
    int x=5, y=10 , sum=0;
 
    sum = addFun(x, y);


這時的sum就變成 15囉~ 因為addFun(x, y)被call了時,
會回傳(return)x + y的結果,也就是15
所以call了那function後,其作用其實就變成這樣 sum = 15;
return就是在回傳你想傳的值用的,在data type上設定要有一致性

建議1:
一般而言class的命名都會以首子大寫,斷字再大寫來命名為習慣,
如: VariableDefine

建議2:
在使用取用函式一般會寫成 getXXX()
而在修改函式一般會寫成 setXXX()
(XXX的第一個字大寫)

建議1:
你的第二個class最好是加上存取權限的修飾字 public, private, protected 等
而且你的width, length, area應該設成private,
這樣你使用public的取用函式才會有意義。

修正後完整的程式如下(以你想要使用預設建構子為例):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class MainClass  //主程式
{
   public static void main(String args[])
   {
     VariableDefine count = new VariableDefine();
     System.out.println("width= "+ count.getWidth()  );
     System.out.println("length= "+ count.getLength()  );
     System.out.println("area= "+ count.getWidth()  * count.getLength()  ); 
   }
}  
 
public  class VariableDefine   //副程式
{
     private int width=3;
     private int length=4;
     private int area=0;

    //因為沒有自訂建構子,所以預設建構子this()就會被執行
    //說白一點(也就是不做其他的事)
    //也就是你不用再手寫一個width、length、area的初始化建構子
    //既然你想要直接new完instance後就讓width=3, length=4, area=0的話
    //就直接在declare時順便initialize就行了(這樣就等於跑了預設建構子了)
 
     public  int getWidth()  {
           return width;
     }
      
     public  int getLength(){ 
          return length;
     }
      
     public   int getArea(){
         return area;
    }
        
}


musichemi edited on 2004-04-22 00:32
reply to postreply to post
當自己學的愈多時,才驚覺自己懂的太少。
話題樹型展開
人氣 標題 作者 字數 發文時間
2182 我想請問一下建構子的問題 lan 131 2004-04-18 12:26
2725 Re:我想請問一下建構子的問題 yingssu 206 2004-04-18 13:38
1928 Re:我想請問一下建構子的問題 lan 46 2004-04-18 14:22
2038 Re:我想請問一下建構子的問題 wttmama 939 2004-04-19 01:32
1849 Re:我想請問一下建構子的問題 築夢 33 2004-04-19 18:15
1900 Re:我想請問一下建構子的問題 yengceng 43 2004-04-21 14:01
1969 Re:我想請問一下建構子的問題 musichemi 644 2004-04-21 14:17
1808 Re:我想請問一下建構子的問題 yengceng 920 2004-04-21 19:43
1635 Re:我想請問一下建構子的問題 anthonycs 304 2004-04-21 20:29
1856 Re:我想請問一下建構子的問題 musichemi 2383 2004-04-22 00:21
3062 Re:我想請問一下建構子的問題 yengceng 208 2004-04-22 01:02
1591 Re:我想請問一下建構子的問題 anthonycs 213 2004-04-22 01:25
1785 Re:我想請問一下建構子的問題 yengceng 146 2004-04-22 09:37
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8