青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天之道

享受編程的樂(lè)趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

淺談Java內(nèi)部類

Posted on 2013-09-28 14:26 hoshelly 閱讀(277) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Java

什么是內(nèi)部類呢?顧名思義,內(nèi)部類就是在類中可以定義另一個(gè)的類。內(nèi)部類是外部對(duì)象的一個(gè)成員,同樣具有public , private 和 protected的訪問(wèn)權(quán)限。

public class Test
{
    public static void main(String[] args)
    {
      Family my = new Family(“Jonh",130);
      my.getMsg();
    }
}
class Family
{
     Family(String name,int weight){ this.f = new Father(name,weight); }
     private class Father
     {
       private int weight;
       private String name;
       Father(String n,int w)
       {
          this.name = n;
          this.weight = w;
       }
       public int getWeight()
       {
          return weight;
       }
       public String getName()
       {
          return name;
       }
      }

     private Father f;
     public void getMsg()
     {
          System.out.println("Name: "+f.getName()+"\nWeight: "+f.getWeight());
     }
}
類Family 中有一個(gè)Father類,聲明為private,表明在Family類中可以創(chuàng)建一個(gè)實(shí)例對(duì)象,這個(gè)Father專屬于Family類。普通的(非內(nèi)部)類不能聲明為private或者protected,只能聲明為public。因此這樣的代碼是不被允許的:
Family.Father a = my.new Father("Jonh",150);

如果要使用上述代碼,只要修改內(nèi)部類的訪問(wèn)權(quán)限就可以了,如去掉private權(quán)限,則默認(rèn)為包訪問(wèn)權(quán)限,同一個(gè)包中的類都可以訪問(wèn)它,而不是只能從Family類才能訪問(wèn)。

public class test
{
    public static void main(String[] args)
    {
      Family my = new Family("Jonh",130);
      my.getMsg();
      Family.Father a = my.new Father("Jonh",150);
      System.out.println("Name: "+a.getName()+"\nWeight: "+a.getWeight());
     
    }
}
在上述代碼中,在創(chuàng)建內(nèi)部類對(duì)象時(shí),語(yǔ)法為:Family.Father a = my.new Father("Jonh",150); 說(shuō)明內(nèi)部類對(duì)象的創(chuàng)建是基于一個(gè)外部類對(duì)象(my),也就是說(shuō)內(nèi)部類對(duì)象必須依附于一個(gè)外部類對(duì)象。

內(nèi)部類可以出現(xiàn)在所屬類的方法內(nèi)或任意作用域內(nèi)。像下面的代碼將內(nèi)部類嵌入在方法內(nèi):

public class test
{
    public static void main(String[] args)
    {
      Family my = new Family();
      my.getMsg("Jonh",150);
     
    }
}
class Family
{
     Family(){ }
     public void getMsg(String s,int n)
     {
       class Father
      {
       private int weight;
       private String name;
       Father(String n,int w)
       {
          this.name = n;
          this.weight = w;
       }
       public int getWeight()
       {
          return weight;
       }
       public String getName()
       {
          return name;
       }
      }
      Father f = new Father(s,n);
      System.out.println("Name: "+f.getName()+"\nWeight: "+f.getWeight());
     }
}


閉包

內(nèi)部類可以訪問(wèn)外部類的成員變量(即使是private),如在Family類中添加成員變量height,在Father類中定義一個(gè)方法 getHeight(),則能成功訪問(wèn)這個(gè)height變量,而在外部類中不能訪問(wèn)內(nèi)部類中的成員變量。


class Family
{
     private int height = 180; /*定義外部類屬性height*/
     Family(String name,int weight){ this.f = new Father(name,weight); }
     private class Father
     {
       private int weight;
       private String name;
       Father(String n,int w)
       {
          this.name = n;
          this.weight = w;
       }
       public int getWeight()
       {
          return weight;
       }
       public String getName()
       {
          return name;
       }
       public int getHeight()
       {
          return height;   /*訪問(wèn)外部類的屬性height*/
       }
      }

