午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android開(kāi)發(fā)必知的java嵌套類(lèi)

瀏覽:160日期:2022-09-05 15:13:17

嵌套類(lèi)指定義在另一個(gè)類(lèi)的內(nèi)部的類(lèi),嵌套類(lèi)的存在只是為了他的外圍類(lèi)。嵌套類(lèi)有四種:靜態(tài)成員類(lèi),非靜態(tài)成員類(lèi),匿名類(lèi),局部類(lèi)。

靜態(tài)成員類(lèi)是最簡(jiǎn)單的一種嵌套類(lèi)。最好把它看做是一個(gè)普通的類(lèi),只是恰好定義在另一個(gè)類(lèi)的內(nèi)部。靜態(tài)成員類(lèi)可以訪問(wèn)外圍類(lèi)的所有成員,包括那些私有的變量。靜態(tài)成員類(lèi)同樣遵守可訪問(wèn)性規(guī)則,如果將它定位私有,它就指在外圍類(lèi)的內(nèi)部才能訪問(wèn)到。

在Android中 最為熟悉listview的ViewHolder我們通常使用的就是靜態(tài)成員類(lèi),通常作為一個(gè)公有的輔助類(lèi)。作為L(zhǎng)istview的緩存變量緩存view中布局。

私有靜態(tài)成員類(lèi),用來(lái)代表外圍類(lèi)所代表的對(duì)象的組件。

代碼如下

public class PhotoListAdapter extends RecyclerView.Adapter<PhotoListAdapter.ImageVH> {static class ImageVH extends RecyclerView.ViewHolder { //代碼省略 }}

?

非靜態(tài)成員類(lèi)與靜態(tài)成員類(lèi)的語(yǔ)法區(qū)別在于是否有修飾符static 。盡管它們的語(yǔ)法很像,但是兩者的區(qū)別很大。非靜態(tài)成員類(lèi)的每個(gè)實(shí)例都隱含這與外部類(lèi)的一個(gè)外圍實(shí)例相關(guān)聯(lián),非靜態(tài)成員類(lèi)實(shí)例方法內(nèi)部,可以調(diào)用外圍實(shí)例上的方法,只有靜態(tài)成員類(lèi)的實(shí)例可以在外圍類(lèi)獨(dú)立存在,沒(méi)有外圍實(shí)例的情況下,無(wú)法創(chuàng)建非靜態(tài)成員類(lèi)的實(shí)例。

當(dāng)非靜態(tài)成員類(lèi)的實(shí)例創(chuàng)建,它與外圍實(shí)例之間的關(guān)聯(lián)也隨之被建立,而且這種關(guān)聯(lián)關(guān)系以后不能被修改。 這個(gè)關(guān)聯(lián)通常發(fā)生在外圍類(lèi)的某個(gè)實(shí)例方法調(diào)用了非靜態(tài)成員類(lèi)的構(gòu)造器時(shí)。 這種關(guān)聯(lián)關(guān)系需要消耗非靜態(tài)成員類(lèi)實(shí)例的空間,并增加了構(gòu)造的時(shí)間開(kāi)銷(xiāo)。 如果成員類(lèi)不需要訪問(wèn)外圍類(lèi)實(shí)例 請(qǐng)加上static修飾詞

public class PhotoListAdapter extends RecyclerView.Adapter<PhotoListAdapter.ImageVH> { class ImageVH extends RecyclerView.ViewHolder { // 真是對(duì)外部類(lèi)的實(shí)例持有,在Android開(kāi)發(fā)中很大部分activity中的context的內(nèi)存泄露因?yàn)檫@個(gè)原因。 }}

?

匿名類(lèi)不同與JAVA的其他語(yǔ)法單元,匿名類(lèi)沒(méi)有名字,它不是外圍類(lèi)的一個(gè)成員,它不與其他的成員一起被申明,而是在使用的同時(shí)被聲明實(shí)例化。匿名類(lèi)可以出現(xiàn)在代碼任何存在表達(dá)式的地方。只有匿名類(lèi)出現(xiàn)在非靜態(tài)的環(huán)境中,他才有外圍實(shí)例,即使它聲明在靜態(tài)的環(huán)境中,也不可能擁有任何靜態(tài)成員。

imageView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { // 代碼省略} });

?

局部類(lèi)在任何'可以聲明局部變量'的地方聲明。同樣遵守作用域規(guī)則,1. 局部類(lèi)擁有名字,可以被重復(fù)使用。2. 與匿名類(lèi),只有當(dāng)局部類(lèi)是在非靜態(tài)環(huán)境定義的時(shí)候,才有外圍實(shí)例,不能包含靜態(tài)成員。

public class mainActivity extends Activity{ private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) { // 此處同樣可能引起context持有導(dǎo)致的內(nèi)存泄露} }; }

?

來(lái)自:http://www.jianshu.com/p/907758c2a63f

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 激情五月婷婷色 | 国产原创在线 | 色天堂影院 | 久久国产99 | 日韩一区二区免费在线观看 | 手机在线看a | 亚洲黄色a| 亚欧三级 | 黄色免费看 | 成年人看的免费视频 | 国内91视频 | 日本午夜在线 | 成人aaaa| 黄色av网站在线观看 | 国产乱子伦 | 亚洲黄网在线观看 | 精品在线免费视频 | 五月伊人婷婷 | 欧美日韩999 | 拔插拔插视频 | 国产精品嫩草69影院 | 亚洲欧美另类视频 | 五月婷婷六月天 | av在线超碰| 日本网站在线免费观看 | 中文av网站 | 五月天综合网站 | 高清成人综合 | 久久视频免费 | 成人区视频| 日日射av | 日韩国产在线播放 | 欧美日韩一区在线 | 中文字幕欧美视频 | a一级黄色片 | 国产在线无 | 亚洲天堂网在线视频 | 奇米影视久久 | 婷婷超碰 | 韩国黄色一级大片 | 久久国产精品系列 |