最终关键字如何在Android中运行

时间:2016-02-09 20:49:28

标签: java android final

我知道在Java中我们使用final关键字来变量或其他东西来使其值不被改变。

使用final有什么不同,如下例所示?

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView campoTexto = (TextView) findViewById(R.id.campoTexto);

    Button botaoTexto = (Button) findViewById(R.id.botaoTexto);
    Button botaoCor = (Button) findViewById(R.id.botaoCor);

    final RelativeLayout fundoTela = (RelativeLayout) findViewById(R.id.fundoTela);

3 个答案:

答案 0 :(得分:20)

这是java ... final关键词在android中总是相同或者在android中都不一样。这取决于你申请的内容。

例如

应用于变量意味着初始化后无法更改。

应用于方法意味着它不能重载方法。

申请课程,你不能覆盖该课程。

答案 1 :(得分:3)

对于变量,final关键字表示它基本上是常量。在这种情况下,由于它是一个对象,因此无法更改其引用。所以基本上如果你再次尝试分配给final TextView campoTexto,编译器就会抛出错误。

答案 2 :(得分:2)

最终只锁定引用。不是引用中的对象和方法。

在Android中,它就像Java中的方式一样。

例如,final int a = 5,则无法更改。

最终final TextView campoTexto;然后不能重新定义campoTexto,但允许使用内部方法like setText or others

更全面的示例是Final Deque<Integer> stack = new ArrayDeque<>();然后无法重新定义堆栈,但允许使用stack.push, pop和其他方法,因此允许堆栈内的对象更改