代码如下:
public class ParamTest
{
public static void main(String[] args)
{
C c = new C(); int a = 0;
c.change(a);
System.out.println(a);
}
}class C
{
void change(int b)
{
b = 2;
}
}
运行的结果是
0
为什么呢?我一直想不明白
public class ParamTest
{
public static void main(String[] args)
{
C c = new C(); int a = 0;
c.change(a);
System.out.println(a);
}
}class C
{
void change(int b)
{
b = 2;
}
}
运行的结果是
0
为什么呢?我一直想不明白
{
void change(Person p, Person p2)
{
p.name = "lisi";
p2.name = "wangwu";
} public static void main(String[] args)
{
Person person = new Person();
person.name = "zhangsan"; Person person2 = person; ParamTest3 test = new ParamTest3(); test.change(person, person2); System.out.println(person.name); }}class Person
{
String name;
}
为什么上面代码的结果是
wangwu
你的 a 虽然给了 c ,但 c 没有把改变后的值返回给a
如果要 c 把改变后的值给 a,把 void 改为 int,同时在 change()方法内加上 return b; 语句
void 方法一般是没有返回值的,要用的话用int,如下:int a = 0;
a = c.change(a);
System.out.println(a);
class C {
int change(int b) {
b = 2;
return b;
}
}
Person person = new Person(); 命令生成了 Person 对象,并且把其在内存中的首地址给了 person。
Person person2 = person; 命令没有生成 Person 对象,因为没有 new 嘛,只是把 person 指的对象给了 person2 。 这里运用了JAVA的引用。
void change(Person p, Person p2){
p.name = "lisi";
p2.name = "wangwu";
}
里面的 p, p2 实际上指的是一个对象(因为引用)。
所以输出为 wangwu
你如果还不懂,很简单,把
System.out.println(person.name); 更改为
System.out.println(person2.name); 自己看一下输出就知道了
public class ParamTest
{
public static void main(String[] args)
{
C c = new C();int a = 0;
c.change(a);
System.out.println(a);
}
}class C
{
void change(int &b)
{
b = 2;
}
}
那你打印的值不是0 难道是20?
赋值运算
你可以这样设置下,你数据库里面放的有值的数据,然后你在code里面
取得了这个数据,
然后你new Student();
然后你又给他的属性赋值,也就是说set了,打印出来的值是你赋的值,但数据库里边还是以前的值,不会改变的
我前天才刚刚接触Java..是自己上网找教学视频看的哦,弱弱地问下大侠,有什么好书可以推荐下