布丁不哭 發表於 2019-8-18 12:18:00

Android开发final的用法

<h1 class="title">Android开发final的用法&nbsp;</h1>
<div class="author">
<div class="info"><span class="name"><span class="name"><br></span></span>
<div class="meta"><span class="publish-time">&nbsp;</span></div>
</div>
</div>
<div class="show-content" data-note-content="">
<div class="show-content-free">
<p>final如果修饰类,该类不能被继承;</p>
<p>final如果修饰变量,该变量不能被修改,不能再重新赋值,即变为常量;</p>
<p>final如果修饰方法,该方法不能被重写;</p>
<p>此外,只有被final修饰的局部变量可以用在内联方法里。比如onClick里面如果调用button.setText(...),就必须将button设置为final,即:</p>
<pre class="hljs java"><code class="java"> <span class="hljs-keyword">public <span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">MyActivity <span class="hljs-keyword">extends <span class="hljs-title">Activity {
   <span class="hljs-function"><span class="hljs-keyword">protected <span class="hljs-keyword">void <span class="hljs-title">onCreate<span class="hljs-params">(Bundle icicle) {
         <span class="hljs-keyword">super.onCreate(icicle);

         setContentView(R.layout.content_layout_id);
   
         <span class="hljs-keyword">final Button button = (Button) findViewById(R.id.button_id);
         button.setOnClickListener(<span class="hljs-keyword">new View.OnClickListener() {
             <span class="hljs-function"><span class="hljs-keyword">public <span class="hljs-keyword">void <span class="hljs-title">onClick<span class="hljs-params">(View v) {
                <span class="hljs-comment">// Perform action on click
            }
         });
   }
}

</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>使用final的目的大概有以下两条:</p>
<p>1、Java中内部类调用外部类局部变量时要final。</p>
<p>2、当我们写的代码行已经很多的时候,自己可能就忘了之前的意图,把button改了,结果就是:没有按照我们的意愿运行,然后报错。而final修饰后,是不允许修改的,就避免了这样的错误。</p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/it-tsz/p/11371992.html
頁: [1]
查看完整版本: Android开发final的用法