欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java final本質(zhì)詳解

 更新時(shí)間:2019年09月24日 08:36:15   作者:(*-*)浩  
在本篇文章里小編給大家分享的是關(guān)于java final本質(zhì)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。

含義:final 含義是【僅可以被賦值一次】。

賦值位置:在【聲明時(shí)賦值】、在【構(gòu)造方法中賦值】

舉例:

package com.dada.data;

 

public class TestFinal {

  // 1.聲明時(shí)賦值

  private final int i = 0;

  private final int j;

  public TestF() {

    // 2.構(gòu)造方法中賦值

    j = 10;

  }

}

注意:我們說(shuō) final 是僅可以賦值一次沒(méi)錯(cuò),但是我們知道在 java 中【值有兩種】,【基本數(shù)據(jù)類型的值】和【引用數(shù)據(jù)類型的值】,對(duì)于基本數(shù)據(jù)類型來(lái)說(shuō),賦值就是直接把【值賦給變量】,對(duì)于引用數(shù)據(jù)類型來(lái)說(shuō)就是把【引用賦給變量】。

因此:僅可以賦值一次的含義也就分為兩種情況了,1.如果是基本數(shù)據(jù)類型,那么就是值本身不能變;2.如果是引用數(shù)據(jù)類型的值,那就是引用不能變,但是被引用的內(nèi)容是可以變的。

舉例:

定義 Student 類:

package com.dada.data;

 

public class Student {

  private int id;

  private String name;

  private int score;

  public Student(int id, String name, int score) {

    this.id = id;

    this.name = name;

    this.score = score;

  }

  public int getId() {

    return id;

  }

  public void setId(int id) {

    this.id = id;

  }

  public String getName() {

    return name;

  }

  public void setName(String name) {

    this.name = name;

  }

   

  public int getScore() {

    return score;

  }

  public void setScore(int score) {

    this.score = score;

  }

   

  @Override

  public String toString() {

    return "id: " + id + "\t name:" + name + "\tscore:" + score;

  }

}

定義測(cè)試類:

package com.dada.data;

 

public class TestFinal {

  private final Student ss;

   

  public static void main(String[] args) {

    TestFinal tf = new TestFinal();

  }

  public TestFinal() {

    Student student = new Student(1, "dada", 3);

    // 第一次賦值

    ss = student;

    System.out.println(ss.toString());

     

    // 修改引用所對(duì)應(yīng)的對(duì)象的內(nèi)容

    student.setId(2);

    student.setName("hehe");

    student.setScore(10);

    System.out.println(ss.toString());

  }

}

輸出結(jié)果:

id: 1   name:dada  score:3

id: 2   name:hehe  score:10

總結(jié):

由上面的例子可以知道,變量被 final 修飾之后其引用的內(nèi)容還是可以被修改的,之所以很多時(shí)候我們感覺(jué)它不能被修改是因?yàn)椋?/p>

1.通常我們是在定義變量時(shí)進(jìn)行的賦值,這個(gè)時(shí)候?qū)τ诨绢愋蛿?shù)據(jù)來(lái)說(shuō)它是永遠(yuǎn)不能改變的。

2.對(duì)于引用類型數(shù)據(jù)來(lái)說(shuō),因?yàn)槲覀儫o(wú)法獲取對(duì)應(yīng)的引用,所以也會(huì)覺(jué)得引用類型數(shù)據(jù)也是不能被修改的。

以上就是java final本質(zhì)解釋的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論