当前位置: 首页 > 知识库问答 >
问题:

Java中的参数传递类型[重复]

松建本
2023-03-14

代码如下。我只想知道当我调用changeName时,changeName中的参数传递类型是值传递还是引用传递。

public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        Student student = new Student();
        student.setName("Mike");
        System.out.println("Before calling changeName:" + student.toString());
        test.changeName(student);
        System.out.println("After calling changeName:" + student.toString());
    }

    public void changeName(Student s){
        s.setName("Alice");
    }
}

class Student{
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "{" +
                "name='" + name + '\'' +
                '}';
    }
}

共有1个答案

沈华晖
2023-03-14

答案是值传递。事实上,在Java编程语言中没有通过引用传递的概念,不要被C++误解,这里传递的值是对象的地址。

 类似资料:
  • 问题总结:我想传递一个带有类型参数(如

  • 问题内容: 问题摘要: 我想将具有类型参数(例如)的类作为类型参数传递给泛型方法。 假设我有一个方法: 当然,此方法对于任何类型的类都可以正常使用。我可以这样调用该方法,例如: 问题: 我发现我不能这样做: 从句法上讲,这显然是无效的。但是,我不确定如何实现这样的目标。我当然可以通过,但是泛型类型的添加使其在语法上不再有效,并且我想不出解决方法。 唯一的直接解决方案是这样的事情(看起来很愚蠢):

  • 我写了以下方法 我如何将不同的枚举类型传递给第二个参数?我知道我不能创建枚举的实例,但初始化枚举意味着我将传递一个值,而不是整个初始化的枚举,如下所示...其他枚举也将传递给相同的方法以实现组合细节

  • 我在MYSQL服务器上的y db中有一个存储过程。当我试图调用它时,它给出了错误: 通用域名格式。mysql。jdbc。例外。jdbc4。MySQLSyntaxErrorException:过程thu的参数数量不正确。生产者;预期为2,在组织中为0。springframework。jdbc。支持SQLExceptionSubclassTranslator。doTranslate(SQLExcept

  • 有时对一个类的某些方面进行 参数化(parameterize)是很有用的。例如, 你可能需要管理不同版本的 gem 软件包,既可以为每一种版本创建分离的单独的类, 也可以使用继承和覆盖,为一个类传递一个版本号作为参数。 操作步骤 声明参数作为如下类定义的一部分: class eventmachine( $version ) { package { "eventmachine": pro

  • int是byte、short、int、long的默认文字,然后是为什么byte c=15被接受而不进行强制转换,但不接受方法参数。 提前谢谢你。