黑马程序员技术交流社区

标题: static的问题,大家帮下 [打印本页]

作者: 刘一阳    时间: 2014-7-17 19:15
标题: static的问题,大家帮下
static是优先于对象存在,在内存中怎么表现的
class Person
{
       
          static   int a;
          static int b;
        public Person(int a,int b)
        {
                this.a=a;
                this.b=b;
        }
        public Person(int b)
        {
                this.b=b;
        }
       
        public void show()
        {
                System.out.println(a+","+b);
        }
               
}
class question
{
        public static void main(String[] args)
        {
                Person s=new Person(1,2);
                s.show();//1/2
                s.b=4;
                s.show();//1/4
                Person s2=new Person(2,5);
                s.show();//2/5
                s2.show();//2/5
       


}
S.show() 为啥等于(2,5)
作者: 1334724053    时间: 2014-7-17 19:24
视频里面说static存在于方法区,而对象存在于堆内存中。被static修饰的变量属于类级变量(类变量)。
作者: 刘小印    时间: 2014-7-17 20:25
这里的a和b是静态的变量,是所以对象共享的属性,第二次赋值完后a和b就是2和5,以后如果不重新赋值,他就一直是2和5。详情晚上私聊




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