this關鍵字 static變數 理解

2021-07-22 12:21:12 字數 2635 閱讀 1324

this關鍵字:

1.為什麼不能在構造方法中出現該物件?

*   a.現有類程式先載入類  由建立物件 p1

*   b.同乙個類可以建立多個物件 既然可以有p1  p2  p3

*   要想在類中體現出物件

*   引入this關鍵字

*   

*   q:當我的成員變數名與形參名相同了?

*     answer:this---區分形參和成員變數

*  2.this的作用?

*    this關鍵字  起到乙個引用作用 代表 該物件

*    當你建立乙個物件 就有乙個this與之對應

*    

*  3.this的用法?

*  *    a.修飾成員變數

*      this.成員變數

*      區分成員變數和引數名(當成員變數和形參名相同了)

*    b.修飾方法

*      this.方法();

*      同一類中呼叫方法可以省略this

*    c.修飾構造方法

*      this();

*      用this修飾構造器該**必須位於第一行

方法傳值:

1.基本資料型別的引數傳遞

無法通過方法呼叫改變變數的值

2.引用資料型別的引數傳遞

可以通過方法呼叫改變變數的值

1.什麼是static 

*   static  靜態的  

*   非static  非靜態的  例項的

*   static string schoolname;靜態變數

double score;  例項變數 非靜態變數

*   static變數只有乙份

*    

* 2.static記憶體結構圖

* static變數只有乙份,存在方法區中

* * 3.static變數和非static變數的區別(都是成員變數,不是區域性變數)

* 1.在記憶體中份數不同

* 不管有多少個物件,static變數只有1份。對於每個物件,例項變數都會有單獨的乙份

* static變數是屬於整個類的,也稱為類變數

* 而非靜態變數是屬於物件的,也稱為例項變數

*  2.在記憶體中存放的位置不同

*  靜態變數存在方法區中

*  例項變數存在堆記憶體中 *  

*  3.訪問的方式不同

*  例項變數: 物件名.變數名  stu1.name="小明明";

*  *  

類名.變數名  student.schoolname="千鋒北科校區"; 推薦使用

*  4.在記憶體中分配空間的時間不同

*  例項變數:建立物件的時候才分配了空間

*  靜態變數:第一次使用類的時候 

*  student.schoolname="千鋒北科校區";

*  或者student stu1 = new student("小明","男",20,98);

1.static變數

*  2.static方法

*    1.作用:用來操作靜態變數

*    2.訪問方式

*    

student.showschoolname();//當前類中可以省略類名

*      stu1.showschoolname();//不推薦使用

*    3.不可以

*    

靜態方法中不可以直接訪問例項變數:system.out.println("name="+name);

靜態方法中不可以訪問this,super:system.out.println(this);

靜態方法中不可以直接訪問例項方法 :introduce();

why????

靜態變數,靜態方法在第一次訪問類的時候在記憶體分配空間

但是例項變數,例項方法,this,super是在建立每個物件的時候才在記憶體分配空間

所以靜態方法中不能直接訪問例項變數,例項方法,this,super,

因為此時可能物件還沒有建立呢,這麼內容在記憶體中還不存在呢

*      

*    4.可以

*  例項方法中可以直接訪問靜態變數,靜態方法

*  原因同上

1.static變數

*  2.static方法

*  3.static靜態**塊

*  1.語法  static

*  2.執行時間,執行次數:第一載入該類的時候執行,並且只執行1次

*  3.作用:載入類時給靜態變數初始化

*  4.static**塊可以有多個,從前向後依次執行

*  4.**塊 了解即可

*  1.語法{}

*  2.執行時間,執行次數: 建立每個物件之前執行。每建立乙個物件都會執行一次

*  3.**塊可以有多個,從前向後依次執行

*  4.作用:沒有多大的作用,使用不多;可以將多個構造方法中的共同**提取出來,放入**塊

*  *  5.類的成員(類的兒子)

*  1.成員變數(靜態變數和例項變數)

*  2.成員方法(靜態方法和例項方法)

*  3.構造方法

*  4.靜態**塊

*  5.**塊

*  6.內部類*(沒講)  

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...

Java this關鍵字,static關鍵字

1,this.屬性,this.方法,表示當前物件的屬性,當前類的方法 2,this,表示當前物件,當前正在操作這個方法的物件就是當前物件 3,使用this 引數若干 可以呼叫當前類的構造方法,如果,構造方法之間相互呼叫,則有要求 一 this 必須放在首行,二 至少有乙個構造方法是沒有呼叫this ...

static關鍵字 final 關鍵字

特點 隨著類的載入而載入,也就是說靜態會隨著類的消失而消失,說明他的生命週期最長 靜態變數 static 關鍵字修飾成員變數,使用 類名.變數名 的形式來訪問,也可以使用 例項物件.變數名 的形式來訪問。靜態方法 static 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...