今天在學(xué)習(xí)變量類型的時(shí)候,發(fā)現(xiàn)了一個(gè)報(bào)錯(cuò)(error: java:無(wú)法從靜態(tài)上下文中引用非靜態(tài)變量), 所以就去查了一下相關(guān)知識(shí),
這里是因?yàn)樗麄兊纳芷诓灰恢?才出現(xiàn)這個(gè)錯(cuò)誤的, 非靜態(tài)變量需要?jiǎng)?chuàng)建對(duì)象才能使用,
這里和javascript有著強(qiáng)烈的區(qū)別, 需要強(qiáng)烈的記憶一下
這里說(shuō)下靜態(tài)變量和非靜態(tài)變量?
1.定義的位置不一樣
局部變量:在方法的內(nèi)部
成員變量:聲明在一個(gè)類中,但在方法窄赋、構(gòu)造方法和語(yǔ)句塊之外;
2.作用范圍不一樣
局部變量:只有方法當(dāng)中才可以使用矩距,出了方法就不能再用
成員變量:整個(gè)類全都可以通用。
3.默認(rèn)值不一樣
局部變量:沒(méi)有默認(rèn)值痊臭,如果想要使用广匙,必須手動(dòng)進(jìn)行賦值
成員變量:如果沒(méi)有賦值鸦致,會(huì)有默認(rèn)值,規(guī)則和數(shù)組一樣
4.內(nèi)存的位置不一樣
局部變量:位于棧內(nèi)存
成員變量,位于堆內(nèi)存。
5.生命周期不一樣
局部變量:隨著方法進(jìn)棧而誕生,隨著方法出棧而死亡。
成員變量:隨著對(duì)象創(chuàng)建而誕生,隨著對(duì)象被垃圾回收而消失。