2010-02-24 80 views
3

这里总noobie问题。我是否理解正确地将参数传递给函数?

我刚刚学习Java,并研究函数的传递参数。我创造了这个简单的例子,它是做什么的我期待的,但我要确保我理解“信号路径”正确:

public void run() { 

     int value = 4; 
     println(" the value is "+ add(value)); 
    } 

    private int add(int n) {   
     int result = 4; 
     result = n + result; 

     return result; 
      } 
    } 

我是正确的说法是:

1)所述int value正在从add(value)传递给私有方法等然后int n = 4

2),则result = n + return.(8)

3)然后return result传递回给公众实现方法具d代替add(value)

我的想法是否正确? 谢谢! Joel

回答

3

是的,正好。

+0

我需要知道的我正走在正确的轨道上。 :-D谢谢! – Joel 2010-02-24 05:05:06

1

你的想法是正确的。

2

1)int值被从加载(值)传递给私有方法等则INT n = 4的

的int的值被传递的方法Add() ,然后int n将为4.

2)then result = n + return。 (8)

是的,的确如此。另一种语法是result += n;这会做同样的事情。

3)然后返回的结果传递回公共方法并代替add(value)。

是的,那么该值是从add返回的,并且是将要使用的值。

0

是的,这是参数传递和返回值的全部内容。请注意,在Java中,everything is passed by value

这意味着以下内容:

void f(int x) { 
    x = 0; 
} 

void main() { 
    int n = 10; 
    f(n); 
    // n is still 10 
} 
+0

“一切都按值传递”:这是一个非常令人困惑的事情,与所有Object参数一样,该方法将在与调用方相同的实例上工作。你可以说“对象的引用是通过值传递的”,但实际上(即关于它如何为程序员发挥作用),只有基本类型是按值传递的。 – Thilo 2010-02-24 05:39:48

+0

你读过这篇文章了吗? Java通过所有的东西来传递值,而且这个语句没有任何混淆。对象可变性是一个完全独立的问题。 – polygenelubricants 2010-02-24 05:52:29

0

在(2)应该是 “结果= N +结果”,而不是 “N +回”。但我认为这只是一个错字,你似乎明白发生了什么。