Java处理类类型参数的方式
我正在看Walter Savitch的《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
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中的参数是“按值传递”的,而不是“按引用传递”。感谢您指出。感谢您对退货的澄清
感谢您对退货的澄清