Java处理类类型参数的方式

Java处理类类型参数的方式,java,parameter-passing,Java,Parameter Passing,我正在看Walter Savitch的《Java简介》一书中的例子 作者解释了为什么toFile=null在try 谢谢 作者试图向您解释,在方法内部更改变量引用的内容在方法外部是不可见的 调用openFile()后,toFile将变为null,因为引用值被传递给方法并分配给本地流变量。除非显式返回,否则无法在方法外部看到在方法内部更改stream的值 openFile()需要返回新的PrintWriter: public static PrintWriter openFile(String f

我正在看Walter Savitch的《Java简介》一书中的例子

作者解释了为什么
toFile=null
try


谢谢

作者试图向您解释,在方法内部更改变量引用的内容在方法外部是不可见的

调用
openFile()
后,
toFile
将变为
null
,因为引用值被传递给方法并分配给本地
变量。除非显式返回,否则无法在方法外部看到在方法内部更改
stream
的值

openFile()
需要返回新的
PrintWriter

public static PrintWriter openFile(String fileName) throws FileNotFoundException
{
    PrintWriter stream = new PrintWriter(fileName);
    return stream;
}
并被称为:

PrintWriter toFile = null;
try
{
    toFile = openFile("data.txt");
}

作者试图向您解释,在方法内部更改变量引用的内容在方法外部是不可见的

调用
openFile()
后,
toFile
将变为
null
,因为引用值被传递给方法并分配给本地
变量。除非显式返回,否则无法在方法外部看到在方法内部更改
stream
的值

openFile()
需要返回新的
PrintWriter

public static PrintWriter openFile(String fileName) throws FileNotFoundException
{
    PrintWriter stream = new PrintWriter(fileName);
    return stream;
}
并被称为:

PrintWriter toFile = null;
try
{
    toFile = openFile("data.txt");
}

你需要更深入地阅读这本书的那一部分。(我相信这确实有道理……但你还没有理解。)

很明显,作者实际上是在试图说明Java的一个非常重要的方面。。。参数是如何传递的

具体来说,他试图说明两个
标识符用于不同的变量,并且方法中的赋值

stream = new PrintWriter(fileName);
不会影响在
try
之前声明的
变量。分配给方法内
变量的值丢失


这说明Java使用“按值传递”作为其参数传递机制。(如果需要从方法调用中获取值,最简单的方法是
返回它)。

您需要更深入地阅读本书的这一部分。(我相信这确实有道理……但你还没有理解。)

很明显,作者实际上是在试图说明Java的一个非常重要的方面。。。参数是如何传递的

具体来说,他试图说明两个
标识符用于不同的变量,并且方法中的赋值

stream = new PrintWriter(fileName);
不会影响在
try
之前声明的
变量。分配给方法内
变量的值丢失


这说明Java使用“按值传递”作为其参数传递机制。(如果需要从方法调用中获取值,最简单的方法是
返回
它。)

可以显示更多代码吗?你不能一试而不被抓住,或者最终被抓住。作者的解释是什么?你能展示更多的代码吗?你不可能一试而不被抓住或最终被抓住。作者的解释是什么?嗨!谢谢您的回复!我对C/C++的知识比较渊博,可能忽略了一个简单的事实,即Java中的参数是“按值传递”的,而不是“按引用传递”。谢谢你指出。嗨!谢谢您的回复!我对C/C++的知识比较渊博,可能忽略了一个简单的事实,即Java中的参数是“按值传递”的,而不是“按引用传递”。感谢您指出。感谢您对
退货的澄清
感谢您对
退货的澄清