2013-11-21 75 views
1

我知道我們用C做++這樣的兩個功能:如何有相互調用的Java

int a(); 
int b() { 
    return a(); 
} 
int a() { 
    return b(); 
} 

我怎麼可以做這樣的事情在Java中?

+11

你已經做到了。但請注意,這是一個無限循環,您的計算機可能會爆炸並摧毀宇宙。 – Maroun

+0

你可以這樣做! –

+0

同樣的道路.................. :-) –

回答

6

在Java中,您不必在使用它們之前聲明變量或函數。因此:

int b() { return a();} 
int a() { return b();} 

請注意,這將產生StackOverflowError

+2

所以你的名字會出現在堆棧跟蹤中:P –

+0

@sᴜʀᴇsʜᴀᴛᴛᴀ:這個站點的名稱以及... – tilpner

+0

另外,在Java中只有一個StackOverflowError,沒有例外... – tilpner

3

不需要前向聲明,只需編寫函數即可。

3

這就是:對你的危險代碼:

public class b 
{ 

    Object first() 
    { 
    System.out.println("i am inside first function"); 
    return second(); 
    } 

    Object second() 
    { 
    System.out.println(" Like i care ! i'm scared of StackOverflowError dude !!"); 
    return first(); 
    } 

    public static void main(String [] args) 
    { 
    new b().first(); 
    } 

} 
+0

+1讓我笑。 – Maroun

+0

@Maroun Maroun很高興你用了47塊面部肌肉。 –

+0

@aman你在這裏使用某人的版權:) – Batty