黑马程序员技术交流社区

标题: 帮忙解答下 [打印本页]

作者: hlh    时间: 2016-5-8 00:24
标题: 帮忙解答下
public class Test {
    public static void main(String[] args)  {
        MyClass myClass1 = new MyClass();
        MyClass myClass2 = new MyClass();
        System.out.println(myClass1.i);
        System.out.println(myClass1.j);
        System.out.println(myClass2.i);
        System.out.println(myClass2.j);

    }
}

class MyClass {
    public final double i = Math.random();
    public static double j = Math.random();
}
这里的final修饰的常量i为什么变化了?哪位大神能帮忙解答一下啊


作者: 土豆你个马铃薯    时间: 2016-5-8 01:19
没改变啊,你创建的是两个对象,随机给出了两个对应的值
作者: hlh    时间: 2016-5-8 02:24
土豆你个马铃薯 发表于 2016-5-8 01:19
没改变啊,你创建的是两个对象,随机给出了两个对应的值

光顾着想常量去了 以为random是创建的同一个对象
作者: 小K哥    时间: 2016-5-8 08:26
你这是实例变量不是静态变量,对象独享实例变量,静态变量才被对象共享,你这里有两个对象,那肯定值不一样啦。
作者: Love丶cd    时间: 2016-5-8 08:47
亲,程序猿一定要细心哦,你实例化了两个MyClass对象,里边的i对象自然会随机的分配两个不同的或者相同的值。并不是i的值变了,




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