请问对原始对象引用的问题

zlheadof 2003-09-24 10:19:09
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;

public class AvoidOverwritingFile{

public static void main(String args[]){
String filepath = "c://aa//aa.txt";
File aFile= new File(filepath);
FileOutputStream outputFile =null;
if (aFile.isFile()){
File newFile= aFile;
do{
String name=newFile.getName();
int period=name.indexOf('.');
newFile =new File(newFile.getParent(),
name.substring(0,period)+"_old"
+name.substring(period));

}while(!aFile.renameTo(newFile));
System.out.println(aFile.getName());
System.out.println(newFile.getName());
}

try{
outputFile = new FileOutputStream(aFile);
System.out.println("myfile.txt output stream created");

}catch (FileNotFoundException e){
e.printStackTrace(System.err);
}
System.exit(0);
}
}

File newFile= aFile;
String name=newFile.getName();
引用对象到底是什么意思?是引用其值呢?还是别的。
每次运行,name的值是多少?

...全文
32 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwhyf 2003-09-25
  • 打赏
  • 举报
回复
这是包装器(Wrapper)
你可以在file类上包装FileOutputStream,BufferedStream等类
若是输出双字节则要用到Reader类了他也有相应的包装器
zlheadof 2003-09-24
  • 打赏
  • 举报
回复
outputFile = new FileOutputStream(aFile);
这是什么意思啊!!
fast_time 2003-09-24
  • 打赏
  • 举报
回复
是引用地址
你所创建的aFile是指向那个文件,name就是文件名
如果aFile没有改变的话,aFile永远不会变
除非newFile改变的是现在引用对象的内容
如果newFile = otherFile或者newFile = new File();
那么,是newFile指向的地址发生变化,而aFile是不变的
zlheadof 2003-09-24
  • 打赏
  • 举报
回复
File newFile= aFile;
String name=newFile.getName();
引用对象到底是什么意思?是引用其值呢?还是别的。
每次运行,name的值是多少?
兄弟们能不能说的再清楚一点啊!!
newFile每次改变,那aFile也改变吗??
tangshiping 2003-09-24
  • 打赏
  • 举报
回复
引用对象好比操作一台操作仪,你只能输入厂家已经固化的限定的指令,具体的操作都是仪器去完成,完成的结果取决于你输入的命令和你所检测的材料本身!
fast_time 2003-09-24
  • 打赏
  • 举报
回复
引用,你可以理解为指针
但是,很指针的操作不同
你没有更大的权限,所有的操作都是对象自己完成
你只是通过引用,请求对象执行某种操作,具体的完成
需要对象根据具体情况

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