Java中字段的简单说明

时间:2018-07-22 18:46:20

标签: java static field

最后一个打印语句不是输出“ Vince”吗?我想知道为什么没有,以及它背后的概念。

请参见下面的代码:

{% with show=visible|default:2 %}
{% with show_str=show|stringformat:"d" %}
{% for like in likes %}
  {% if forloop.counter <= show %}
    {% if not forloop.first %},{% endif %}
    {{ like.username }}
  {% endif %}
{% endfor %}
{% if likes|length > show|add:0 %}
{% with rest="-"|add:show_str %}
  and {{ likes|length|add:rest }} more
{% endwith %}
{% endif %}
{% endwith %}
{% endwith %}

2 个答案:

答案 0 :(得分:1)

在范围内没有其他称为name的符号(例如,没有局部变量),因此nameExample.name所指的是同一事物。

如果代码说明,例如:

String name; // a local variable with the same name
name = "Tony";
System.out.println(name); // will still print "Tony"

System.out.println(Example.name);

然后最后一行 打印Vince,因为这样您就将Tony分配给了局部变量。

答案 1 :(得分:-1)

尝试回答2个问题。

static是一个static字段。 Example表示此字段/属性在相同类型的所有对象之间共享。这意味着如果我要创建一个Nancy的实例,称为它Nancy.name = "Drew",然后又做了System.out.println(name),那意味着"Drew"现在等于{{1 }},因为静态字段在相同类型的所有对象之间共享。

通过将字段设置为static,可以保证将其更改为Example.namethis.name更改为的值,具体取决于哪个值是最近的。 / p>

this关键字的链接-https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

一个很好的例子,但有点不同-https://stackoverflow.com/a/47035964/10118965