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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

静态成员变量可以用private封装吗?
例如:private static int num ;可以这么定义吗?请大神给出详细 的说明,感激不尽!

19 个回复

倒序浏览
不可以。用static修饰就是为了更方便的类名.方法名进行调用,你再用private修饰还有什么意义呢?
回复 使用道具 举报
怎么不可以,静态只是为了让可以用类名调用或者本类所有对象共享而已,与能否用private修饰有什么必然关系吗?没有
回复 使用道具 举报
可以的  static和private并不冲突啊,比如一家店只卖两种电脑,你只知道他们内存一样大,但是你不知道到底多大,你只要随便拿过来一个用就是了  还有最简单的饿汗式  那个内部对象  不就是静态的,私有化的  还不是调用getInstance方法直接拿过来吗
回复 使用道具 举报
可以的,static修饰变量通常有两种情况,一种是为了方便调用,这自然没有意义
另一种就是为了所以对象共享一个变量,这个可以有。
回复 使用道具 举报
可以的,用毕老师的话就是自己跟自己玩上了,但是没什么意义
回复 使用道具 举报 1 0
private修饰的变量只能在本类中调用,起私有化作用
static修饰的变量,是为了让外部类更方便调用它,以及可以被本类中的静态方法调用。
回复 使用道具 举报
本帖最后由 yangshaoqiang 于 2015-10-29 10:54 编辑

可以的,本来可访问,提供get方法也可访问
回复 使用道具 举报
可以!!!
回复 使用道具 举报
yangshaoqiang 发表于 2015-10-28 21:16
可以的,就如接口的定义一个private static final=常量

接口定义不是public static final 么……
回复 使用道具 举报
可以这样定义啊  但是不能通过类名.变量名调用,只能通过get获取  不懂
回复 使用道具 举报
JYcainiao 发表于 2015-10-28 22:36
可以这样定义啊  但是不能通过类名.变量名调用,只能通过get获取  不懂

嗯,明白了,可以这样定义,但没有实际意义。因为private是封装,不能被外界访问,而static又可以直接类名.调用,故此时也失去了外界直接调用的意义。
回复 使用道具 举报
dai2686779 发表于 2015-10-27 23:06
不可以。用static修饰就是为了更方便的类名.方法名进行调用,你再用private修饰还有什么意义呢? ...

多谢,我明白了。可以这样定义,但没有实际意义。
回复 使用道具 举报
丰池 中级黑马 2015-10-28 23:09:56
14#
不会报错,但没有实际意义!
回复 使用道具 举报
可以被自己直接调用但是又不能被其他类直接调用的变量到底有什么意义呢
回复 使用道具 举报
可以,然并卵。。。。。。。
回复 使用道具 举报
championjx 发表于 2015-10-28 18:54
可以的,用毕老师的话就是自己跟自己玩上了,但是没什么意义

毕老师还是6啊,简直太逗啦
回复 使用道具 举报
月明 中级黑马 2015-10-28 23:33:57
18#
可以 private是为了封装变量 static让变量被所有成员共享 没有冲突
回复 使用道具 举报
你这样用很矛盾。被Static 修饰的成员变量意味着这个成员变量是共享的数据。然后你又将它私有化。。这不是矛盾么?
回复 使用道具 举报
李志慧 发表于 2015-10-28 23:41
你这样用很矛盾。被Static 修饰的成员变量意味着这个成员变量是共享的数据。然后你又将它私有化。。这不是 ...

嗯,现在已经明白了,多谢了。话说我初中同学也有个叫李志慧的,你不会是河南的吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马