IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > java中的內部類分析

java中的內部類分析 時間:2015-06-17      來源:未知

允許一個類的定義出現在另一個類中,將處于另一個類中的“寄生類”稱為“內部類”(inner class),也稱為“類屬類”

這樣的一組類在邏輯上是一個整體,內部類和外層封裝它的類之間存在邏輯上的從屬關系

內部類對其封裝類的內部成員有訪問權限

舉例1:

public class Outer1 { 
                  private int size; 
                  /* 定義一個內部類,名為 "Inner" */ 
                  public class Inner { 
                      public void doStuff() { 
                        // 內部類可以訪問外部類的私有屬性 
                        size++; 
                     } 
                 } 
                 public void testTheInner() { 
                    Inner i = new Inner(); 
                    i.doStuff(); 
                  } 
        }

實例化內部類的兩種方法:

---法一:

Outer.Inner in=new Outer().new Inner();

---法二:

Outer o=new Outer();

Outer.Inner I=o.new Inner();

如果內部類是static的,也可以用下面方法:

Outer.Inner in=new Outer.Inner();

舉例2:內部類中的變量訪問形式

class Out { 
                private int age = 12;
                class In { 
                        private int age = 13; 
                        public void print() { 
                                int age = 14; 
                                System.out.println("局部變量:" + age); 
                                System.out.println("內部類變量:" + this.age); 
                                System.out.println("外部類變量:" + Out.this.age); 
                        } 
                } 
        } public class Demo { 
                public static void main(String[] args) { 
                        Out.In in = new Out().new In(); 
                        in.print(); 
                } 
        }

運行結果:

局部變量:14

內部類變量:13

外部類變量:12

舉例3:靜態內部類

class Out { 
                private static int age = 12;
                 static class In {
                        public void print() {
                                System.out.println(age);
                        }
                }
        } public class Demo {
                public static void main(String[] args) {
                        Out.In in = new Out.In();
                        in.print();
                }
        }

可以看到,如果用static 將內部內靜態化,那么內部類就只能訪問外部類的靜態成員變量,具有局限性

其次,因為內部類被靜態化,因此Out.In可以當做一個整體看,可以直接new 出內部類的對象(通過類名訪問static,生不生成外部類對象都沒關系)

實例4:私有內部類

class Out { 
                private int age = 12; 
        
                private class In { 
                        public void print() { 
                                System.out.println(age); 
                        } 
                } 
                public void outPrint() { 
                        new In().print(); 
                } 
        }
        public class Demo { 
                public static void main(String[] args) { 
                        //此方法無效 
                        /* 
                        Out.In in = new Out().new In(); 
                        in.print(); 
                        */
                        Out out = new Out(); 
                        out.outPrint(); 
                } 
        }

如果一個內部類只希望被外部類中的方法操作,那么可以使用private聲明內部類

上面的代碼中,我們必須在Out類里面生成In類的對象進行操作,而無法再使用Out.In in = new Out().new In() 生成內部類的對象

也就是說,此時的內部類只有外部類可控制。

上一篇:nfs服務與tftp服務的配置

下一篇:java中的匿名內部類總結

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 喷雾式干燥机-真空桨叶干燥机-桨叶干燥器-常州力马干燥科技有限公司 | 污泥处理设备|污泥固化固液分离压泥机压滤机厂家-山东冠诚开山贸易 | 面粉加工成套设备|面粉加工设备|面粉加工机械|面粉机组设备-河南成立粮油机械有限公司 | 玉米加工机械_玉米加工设备_玉米深加工机械_玉米糁加工设备--滑县鑫丰粮油机械有限公司 | 质检报告_COC_CE认证_LFGB测试_REACH_FCC_FDA-冠通检测 | 消防巡检柜-EPS应急电源-交直流屏厂家-中央信号屏-万正电源 | 全网营销_网络推广外包_全网营销代运营公司-湖南微望互动 | 湖州搬家公司_档案搬迁_货物运输_钟点搬运价格「湖州蓝天家政综合服务有限公司」 | 室内门十大品牌-生态木门厂家-室内门厂家 - 浙江威威工贸有限公司 | 山西洗煤设备_山西洗煤机_山西离心机-山西东鑫昶机械科技股份有限公司 | 泰安led显示屏-泰安户外裸眼3D显示屏-扩声系统-舞台灯光机械-电子屏-肥城宁阳新泰东平-泰安市奇美特电子有限公司 | 河北永生食品有限公司,益宁挂面, 香海园 | 昆明塑料包装袋|云南塑料包装袋|昆明塑料袋厂家|云南茶叶大米蔬菜种子食品包装袋就来阮门包装有限公司 | 硝酸铵钙|山西硝酸钙|硝酸钾|太原硝酸钙镁|硝酸钾钙|亚硝酸钠-山西玉彤化工有限公司 | 芯片_IC_半导体品牌一级代理商-深圳市合通泰电子有限公司 | 啤酒厂家_啤酒代工厂_原浆啤酒厂家 - 山东十谷啤酒有限公司 | 四方光电(武汉)仪器有限公司_四方仪器首页-烟气分析仪|尾气分析仪|煤气分析仪|沼气分析仪|天然气分析仪|超声波流量计|在线气体分析系统|红外气体传感器 | 南京消防申报公司-江苏国消设备安装有限公司 | 沈阳河山铸造有限公司 | 郑州华特仪器设备有限公司-dlsb低温冷却液循环泵-SHZ-DIII循环水真空泵 | 全开式真空干燥机_全开耙式真空干燥机_全开式动态真空干燥机,江阴千峰机械制造有限公司 | 四川杨氏达防水材料有限公司| 啤酒厂家_啤酒代工厂_原浆啤酒厂家 - 山东十谷啤酒有限公司 | 吉安市圣宫制冷设备有限公司 | 景德镇古窑民俗博览区-国家AAAAA级旅游景区_全国旅游标准化示范景区_国家文化产业示范基地_国家级非物质文化遗产生产性保护示范基地--官方网站 | 河南新华电脑学院-郑州电脑学校-计算机培训学校-郑州新华电脑学院 | 煤粉喷枪_高炉喷煤枪_陶瓷喷煤枪-北京耐默公司 | 消防安装_消防安装施工_消防施工_北京消防安装公司-亿杰(北京)消防工程有限公司 | 长沙思辰仪器科技有限公司 | 混凝土砂石分离机_龙门洗车机_振动型砂石分离机 - 青州同辉环保机械 | 菏泽市牡丹区双冠家具有限公司,菏泽办公家具, | 引流砂_铁钩料_吹氧管_涂层吹氧管_耐火涂层吹氧管-山东恒诚 | 临沂人才网_临沂招聘网_【官方网站】| 真空清洗炉_真空煅烧炉_铸铝加热器-盐城市钰凯电器有限公司 | 联系我们果博福布斯公司客服电话17787888880[河南河北区] | 气调包装机厂家-真空包装机价格-气调包装机-锁鲜包装机-江苏大江智能装备有限公司 | 洗车机-自动汽车洗车机-全自动洗车设备-全自动电脑洗车机-北京自然绿环境科技发展有限公司 | 友信京泰-操作台-调度台-控制台-监控台定制厂家 | 重庆电磁流量计_水表厂家_液位计_重庆青天特克科技有限公司 | 微型电磁阀_隔膜泵_活塞泵_微型水泵_微型真空泵_微型气泵【东莞市宗旨电子科技有限公司】 | 联系我们-99贵宾在线客服开户电话17508888884(99厅) |