黑马程序员技术交流社区

标题: 静态成员变量可以用private封装吗? [打印本页]

作者: 豫东少侠    时间: 2015-10-27 23:01
标题: 静态成员变量可以用private封装吗?
静态成员变量可以用private封装吗?
例如:private static int num ;可以这么定义吗?请大神给出详细 的说明,感激不尽!

作者: dai2686779    时间: 2015-10-27 23:06
不可以。用static修饰就是为了更方便的类名.方法名进行调用,你再用private修饰还有什么意义呢?
作者: Kris    时间: 2015-10-27 23:23
怎么不可以,静态只是为了让可以用类名调用或者本类所有对象共享而已,与能否用private修饰有什么必然关系吗?没有
作者: 夕风秋凉    时间: 2015-10-27 23:49
可以的  static和private并不冲突啊,比如一家店只卖两种电脑,你只知道他们内存一样大,但是你不知道到底多大,你只要随便拿过来一个用就是了  还有最简单的饿汗式  那个内部对象  不就是静态的,私有化的  还不是调用getInstance方法直接拿过来吗
作者: redsifei    时间: 2015-10-28 00:04
可以的,static修饰变量通常有两种情况,一种是为了方便调用,这自然没有意义
另一种就是为了所以对象共享一个变量,这个可以有。
作者: championjx    时间: 2015-10-28 18:54
可以的,用毕老师的话就是自己跟自己玩上了,但是没什么意义
作者: 萧刹520    时间: 2015-10-28 21:08
private修饰的变量只能在本类中调用,起私有化作用
static修饰的变量,是为了让外部类更方便调用它,以及可以被本类中的静态方法调用。
作者: yangshaoqiang    时间: 2015-10-28 21:16
本帖最后由 yangshaoqiang 于 2015-10-29 10:54 编辑

可以的,本来可访问,提供get方法也可访问
作者: jyf823691221    时间: 2015-10-28 21:43
可以!!!
作者: JYcainiao    时间: 2015-10-28 22:16
yangshaoqiang 发表于 2015-10-28 21:16
可以的,就如接口的定义一个private static final=常量

接口定义不是public static final 么……
作者: JYcainiao    时间: 2015-10-28 22:36
可以这样定义啊  但是不能通过类名.变量名调用,只能通过get获取  不懂
作者: 豫东少侠    时间: 2015-10-28 23:01
JYcainiao 发表于 2015-10-28 22:36
可以这样定义啊  但是不能通过类名.变量名调用,只能通过get获取  不懂

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

多谢,我明白了。可以这样定义,但没有实际意义。
作者: 丰池    时间: 2015-10-28 23:09
不会报错,但没有实际意义!
作者: lkjmnbqwe    时间: 2015-10-28 23:19
可以被自己直接调用但是又不能被其他类直接调用的变量到底有什么意义呢
作者: 游小星    时间: 2015-10-28 23:22
可以,然并卵。。。。。。。
作者: snnairow    时间: 2015-10-28 23:26
championjx 发表于 2015-10-28 18:54
可以的,用毕老师的话就是自己跟自己玩上了,但是没什么意义

毕老师还是6啊,简直太逗啦
作者: 月明    时间: 2015-10-28 23:33
可以 private是为了封装变量 static让变量被所有成员共享 没有冲突
作者: 李志慧    时间: 2015-10-28 23:41
你这样用很矛盾。被Static 修饰的成员变量意味着这个成员变量是共享的数据。然后你又将它私有化。。这不是矛盾么?
作者: 豫东少侠    时间: 2015-10-29 13:04
李志慧 发表于 2015-10-28 23:41
你这样用很矛盾。被Static 修饰的成员变量意味着这个成员变量是共享的数据。然后你又将它私有化。。这不是 ...

嗯,现在已经明白了,多谢了。话说我初中同学也有个叫李志慧的,你不会是河南的吧?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2