问个java基础题
public class Item {
private String desc;
public String getDescription() {return desc;}
public void setDescription(String d){desc=d;}
public static void modifyDesc(Item item,String desc){
item=new Item();
item.setDescription(desc);
}
public static void main(String[] args) {
Item it1=new Item();
it.setDescription("一");
Item it2=new Item();
it2.setDescription("二");
modifyDesc(it1,"三"); // 问题在这里
System.out.println(it1.getDescription());
System.out.println(it2.getDescription());
}
}
it1传给modifyDesc方法 在里面new了一个新对象 赋给它了 it1不就指向新对象了吗 为什么it1.getDescription还打印一呢
public static void modifyDesc(Item item,String desc){
item=new Item(); -->这句给删啦
item.setDescription(desc);
}
因为modifyDesc(it1,"三"); 后item 指向啦和it1 同一个对象
item 再new 的话,item就会指向一个新的对象,it1指向还是本来那个
item是个局部变量,在栈内存中分配,方法结束后,item也会消亡
删了后,item与it1指向了同一对象,通过item直接修改属性值,所以就行啦
这时item相当于it1的一个副本
也就是说item不是代替it1 而是和it1共同存在
恩
UP!
传递的是引用地址...想想C++中的指针就明白了,你方法里面的new相
相关问答:
<%@page language="java" contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="db" class="wang.connectDB"/>
< ......
字符流的读和写最终在底层都是通过字节流来完成的吗? 读写文本文件字符流应该就可以了吧。。
各位大哥大姐帮帮忙阿
Java流包括字节流和字符流,字节流通过IO设备以字节数据的方式读入,而字符流则是通过字节流 ......
1 public class BirthDate {
2 private int day;
3 private int month;
4 private int year;
5
6 public BirthDate (){}
7
8 public BirthDate (int d,int m,int y){
9 day = d;
......
import java.io.*;
class FileTest
{
public static void main(String [] args) throws Exception
{
File fDir=new File(File.separator);
String strFile="java源代码测试"+File.separato ......
如题。
遥遥无期啊,买房难啊
22世纪吧,,,
明天就可以,但是明天永远是明天啊!!!!
买房?不是it民工想的。
加油吧~``
我觉得也是 房自己随便盖一个既是.... 买咱是别想了 ......