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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭军亮 中级黑马   /  2013-5-2 23:29  /  1610 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭军亮 于 2013-5-4 16:28 编辑

如果类中定义一个静态的变量,可以通过类的对象改变这个静态变量的值吗

8 个回复

倒序浏览
可以改变的。
public class Test2 {
        static int a = 1;
        public static void main(String[] args){
                System.out.println(a);
                Test2 b = new Test2();
                b.a = 2;
                System.out.println(a);
        }

}
回复 使用道具 举报
当然可以。其实这种问题写几句代码测试一下就知道了。
回复 使用道具 举报
    可以改变的   如果不要改变 你可以定义一个 final类型的   嘻嘻
回复 使用道具 举报
当然可以,静态只是在类加载的时候变量就加载进内存了。如果这个变量被finale修饰,就不能改变了!
回复 使用道具 举报
可以改变,顺便说一下楼上,如果被final修饰就不能改变了
回复 使用道具 举报
对象的静态成员被这个类的所有对象所共享,只要不被final修饰符修饰就可以被再赋值
回复 使用道具 举报
可以赋值,1楼正解。但需要注意的是,当再调用全局变量时就是修改后的值。
类变量作为全局变量为所有的用户共享,一般不做改动。

另外也可以在类中直接赋值,还以1楼的代码解释吧。
public class Test2 {
        static int a = 1;
        public static void main(String[] args){
                a = 5;
                System.out.println(a);
        }
回复 使用道具 举报
可以通过类的对象改变这个静态变量的值,
但是改变这个值就改变了之后所建立对象的这个值,被静态修饰的都是对象所共有的,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马