有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

“x+”“+y”和“changeUs(x,y)”的java含义`

我有这个代码,我也有它的答案,但我不明白它们是怎么出来的,特别是(x+" "+y)部分和changeUs(x, y)部分是什么意思,有人能解释吗

public class ChangeParam {

    public static void main(String[] args) {
        int x = 1;
        double y = 3.4;
        System.out.println(x+" "+y);
        changeUs(x, y);
        System.out.println(x+" "+y);        
    }

    public static void changeUs(int x, double y) {
        x = 0;
        y = 0.0;
        System.out.println(x +" "+y);
    }
}

答案是:

1 3.4

0 0.0

1 3.4

共 (3) 个答案

  1. # 1 楼答案

    您应该阅读并学习本教程和Java语言规范。诸如+之类的运算符的语义是最先解释的内容之一。在这里,你会发现当+的任何一个操作数的类型为String时,另一个操作数通过对String.valueOf的隐式调用转换为String,使整个表达式成为String串联

  2. # 2 楼答案

    System.out.println()-这里,println是一个方法,它接受字符串类型作为参数(字符串或已转换为字符串的类型)
    所以,我们传递一个字符串。但是,你有两件东西要显示(x和y),你会怎么做呢
    在java中,当操作数是字符串类型时,'+'运算符充当串联运算符,因此x+" "+y将把“x”和“y”与中间的空格组合起来
    所以,如果x="HELLO"y="WORLD",那么x+y将是HELLOWORLD
    在两者之间留出一个空格,x+" "+y将给我们一个更清晰、更可读的答案:HELLO WORLD

    在哪里

    changeUS()
    

    是一种接受两个参数的方法(特别是静态方法)(非常像需要两个参数的数学函数)

    因此,我们将两个“东西”传递给函数。现在,我怎么知道函数需要两个参数?要知道,我必须知道函数的定义。如我所见,该函数定义为:

    public static void changeUs(int x, double y) {
    x = 0;
    y = 0.0;
    System.out.println(x +" "+y);}
    


    第一行:enter code here:public static void changeUs(int x,double y)which says that changeUs takesint和double`作为它们的参数


    所以,传递一个整数和一个浮点数(double是一个更高精度的浮点数)。
    但是,为什么我们要做System.out.println但是对于changeUs我们只是称之为没有任何前缀? 这是因为changeUs是一种“静态”方法,不需要对象来操作

  3. # 3 楼答案

    这是逻辑,因为Java通过值传递,而不通过引用传递

    当你调用changeUs(x, y)时,xy只会在方法中改变,因此你会得到这个结果

    public static void main(String[] args) {
        int x = 1;
        double y = 3.4;
        System.out.println(x+" "+y);//<<     1- This will print 1 3.4
        changeUs(x, y);
        System.out.println(x+" "+y);//<<     3- This will print 1 3.4        
    }
    
    public static void changeUs(int x, double y) {
        x = 0;
        y = 0.0;
        System.out.println(x +" "+y);//<<     2- This will print 0 0.0
    }