黑马程序员技术交流社区

标题: 关于static [打印本页]

作者: Oh.Ba    时间: 2015-4-23 21:15
标题: 关于static
本帖最后由 Oh.Ba 于 2015-4-24 22:17 编辑

很多时候看到一些代码,有些有,有些没有,哪个大神告诉我static的定义是什么,作用是什么???

作者: shield    时间: 2015-4-23 21:37
静态修饰符,在类中,你把方法修饰了static, 那么该方法就可以用类名直接调用,而static方法只能调用static方法。
究其原因主要还是个加载到jvm的时间问题。
static修饰的成员会在对象建立前就先加载到内存
作者: 邓熊财    时间: 2015-4-23 21:56
好像是没有用到函数内特有的数据是可以是使用静态,如果需要使用函数中特有的变量是不可以使用静态,静态放方便对象的用。说的不对不要笑哦!
作者: lqg5522    时间: 2015-4-23 22:03
静态修饰符,用了之后可以直接用类名访问
作者: chenxin2015    时间: 2015-4-23 22:05
Static用来修饰成员变量和成员方法,
如果发现某些数据是多个对象所共享,那么可以将这个成员变量用static
作者: Oh.Ba    时间: 2015-4-23 22:10
shield 发表于 2015-4-23 21:37
静态修饰符,在类中,你把方法修饰了static, 那么该方法就可以用类名直接调用,而static方法只能调用stati ...

不懂,就是说它会有个优先权?还是?
作者: xiaowen_wu    时间: 2015-4-23 22:15
静态修饰符,修饰成员和方法
作者: Oh.Ba    时间: 2015-4-23 22:20
邓熊财 发表于 2015-4-23 21:56
好像是没有用到函数内特有的数据是可以是使用静态,如果需要使用函数中特有的变量是不可以使用静态,静态放 ...

就是说动态类型的就不加这个是吗????
作者: shield    时间: 2015-4-23 22:21
Oh.Ba 发表于 2015-4-23 22:10
不懂,就是说它会有个优先权?还是?

不是优先权问题, 是表示jvm把代码一加载,看到static就直接读到内存里面了。而没有static修饰的,要在对象建立的时候才会加载进去。
作者: Oh.Ba    时间: 2015-4-23 22:33
shield 发表于 2015-4-23 22:21
不是优先权问题, 是表示jvm把代码一加载,看到static就直接读到内存里面了。而没有static修饰的,要在对 ...

好像有点明白了,可能初学不懂吧,有时候不知道加还是不加
作者: shield    时间: 2015-4-23 22:34
Oh.Ba 发表于 2015-4-23 22:33
好像有点明白了,可能初学不懂吧,有时候不知道加还是不加

慢慢看。 毕向东基础视屏包解决
作者: 邓熊财    时间: 2015-4-23 22:36
Oh.Ba 发表于 2015-4-23 22:20
就是说动态类型的就不加这个是吗????

也不能这么说,静态有静态的好处,非静态有飞静态的好处,他们的区别在于调用和是否需要用到方法中特有的数据
作者: LTT    时间: 2015-4-23 22:37
那动态的static是不是经常用
作者: Oh.Ba    时间: 2015-4-23 22:39
LTT 发表于 2015-4-23 22:37
那动态的static是不是经常用

应该是吧,大多数类里都有这个,个别的没有,这我就不太明白了
作者: Oh.Ba    时间: 2015-4-23 22:41
邓熊财 发表于 2015-4-23 22:36
也不能这么说,静态有静态的好处,非静态有飞静态的好处,他们的区别在于调用和是否需要用到方法中特有的 ...

就是说有static的才能被调用?
作者: 张乐    时间: 2015-4-23 22:46
2楼正解,static是个关键.需要好好研究一下.
作者: 邓熊财    时间: 2015-4-23 22:47
Oh.Ba 发表于 2015-4-23 22:41
就是说有static的才能被调用?

没有,是静态的可以被飞静态的调用,但是非静态不可以被静态调用,
静态的调用方法是累名.方法名
作者: Aelous_6    时间: 2015-4-23 22:48
定义static的变量会被每个对象所共享。这个变量属于类本身。
作者: Oh.Ba    时间: 2015-4-23 22:49
邓熊财 发表于 2015-4-23 22:47
没有,是静态的可以被飞静态的调用,但是非静态不可以被静态调用,
静态的调用方法是累名.方法名 ...

貌似有点明白
作者: Oh.Ba    时间: 2015-4-23 22:50
张乐 发表于 2015-4-23 22:46
2楼正解,static是个关键.需要好好研究一下.

是的,对很多关键字的用途了解太少了
作者: 邓熊财    时间: 2015-4-23 22:51
哥们才上学,就是一个连菜鸟都算不上的,哎加油吧
作者: Oh.Ba    时间: 2015-4-23 22:51
Aelous_6 发表于 2015-4-23 22:48
定义static的变量会被每个对象所共享。这个变量属于类本身。

那前面加了private的呢?
作者: Oh.Ba    时间: 2015-4-24 00:05
Aelous_6 发表于 2015-4-23 22:48
定义static的变量会被每个对象所共享。这个变量属于类本身。

这样啊,好像有点明白




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