黑马程序员技术交流社区

标题: 请帮忙解答疑惑 [打印本页]

作者: 完美恋爱    时间: 2013-11-18 14:11
标题: 请帮忙解答疑惑
本帖最后由 完美恋爱 于 2013-11-18 14:13 编辑

静态变量是成员变量吗?如果是,那为什么毕老师的视频里把成员变量和静态变量区分开了呢?
作者: ╰ゝ冷筱柔    时间: 2013-11-18 15:34
类的!成员变量被声明为static(称为静态成员变量)!是类的成员变量。
作者: zuiaichiyu    时间: 2013-11-18 19:32
静态变量是成员变量吗?如果是,那为什么毕老师的视频里把成员变量和静态变量区分开了呢?
静态变量和成员变量没有所属关系,一个变量被static关键字修饰,就是静态变量
静态变量可以存在成员位置,当做成员变量
也可以存在局部位置,作为成员变量,比如一个方法中的内部类要访问一个局部变量,该变量就必须定义成静态的,为的是将该变量的声明周期延长 比如说下面的代码
class Outer{
     public void mthod{
           static int i = 1;
           class Inner{
               public void show{
                   System.out.prinln(i);
               }
           }
     }
}

作者: 段光宇    时间: 2013-11-18 19:42
静态变量当然是成员变量,只是被static修饰的成员变量。

而把它俩分开是因为有区别:
静态变量,在内存中,是所有对象共享的,而实例变量则是自己拥有自己的;
实例变量需要通过类的实例对象来调用,而静态变量,只要类名就可以调用了。
作者: hurryup    时间: 2013-11-18 21:07
以static 修饰词修饰的成员变量为类变量,以static为修饰词的方法是类方法。当声明一个成员是static时,可以在类的任何对象创建之前访问它,而无需引用任何对象。static成员最常见的是main()方法,因为在程序开始执行时,必须调用它。
被声明为static的变量本质上是全局变量。当声明该类的对象时,不生成static变量的副本,类的所有实例共享同一个static变量。
声明为static的方法有如下限制:
1.它们仅可以调用其它的static方法。
2.它们只能访问static数据。
3.它们不能以任何方式引用this或super.




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