如一个字节流的构造器
OutputStream out = null;
out = new FileOutputStream (new File ("a.txt"));
out实例化的构造方法中为什么可以直接new File("a.txt");为什么没有声明File类,就使用了他的对象
请大神讲详细一点
File a = new File("a.txt");
OutputStream out = null;
out = new FileOutputStream (a);
这样跟你给的是等效的。
File a=new File("a.txt"),这里重要的是new的部分,在堆内存创建了对象,并将对象赋给了引用a。你直接new File("a.txt")使用当然也是可以的呀,只不过没有定义下次使用这个对象不方便了,当然你这个对象只用一次也就没这些问题了
new File("a.txt") 相当于一个匿名对象
使用场景一般仅作为参数传递 或者是只使用一次对象时候的
File a = new File() 这其中a仅代表在栈内存中开辟一块空间 用来存a a中存的只是new File()的地址值
而new File() 真正存放的位置在堆内存中
File a = new File() 只是为了你可以多次使用这个对象 也可以称为 声明a这个变量为File类型的
这个就像是你百度到QQ的官网,但是你不用百度 直接在游览器地址栏输入www.qq.com 一样
new 一个对象,默认就是讲该对象的实例返回