java的get()函数还是可以个
举个例子,ClassStudent{privateIntegerage=0;pubulicvoidsetAge(integerage){if(age<0)return;e...
举个例子,
Class Student
{
private Integer age=0;
pubulic void setAge(integer age)
{
if(age<0)
return;
else this.age=age;
}
public Integer getAge()
{
return age;
}
}
age定义成私有变量,然后写get函数获取,set函数设置;
但如果我在主函数里这样弄:
Student stu= new Student();
Integer age = stu.getAge();
age = -50;
这样不是还是把age设置成了非法的值吗?我不懂了。。。谁能帮忙解释一下 展开
Class Student
{
private Integer age=0;
pubulic void setAge(integer age)
{
if(age<0)
return;
else this.age=age;
}
public Integer getAge()
{
return age;
}
}
age定义成私有变量,然后写get函数获取,set函数设置;
但如果我在主函数里这样弄:
Student stu= new Student();
Integer age = stu.getAge();
age = -50;
这样不是还是把age设置成了非法的值吗?我不懂了。。。谁能帮忙解释一下 展开
2个回答
2015-01-23 · 知道合伙人软件行家
关注
展开全部
不会的 你改的只是 a的值,而不是 stu的属性age的值,你输出一下 age就知道了
看不懂 再仔细理解一下 下面这句话
1. 在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;(所以int的东西放在栈中)
2. 堆内存用来存放由new创建的对象和数组以及对象的实例变量。
看不懂 再仔细理解一下 下面这句话
1. 在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;(所以int的东西放在栈中)
2. 堆内存用来存放由new创建的对象和数组以及对象的实例变量。
更多追问追答
追问
不对啊,主函数的变量age已经拿到了stu.age的引用,当然赋值可以改变它的值了
追答
晕 啥引用啊 int是存在 栈中的,而不是堆中 所以不存在你说的情况 你的 a 和 stu的 age属性 没有任何关系了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、你主函数中的age都没设置值(所以你用stu.getAge()是得不到数据的),给对象stu的age赋值要调用setAge()函数;
2、主函数中的age = -50;并没有给对象里的age赋值;
3、正确的使用方法如下:
Student stu= new Student();
stu.setAge( -50);
Integer age =stu.getAge();//因为设置的age值为-50,所以得不到结果(有函数setAge()中的retuen可知)
2、主函数中的age = -50;并没有给对象里的age赋值;
3、正确的使用方法如下:
Student stu= new Student();
stu.setAge( -50);
Integer age =stu.getAge();//因为设置的age值为-50,所以得不到结果(有函数setAge()中的retuen可知)
追问
假设我student的构造函数里已经给age赋值了呢?
追答
那样的话,就可以直接调用getAge()函数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询