黑马程序员技术交流社区
标题:
a=age和age=a是有什么区别
[打印本页]
作者:
方书堂
时间:
2011-12-5 16:40
标题:
a=age和age=a是有什么区别
本帖最后由 方书堂 于 2011-12-6 09:10 编辑
class Age
{
private int age;
String name;
public void setAge(int a)
{
if(a>0 & a<130)
{
age=a; //改成a=age为什么结果会不一样啊
speak();
}
else
System.out.println("feifa");
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class AgeDemo2
{
public static void main(String[] args)
{
Age p=new Age();
p.setAge(30);
}
}
为什么把上面的age=a改成a=age结果会不一样啊
作者:
刘海涛
时间:
2011-12-5 16:44
本帖最后由 刘海涛 于 2011-12-5 19:50 编辑
java '=' 号是赋值的操作。右边赋给左边
你的目的是要判断a 的值是否符合你的规范。在把a的值赋值给age
正确的是 age = a;
a = age 相当于把刚初始化的值0赋给了a
结果a = 0;
在java里面形参的传递:
1、基础数据类型传递的是值,不会改变原来的值,还有特殊的String对象也一样。
基础数据类型:整型:byte short int long
浮点型:float double字符型:char
逻辑性:boolean(true false)
例如:
public static void setAge(int a) {
a = 4;
System.out.println(a); //结果a = 4
}
public static void main(String[] args) {
int a = 5;
setAge(a);
System.out.println(a); //结果a=5
}
复制代码
2、对象类型传递是传递对象的引用,操作该对象引用,会改变原来对象的属性。
例如:
public static void setAge(Age age) {
age.setAge(4);
System.out.println(age.getAge()); //输出结果为 : 4
}
public static void main(String[] args) {
Age age = new Age();
age.setAge(10);
setAget(age);
System.out.println(age.getAge()); //结果输出为:4
}
复制代码
作者:
李晓斌
时间:
2011-12-5 16:50
对的“=”是赋值运算符,在java中的意思和数学中的意思是有差别的。
“=”是将等号右边的值赋给等号左边的变量,所以说可以写“a=2”,就是将2赋给a变量,千万不能写“2=a”,这就不对了,不能将变量赋给2这个常量。
另外,“==”这个符号才是和数学中的等号是一样的意思,它是一个比较运算符。
作者:
杨强
时间:
2011-12-5 16:53
赋值 x=y;是把y的值赋给x
y=x;是把x的值赋给y
作者:
别让生命去等待_
时间:
2011-12-5 17:06
a,age都是变量,=号是赋值操作,右边赋给左边
a=age和age=a当然结果不一样
作者:
Francis-Yu
时间:
2011-12-5 18:36
同时你要看到是将形参(a)值用“=”赋值给实际参数(age),你操作的目的是要给类中定义的实参传值,将实参赋给形参没有任何意义。
作者:
杨银川
时间:
2011-12-5 18:41
其实也简单,这是一个赋值问题,age=a是把传进来的值a赋值给age,而a=age是把默认值为0的age赋值给了a。
结果当然不一样了。
作者:
武超
时间:
2011-12-5 18:45
这是将形参局部变量a赋值给成员变量age,使它能够在类中全局使用。
作者:
赵燕燕
时间:
2011-12-6 01:47
在java当中,“=”是赋值的意思,将右边的值赋值给左边
a=b; 就是将b的值赋给了a
你的程序中,是要将参数a的值赋值给age了,所以要写成age=a;
如果写成a=age; 就是将年龄的值赋给a了
作者:
方书堂
时间:
2011-12-6 09:07
杨银川 发表于 2011-12-5 18:41
其实也简单,这是一个赋值问题,age=a是把传进来的值a赋值给age,而a=age是把默认值为0的age赋值给了a。
结 ...
哦,我知道了。谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2