黑马程序员技术交流社区
标题:
有关static,怎么区分静态与非静态
[打印本页]
作者:
a527512132
时间:
2016-1-28 23:56
标题:
有关static,怎么区分静态与非静态
最近学习了面向对象,太多的格式,让零基础的我,从之前死记硬背变得力不从心了,都分不清什么时候用static了,求大神指导指导
作者:
pea
时间:
2016-1-29 00:30
所有对象共享的,就应该定义为静态的
作者:
only-hou
时间:
2016-1-29 10:12
一般定义成员变量和成员方法尽量避免使用static,因为static是属于类成员的。生命周期比较长。如果需求需要让某个成员伴随着类存在就定义成static。
作者:
j6819236
时间:
2016-1-29 10:59
static静态修饰的变量和方法,会在对应类加载时就启动,为其分配内存空间,也就是说不论你创不创建对象,或者创建任意对象,被static修饰的变量和方法都是这个类所有对象共享的或者直接类名.XXX调用。通俗点讲,就是你要用这个变量或方法,我也要用同一个变量或方法,就用static修饰。
使用举例:例如
public class Demo {
public void main(String[] args) {
System.out.println(Test.num); //直接类名.变量名就可以调用
Test t1=new Test();
t1.num+=10; //num=20
System.out.println(t1.num);
Test t2=new Test();
t2.num+=10; //这个num=30;这个时候你想继续使用上面的20,要被static修饰,所有对象共享 ,如果不用static修饰num=20,因为不共享了,等于重新定义了一个num,只为定义的对象使用.
System.out.println(t2.num);
}
}
class Test {
public static int num=10;
}
作者:
西贝
时间:
2016-1-29 12:37
二楼说的对,一般来说,对所有对象共享的属性或者方法,可以定义成static静态。
ps:学习编程不能靠背,背下来,不理解,效率低,用处也不大。
作者:
梁志斌
时间:
2016-1-30 01:32
先记下来,用它个四五次,理解,就o了
作者:
hi丶bo
时间:
2016-1-30 10:21
数据需要共享的时候就用静态,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2