java se 6 技术手册投影片 - 第09章

java se 6 技术手册投影片 - 第09章

ID:5377454

大小:348.60 KB

页数:25页

时间:2017-12-08

java se 6 技术手册投影片 - 第09章_第1页
java se 6 技术手册投影片 - 第09章_第2页
java se 6 技术手册投影片 - 第09章_第3页
java se 6 技术手册投影片 - 第09章_第4页
java se 6 技术手册投影片 - 第09章_第5页
资源描述:

《java se 6 技术手册投影片 - 第09章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章•管理類別檔案–內部類別–package與import成員內部類別、區域內部類別•成員內部類別,基本上是在一個類別中直接宣告另一個類別publicclassOuterClass{//內部類別privateclassInnerClass{//....}}•所產生的檔案名稱為「外部類別名稱$內部類別名稱.class」成員內部類別、區域內部類別•區域內部類別定義於一個方法中,類別的可視範圍與生成之物件僅止於該方法之中•內部類別還可以被宣告為"static“•由於是“static”,它不能存取外部類別的方法,而必須透過外部類別所生成的物件來進行呼叫成員內部類

2、別、區域內部類別•被宣告為static的內部類別,事實上也可以看作是另一種名稱空間的管理方式publicclassOuter{publicstaticclassInner{....}....}Outer.Innerinner=newOuter.Inner();匿名內部類別•內部匿名類別可以是繼承某個類別或是實作某個介面new[類別或介面()]{//實作}Objectobj=newObject(){publicStringtoString(){//重新定義toString()return"匿名類別物件";}};System.out.println(obj);

3、匿名內部類別•注意如果要在內部匿名類別中使用外部的區域變數,變數在宣告時必須為"final"....publicvoidsomeMethod(){finalintx=10;//宣告finalObjectobj=newObject(){publicStringtoString(){returnString.valueOf(x);//x可在匿名類別中使用}};System.out.println(obj);}....匿名內部類別•區域變數x並不是真正被拿來於內部匿名類別中使用•x會被匿名類別複製作為資料成員來使用•編譯器會要求您加上“final”關鍵字,這樣您

4、就知道不能在內部匿名類別中改變x的值•內部匿名類別在編譯完成之後會產生「外部類別名稱$編號.class」,編號為1、2、3...n,每個編號n的檔案對應於第n個匿名類別設定套件(package)•套件被設計與檔案系統結構相對應•為了要能建立與套件相對應的檔案系統結構,您在編譯時可以加入"-d"參數,並指定產生的類別檔案要儲存在哪一個目錄之下packageonlyfun.caterpillar;publicclassPackageDemo{publicstaticvoidmain(String[]args){System.out.println("Hello

5、!World!");}}設定套件(package)•javac-d.UsePackage.java•在目前的工作位置中會出現onlyfun目錄,之下會有個caterpillar目錄,而當中有個PackageDemo.class檔案•“package”的設定會成為類別名稱的一部份–完整類別名onlyfun.caterpillar.PackageDemo–javaonlyfun.caterpillar.PackageDemo設定套件(package)•「完全描述」(Fullyqualified)名稱–完整的指出「套件加類別」名稱onlyfun.caterpil

6、lar.Point2Dp1=newonlyfun.caterpillar.Point2D(10,20);•最後編譯完成的.class檔案必須放在onlyfun目錄的caterpillar目錄下badclassfile:.Point2D.classclassfilecontainswrongclass:onlyfun.caterpillar.Point2DPleaseremoveormakesureitappearsinthecorrectsubdirectoryoftheclasspath.Point2Dp1=newPoint2D(10,20);^1er

7、rorimport的意義•您可以使用"import"關鍵字,告知編譯器您所要使用的類別是位於哪一個套件importonlyfun.caterpillar.Point2D;publicclassPoint2DDemo2{publicstaticvoidmain(String[]args){Point2Dp1=newPoint2D(10,20);System.out.printf("p1:(x,y)=(%d,%d)%n",p1.getX(),p1.getY());}}import的意義•使用"import"指定時,可於套件指定加上'*'importonlyfu

8、n.caterpillar.*;publicclassPoint2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。