天天看點

java面向對象 黑馬程式員學習筆記(5)

多個對象公用的一個不變的值,使用static來修飾

static 是一個修飾符隻能修飾成員,成員變量,成員函數

靜态修飾内容被對象所共享

當成員被靜态修飾後,就多了一個條用方式,除了可以被對象調用,還可以被類名調用。方式對象.bianliang

eg:既然這麼友善,就都用靜态吧?

答:不行的,是因為,這是公共的是對象共享的!除非人都有統一同名,具體情況具體分析。

傳值部落格,飲水機靜态,如果飲水機靜态,太占用空間。可以使用一個飲水機,杯子可以共享靜态

分析,事物的特有的,特有資料随對象存儲在對記憶體中,

新的記憶體:方法區/共享區/資料區

static特點:

1.随着類的加載而加載 、//person進記憶體。靜态已經存在,随着類的消失而消失。說明static的生命周期最長。

2.被所有對象所共享

3.優先于對象存在

4.可以直接被類名所調用

eg:String name //成員變量也叫執行個體變量

       static String name /靜态的成員變量,類變量

問:什麼是對象特有的,什麼是對象共有的?

問:執行個體變量和類變量的差別?

回答:類1.變量随着類的加載而存在于方法區中,執行個體變量随着對象的建立,存在于堆記憶體中(對戲對象裡面)

                2.生命周期:

                        類變量生命周期最長,随着類的消失而消失。

                         執行個體變量生命周期随着對象的消失而消失。

java面向對象 黑馬程式員學習筆記(5)

靜态的使用注意事項:

  1. 靜态方法 static
  2. 靜态變量 static

   (1)靜态方法隻能通路靜态成員(方法和變量)2

   (2)非靜态方法可以通路靜态,也可以通路非靜态

    (3),靜态方法中不可以定義this。super關鍵字

                 靜态優先于對象存在,是以靜态方法中不可以出現this

靜态方法有利有弊:

掌握共享方面:

利,對對象的共享資料單獨存儲,節省空間的存儲,沒必要都存儲一份在對象中