Java中静态变量和实例变量的区别和应用场合问题
我看了一本Java书,按照书上的说法,我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?我想请各位用源程序的例子来说明一下这两者的...
我看了一本Java书,按照书上的说法,我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?我想请各位用源程序的例子来说明一下这两者的区别,以及什么场合分别用什么变量。
展开
2个回答
展开全部
你理解的对, 静态变量是共享的, 在整个JVM中只存在一个, 而成员变量是每一个实例所独有的.
成员变量就是供实例自己使用的, 不用多说, 用法很固定.
静态变量根据声明的不同, 功能也不同, 一般的静态变量声明是根据本类实例, 向外提供一些信息的, 这样的静态变量通常声明为public, 以便于和外界交互.
而声明为private的用法就很杂了, 最常见的就是类内的一些并发控制, 还有类内的常变量, 还有尤为重要的单例模式, 都用到的是private 的静态变量.
而在static的声明同时, 声明为final就是常量了, 和C中的const差不多, 用于一些标志位, 和固定的显示用的字符串, 等等
成员变量就是供实例自己使用的, 不用多说, 用法很固定.
静态变量根据声明的不同, 功能也不同, 一般的静态变量声明是根据本类实例, 向外提供一些信息的, 这样的静态变量通常声明为public, 以便于和外界交互.
而声明为private的用法就很杂了, 最常见的就是类内的一些并发控制, 还有类内的常变量, 还有尤为重要的单例模式, 都用到的是private 的静态变量.
而在static的声明同时, 声明为final就是常量了, 和C中的const差不多, 用于一些标志位, 和固定的显示用的字符串, 等等
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询