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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

最近学习了面向对象,太多的格式,让零基础的我,从之前死记硬背变得力不从心了,都分不清什么时候用static了,求大神指导指导

6 个回复

倒序浏览
所有对象共享的,就应该定义为静态的
回复 使用道具 举报
一般定义成员变量和成员方法尽量避免使用static,因为static是属于类成员的。生命周期比较长。如果需求需要让某个成员伴随着类存在就定义成static。
回复 使用道具 举报
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;
}
回复 使用道具 举报 1 0
二楼说的对,一般来说,对所有对象共享的属性或者方法,可以定义成static静态。
ps:学习编程不能靠背,背下来,不理解,效率低,用处也不大。
回复 使用道具 举报
先记下来,用它个四五次,理解,就o了
回复 使用道具 举报
数据需要共享的时候就用静态,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马