2013-05-01 97 views
2

我对编程相当陌生,对于返回值的含义我很困惑。起初,我认为它意味着输出什么价值被返回,但是当我在我自己的代码中尝试时,没有发生任何事情。返回值是什么意思?

class Class1 { 

    public static int x = 3; 

    public static int getX(){ 
     return x; 
    } 

    public static void main(String[] args){ 
     Class1.getX(); 
    } 
} 

这是我的意思的一个例子。当我运行程序时,什么也没有显示出来。考虑到这一点,我认为返回价值意味着别的东西。但是什么?

回答

5

简单来说,这意味着该值返回方法的调用者...

所以,在你的榜样,该方法getX会的x值返回给调用者,允许他们访问它。

class Class1{ 

    static int x = 3; 

    public static int getX(){ 
     return x; 
    } 

    public static void main(String args[]){ 
     int myX = Class1.getX(); // return the value to the caller... 
     System.out.println(myX); // print the result to the console... 
    } 
} 
+1

您还应该注意,当您返回时,它会退出该方法。 – RoccoDev 2016-06-24 16:18:12

2

返回值是方法来相互交谈

public void method1() { 
    int value = 5 + method2(5); 
    System.out.println(value); 
} 

public int method2(int param) { 
    return param + 5; 
} 

这将打印15(5被发送到method2的方式,增加了5到它并将结果返回到method1,其中添加5并打印结果)。

Java返回值的副本 - 在这种情况下,它将值10复制并返回到method1。如果method2返回Object那么它将返回对象的引用的副本。不同的语言对于方法返回有不同的语义,所以在切换语言时要谨慎。 Java也复制传递给方法的参数的值 - 在这种情况下,method1复制值5并将其传递给method2

public void method1() { 
    int value = 5; 
    method2(value); 
} 

public void method2(int param) { 
    param = param + 5; 
} 

valuemethod1是不受method2value仍然等于5执行后method2),因为只有一个的value副本作为参数发送。

+0

谢谢,这很有道理。因此,如果我理解正确,方法2,其参数等于5,方法1内的声明,将5添加到原始参数,然后用10替换原始参数? – user2338180 2013-05-09 04:49:52

+0

是的,只记得method2只能看到从method1传入的参数的**副本**; method2中'param'的值改为10,但method1中的'value'仍然等于5。 – 2013-05-09 04:57:55

0

你只是调用一个返回一个整数的方法,但你从不使用/打印它。尝试在你的代码中使用它,看看你是否已经获得了你在课堂上设置的期望值。

相关问题