是不是static修饰的变量可以更改?

来源:8-7 Java 中的 static 使用之静态变量

心中的她

2016-01-31 20:47

在HelloWorld这个类中定义了static string hobby= "imooc"

这个类有一个对象hello,看下面代码:

System.out.println(HelloWorld.hobby);

System.out.println(hello.hobby);

hello.hobby="爱慕课";

System.out.println(HelloWorld.hobby);

输出结果为immoc

                imooc

                爱慕课

请问是不是这个变量只要随便 HelloWorld.hobby或者Hello.hobby这两个其中一个赋值改变,变量 hobby的值都会变?

写回答 关注

3回答

  • qq_哥特低调走红_0
    2016-01-31 20:53:24
    已采纳

    是的,因为hobby这个变量使用static修饰的,所以可以通过类名直接访问(HelloWorld.hobby),创建对象肯定可以访问。

    qq_哥特低... 回复心中的她

    因为hobby这个变量是用static定义的,也就是说这个变量被定义为了静态变量,所以可以通过类名.变量名来调用(HelloWorld.hobby);当然也可以通过new对象来调用。如果这不是静态变量,那么只能通过new对象来调用。....所以,是的,对于hobby这个静态变量来说,两种方法都可以改变它的值。

    2016-02-06 11:57:27

    共 3 条回复 >

  • Patrick_ucsd
    2016-02-01 20:23:27

    常量才是不可修改的,用final修饰。

  • 心中的她
    2016-01-31 20:58:09

    请问是不是这个变量只要随便 HelloWorld.hobby或者Hello.hobby这两个其中一个赋值改变,变量 hobby的值都会变?刚刚描述不清楚

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530649 学习 · 6091 问题

查看课程

相似问题