A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Saner 中级黑马   /  2014-4-2 14:01  /  1392 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个自定义的类,类里有一个私有的变量,在构造函数中修改,但是在该类的其他的函数调用该变量时值被修改,要如何使值不被修改

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

5 个回复

倒序浏览
追问基础题下面基础题怎么做
定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,
并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
回复 使用道具 举报
使用  final 修饰
用了这个就表示不可改变了。只能赋值一次。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
可以在构造函数中修改,但是不能在其它方法中修改,有一种办法就是该变量不是静态的,而其它访问的方法是静态的就可以办到

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
定义一个自定义的类,类里有一个私有的变量,在构造函数中修改,但是在该类的其他的函数调用该变量时值被修改,要如何使值不被修改
这个变量是成员变量,而且是被 private 修饰,不能够直接调用。想要赋予值,只有通过构造函数。或者定义 set方法。这些前提是类与类之间的调用。在本类中,私有修饰符是没有作用的。最好的办法就是用 final 修饰。将其定义成一个常量。如果需要二次赋值,而且是类与类之间调用。又想保持值的唯一性,可以使用单例设计模式。值就是一个,不管多少次赋值都是一个数值在变幻。而不是开辟多个空间。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
你把他改成final之后就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马