麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

成員變量、類變量、局部變量的區(qū)別

2019-11-14 09:04:20
字體:
供稿:網(wǎng)友

變量名首寫字母使用小寫,如果由多個單詞組成,從第2個單詞開始的其他單詞的首寫字母使用大寫。 如果局部變量的名字和成員變量的名字相同, 要想在該方法中使用成員變量,必須使用關鍵字this。

class People { String name = "類體重定義的name"; //類中的成員變量并賦值 People(){ } public void speak() { String name = "類體方法中定義的name"; //在方法speak中定義和成員變量名字相同的name并賦值 System.out.PRintln(name); System.out.println(this.name); //通過this來訪問類中的成員變量 } } public class TestThis { //源文件中只能有一個類是public類,并且源文件的名字必須與這個類的名字完全相同,如 //果沒有public類,那么源文件的名字只要和某個類的名字相同就可以了。 public static void main(String[] args) { People myPeople = new People(); myPeople.speak(); } }

這里寫圖片描述

成員變量和局部變量的區(qū)別

成員變量: 1、成員變量定義在類中,在整個類中都可以被訪問。 2、成員變量隨著對象的建立而建立,隨著對象的消失而消失,存在于對象所在的堆內(nèi)存中。 3、成員變量有默認初始化值。

局部變量: 1、局部變量只定義在局部范圍內(nèi),如:函數(shù)內(nèi),語句內(nèi)等,只在所屬的區(qū)域有效。 2、局部變量存在于棧內(nèi)存中,作用的范圍結束,變量空間會自動釋放。 3、局部變量沒有默認初始化值 在使用變量時需要遵循的原則為:就近原則 首先在局部范圍找,有就使用;接著在成員位置找。

成員變量和類變量的區(qū)別 這里寫圖片描述

由static修飾的變量稱為靜態(tài)變量,其實質(zhì)上就是一個全局變量。如果某個內(nèi)容是被所有對象所共享,那么該內(nèi)容就應該用靜態(tài)修飾;沒有被靜態(tài)修飾的內(nèi)容,其實是屬于對象的特殊描述。 不同的對象的實例變量將被分配不同的內(nèi)存空間, 如果類中有類變量,那么所有對象的這個類變量都分配給相同的一處內(nèi)存,改變其中一個對象的這個類變量會影響其他對象的這個類變量,也就是說對象共享類變量。

class MyAdd { int count = 0; //成員變量計數(shù)器 static int sum = 0; //靜態(tài)變量計數(shù)器 String name; MyAdd(String name){ this.name = name; } public void myAddMethod() { count++; System.out.println(name+"調(diào)用成員變量后的值:"+count); } public void staticAddMethod() { sum++; System.out.println(name+"調(diào)用類后變量的值:"+sum); } } public class TestThis { public static void main(String[] args) { MyAdd add1 = new MyAdd("add1"); MyAdd add2 = new MyAdd("add2"); add1.myAddMethod(); add2.myAddMethod(); add1.myAddMethod(); add1.staticAddMethod(); add2.staticAddMethod(); add1.staticAddMethod(); } }

這里寫圖片描述

上述方法的內(nèi)存結構示意圖: 這里寫圖片描述

成員變量和類變量的區(qū)別: 1、兩個變量的生命周期不同 成員變量隨著對象的創(chuàng)建而存在,隨著對象的回收而釋放。 靜態(tài)變量隨著類的加載而存在,隨著類的消失而消失。 2、調(diào)用方式不同 成員變量只能被對象調(diào)用。 靜態(tài)變量可以被對象調(diào)用,還可以被類名調(diào)用。 3、別名不同 成員變量也稱為實例變量。 靜態(tài)變量也稱為類變量。 4、數(shù)據(jù)存儲位置不同 成員變量存儲在堆內(nèi)存的對象中,所以也叫對象的特有數(shù)據(jù)。 靜態(tài)變量數(shù)據(jù)存儲在方法區(qū)(共享數(shù)據(jù)區(qū))的靜態(tài)區(qū),所以也叫對象的共享數(shù)據(jù)。

static:★★★ 關鍵字,是一個修飾符,用于修飾成員(成員變量和成員函數(shù))。 特點: 1、想要實現(xiàn)對象中的共性數(shù)據(jù)的對象共享??梢詫⑦@個數(shù)據(jù)進行靜態(tài)修飾。 2、被靜態(tài)修飾的成員,可以直接被類名所調(diào)用。也就是說,靜態(tài)的成員多了一種調(diào)用方式。類名.靜態(tài)方式。 3、靜態(tài)隨著類的加載而加載。而且優(yōu)先于對象存在。

弊端: 1、有些數(shù)據(jù)是對象特有的數(shù)據(jù),是不可以被靜態(tài)修飾的。因為那樣的話,特有數(shù)據(jù)會變成對象的共享數(shù)據(jù)。這樣對事物的描述就出了問題。所以,在定義靜態(tài)時,必須要明確,這個數(shù)據(jù)是否是被對象所共享的。 2、靜態(tài)方法只能訪問靜態(tài)成員,不可以訪問非靜態(tài)成員。 因為靜態(tài)方法加載時,優(yōu)先于對象存在,所以沒有辦法訪問對象中的成員。 3、靜態(tài)方法中不能使用this,super關鍵字。 因為this代表對象,而靜態(tài)在時,有可能沒有對象,所以this無法使用。

什么時候定義靜態(tài)成員呢?或者說:定義成員時,到底需不需要被靜態(tài)修飾呢? 成員分兩種: 1、成員變量。(數(shù)據(jù)共享時靜態(tài)化) 該成員變量的數(shù)據(jù)是否是所有對象都一樣: 如果是,那么該變量需要被靜態(tài)修飾,因為是共享的數(shù)據(jù)。 如果不是,那么就說這是對象的特有數(shù)據(jù),要存儲到對象中。 2、成員函數(shù)。(方法中沒有調(diào)用特有數(shù)據(jù)時就定義成靜態(tài)) 如果判斷成員函數(shù)是否需要被靜態(tài)修飾呢? 只要參考,該函數(shù)內(nèi)是否訪問了對象中的特有數(shù)據(jù): 如果有訪問特有數(shù)據(jù),那方法不能被靜態(tài)修飾。 如果沒有訪問過特有數(shù)據(jù),那么這個方法需要被靜態(tài)修飾。

成員變量和靜態(tài)變量的區(qū)別: 1、成員變量所屬于對象。所以也稱為實例變量。 靜態(tài)變量所屬于類。所以也稱為類變量。 2、成員變量存在于堆內(nèi)存中。 靜態(tài)變量存在于方法區(qū)中。 3、成員變量隨著對象創(chuàng)建而存在。隨著對象被回收而消失。 靜態(tài)變量隨著類的加載而存在。隨著類的消失而消失。 4、成員變量只能被對象所調(diào)用 。 靜態(tài)變量可以被對象調(diào)用,也可以被類名調(diào)用。 所以,成員變量可以稱為對象的特有數(shù)據(jù),靜態(tài)變量稱為對象的共享數(shù)據(jù)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美精品免费一区二区三区 | 超久久 | 亚洲性生活免费视频 | 日韩av有码在线 | 爱性久久久久久久 | 久久精品视频在线看99 | 偷偷操偷偷操 | 日本韩国欧美一级片 | 成人短视频在线观看免费 | 韩国精品视频在线观看 | 亚洲欧洲日韩av | 91成人免费在线观看 | 久久久久久久久久性 | 色吧综合网 | 成人一级黄色片 | 久久成人国产精品 | 久久9999久久| 久久久精品综合 | 美女黄网站免费观看 | 国产精品伊人久久 | 成人福利在线视频 | 免费在线观看午夜视频 | 免费淫视频 | 可以看逼的视频 | 看免费av | 一区二区三区国产在线 | 久久千人斩 | 精品国产1区2区3区 av视屏 | 成人在线视频在线观看 | 国产 一区 精品 | 久久毛片免费观看 | 亚洲精中文字幕二区三区 | 国产999在线| 姑娘第5集高清在线观看 | 久久久线视频 | 真人一级毛片免费 | 精品三级内地国产在线观看 | 羞羞答答xxdd在线播放 | 亚洲va久久久噜噜噜久久男同 | 99视频网 | 欧美一级毛片免费观看 |