     private Father f;
     public void getMsg()
     {
          System.out.println("Name: "+f.getName()+"\nWeight: "+f.getWeight()+"\nHeight: "+f.getHeight());
     }
}
public class test
{
    public static void main(String[] args)
    {
      Family my = new Family("Jonh",130);
      my.getMsg();
        /* not allowed */
  /* System.out.println(my.weight); */
    }
}

如果把內(nèi)部類單獨(dú)拿到外面來(lái)聲明,那么要使用外部類的屬性如height,就要先創(chuàng)建外部類的對(duì)象,再由對(duì)象調(diào)用其height屬性,現(xiàn)在由于內(nèi)部類處于外部類中,所以在程序調(diào)用時(shí)不必再創(chuàng)建外部類的對(duì)象,直接就可以使用height,這樣減少了一部分內(nèi)存空間的開(kāi)銷。

嵌套static類

在類內(nèi)部定義static類,稱為嵌套static類。
我們可以直接創(chuàng)建嵌套類,而不必依賴于某個(gè)外部類對(duì)象。嵌套類無(wú)法調(diào)用外部對(duì)象的方法、也無(wú)法讀取或修改外部對(duì)象的數(shù)據(jù)。
如:
public class Test{
    public static void main(String[] args){
        Father.Son John = new Father.Son();
        John.display();
     }
}

class Father{
  /*嵌套類*/
 static class Son{
     public void display(){
        System.out.println("I am his son.");
     }
   }
}

總結(jié)
1. 內(nèi)部類豐富了類的組織形式;
2. 內(nèi)部類實(shí)現(xiàn)了閉包。




































只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美黑人在线观看| 久久伊人亚洲| 久久久久久一区二区| 亚洲一区二区三区视频播放| 中文久久乱码一区二区| 亚洲永久在线观看| 欧美中文字幕第一页| 久久人人九九| 亚洲激情黄色| 亚洲精品视频免费| 亚洲一区在线播放| 久久成人av少妇免费| 模特精品在线| 国产精品成人一区| 激情视频一区| 一区二区三区av| 久久国产一区| 亚洲国产精品热久久| 亚洲一区三区视频在线观看| 久久男人资源视频| 国产精品www网站| 国内精品久久久久久久果冻传媒| 亚洲欧洲在线视频| 久久国产一二区| 亚洲毛片一区| 久久久青草婷婷精品综合日韩| 欧美日韩亚洲一区二区三区在线 | 夜夜嗨av一区二区三区| 亚欧成人精品| 欧美日韩一区二区视频在线观看| 国产在线视频不卡二| 99在线热播精品免费| 美女精品在线观看| 狠狠色丁香婷婷综合影院| 在线观看91精品国产麻豆| 亚洲美女视频在线观看| 亚洲激情在线激情| 久久手机免费观看| 激情综合色综合久久综合| 亚洲综合色自拍一区| 亚洲黄色大片| 蜜臀av性久久久久蜜臀aⅴ| 国产一区二区三区久久久| 亚洲欧美日韩一区二区| 99国产精品国产精品久久| 国产精品porn| 亚洲免费观看视频| 亚洲尤物视频在线| 欧美在线日韩在线| 亚洲视频二区| 国产精品美女久久久久av超清| 国产综合色精品一区二区三区| 一本到12不卡视频在线dvd| 免费观看亚洲视频大全| 亚洲欧美日韩精品一区二区| 欧美日韩在线一区| 一本色道久久综合亚洲精品不卡| 欧美大片一区| 男女精品网站| 亚洲精品无人区| 亚洲国产精品一区二区www在线| 久久欧美中文字幕| 在线成人中文字幕| 欧美~级网站不卡| 开元免费观看欧美电视剧网站| 影音先锋亚洲视频| 美日韩精品视频| 久久免费国产精品| 亚洲成色www8888| 亚洲高清一二三区| 欧美精品粉嫩高潮一区二区| 99精品国产福利在线观看免费| 最新精品在线| 欧美视频一区二区| 性色av香蕉一区二区| 亚洲欧美日韩视频二区| 国产婷婷色综合av蜜臀av| 久久这里只有| 欧美精品国产一区| 亚洲专区国产精品| 欧美一级午夜免费电影| 1024成人网色www| 亚洲欧洲日本专区| 国产精品免费一区二区三区观看| 久久久www成人免费精品| 欧美色综合天天久久综合精品| 久久婷婷色综合| 欧美成人精品影院| 亚洲影院免费| 久久久久www| 99热在线精品观看| 欧美一二三区精品| 亚洲看片免费| 欧美一区成人| 亚洲美女黄网| 欧美一区二区高清| 亚洲精品一区二区网址| 亚洲免费婷婷| 亚洲精品视频二区| 午夜视频精品| av成人国产| 久久久久国产精品麻豆ai换脸| 99re8这里有精品热视频免费 | 欧美一区二区视频97| 久久野战av| 欧美一区二区在线免费播放| 免费观看成人www动漫视频| 亚洲欧美视频在线观看| 欧美aⅴ99久久黑人专区| 欧美中日韩免费视频| 欧美精品在线一区二区三区| 久久久国产精品亚洲一区 | 国产精品久久久久9999| 欧美激情欧美激情在线五月| 国产日产亚洲精品系列| 99国产精品99久久久久久粉嫩| 在线看片日韩| 欧美激情麻豆| 亚洲午夜影视影院在线观看| 今天的高清视频免费播放成人 | 亚洲影音先锋| 亚洲午夜日本在线观看| 欧美激情精品久久久六区热门| 久久久久欧美精品| 国产精品福利在线观看网址| 亚洲国产精品ⅴa在线观看| 在线观看91精品国产入口| 午夜伦理片一区| 欧美一二三视频| 国产精品一区在线观看| 在线亚洲伦理| 亚洲一级网站| 国产精品久久久久久久久久久久| 亚洲日本在线观看| 亚洲毛片在线观看| 欧美精品九九99久久| 亚洲欧洲在线视频| 99热在这里有精品免费| 欧美精品乱码久久久久久按摩| 亚洲国产三级网| 久久综合久久久| 中文日韩在线视频| 欧美日韩福利| 一区二区三区蜜桃网| 亚洲免费在线精品一区| 国产精品视频第一区| 欧美一区二区三区免费大片| 久久午夜精品| 亚洲欧洲精品一区二区三区不卡 | 国产精品多人| 亚洲视频综合| 久久久久久尹人网香蕉| 亚洲国产婷婷| 欧美午夜精品| 久久福利电影| 91久久综合| 久久国产欧美精品| 亚洲日本成人| 国产精品色婷婷久久58| 久久99在线观看| 欧美激情视频一区二区三区在线播放 | 国产丝袜一区二区三区| 久久久久看片| 一本久久知道综合久久| 久久精品中文字幕一区| 亚洲人成毛片在线播放| 国产精品毛片一区二区三区| 久久久久欧美精品| av成人黄色| 免费中文日韩| 午夜精品美女自拍福到在线| 在线播放日韩| 国产精品成人一区二区网站软件| 性欧美办公室18xxxxhd| 亚洲精品九九| 狂野欧美激情性xxxx| 亚洲午夜日本在线观看| 黑丝一区二区| 欧美日韩中文字幕精品| 久久久精品免费视频| 一卡二卡3卡四卡高清精品视频| 久久久久国色av免费看影院 | 亚洲国产精品va| 国产欧美视频一区二区三区| 欧美77777| 欧美专区一区二区三区| 日韩一区二区久久| 亚洲国产精品美女| 久久人人97超碰精品888| 亚洲欧美成人网| 亚洲美女精品一区| 尤物在线观看一区| 国产亚洲激情在线| 国产精品永久免费视频| 欧美日韩黄色大片| 欧美国产日韩一区二区| 久久视频国产精品免费视频在线| 亚洲欧美精品suv| 亚洲伊人一本大道中文字幕| 一区二区欧美国产|