999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

芻議Java體系架構中包的管理機制及應用策略

2009-12-31 00:00:00李永壯
考試周刊 2009年50期

摘要: 在Java的程序設計中,為了更容易地找到和使用類和接口、避免名稱沖突,以及控制訪問,提高程序的可讀性和可重用性,Java提供包來管理類和接口。本文從包的作用、包的定義、創建包、引用包、管理包和設置類路徑等方面進行論述,討論了有關包中類的訪問原則,以及導入包的注意事項。

關鍵詞: Java體系架構包管理機制應用策略

在類的管理和使用上,微軟公司推出的NET技術采用命名空間的形式,而SUN公司的Java采用包的形式。Java編譯器為每個類生成一個字節碼文件,且文件名與Public的類名相同,因此同名的類有可能發生沖突。為了解決這一問題,Java提供包來管理類名空間。包實際上提供了一種命名機制和可見性限制機制。包是一種松散的類的集合,同一個包中的類在默認情況下可以互相訪問,所以為了方便編程和管理,我們通常把需要在一起工作的類和接口放在一個包里。我們可以利用包的訪問控制能力從更宏觀的角度對類進行訪問權限的控制。

1.包的作用

1.1組織文件

現實的計算機系統常常使用目錄來管理文件,Java語言里采用Package機制,Java編譯器把包對應于文件系統的目錄管理,按照樹的方式管理許多不同功能的Java文件。Package可以使數量龐大的文件顯得清晰、有條理。將類和接口封裝在不同的包中,主要是為了解決名字空間、名字沖突,它與類的繼承沒有關系,可更大限度地避免重名類的沖突。

1.2權限管理

Package是相關的類和接口的集合,能提供訪問保護和用以管理這些字節文件,是Java系統中對象和接口等基本要素進行模塊化管理的基本手段。包參與了類和類的成員變量的訪問權限封裝功能,對于具有Private訪問權限的類和Friendly成員變量,包具有對它們進行隱藏的功能,也就是說,不同包內Private類和Friendly的成員變量是不能被訪問到的,相反,如果是同個包內這樣的條件是可以訪問到的。所以包能有效地管理和封裝眾多的類和接口;同時,包的權限管理功能也完善了Java完全面向對象能力。

2.包的使用

2.1定義

包(Package)是一個相關的類和接口的集合,它可以提供訪問保護和名稱空間管理。

2.2創建包

創建包的辦法是將一個類或接口放進去。為此,在定義類或接口的源代碼文件的頂部放一個Package語句。如果在源文件中沒有Package語句,那么類或接口將放在默認包(Default Package)中,這個包沒有名字。程序員可以定義自己的包并且可以引用它,還可以引用Java系統定義的包,在包中可以存放一個或者多個類。

包的定義格式:package<包名>;

其中package是關鍵字,包名是Java任意合法的標志符。

例如:package com.sxx //聲明名為com.sxx的包。

public class Myclass{…}

注意:

(1)Package語句必須寫在Java源程序的第一行。

(2)在一個程序中不能出現多條package語句。

(3)Package語句的作用域是整個源代碼文件。

2.3命名包

世界各地的程序員都在使用Java語言編寫類和接口,很可能有兩個程序員給兩個不同的類起了相同的名稱,但是Java允許兩個類同名,因為它們在不同的包中,而每個類的完全限定名包含包的名稱。包名的命名原則是反域名形式。如:com.company.package。

2.4導入包和使用包的成員

Java編譯器為所有程序自動引入java.lang包中的所有類,此時不必用import語句,但是若需要使用其它包中的類,就必須在Java源程序中使用import語句導入。

import語句的格式為:import<包名1<類名>|*>[,<包名2<類名>|*>[,……];其中import是關鍵字,多個包名和類名之間用“;”分割,包名和類名之間使用“.”分隔。

2.4.1訪問包的公共類

類的訪問級別只有2級:缺省級(default)和公共級(public)。只有公共級的類可以從包外訪問,而且要求此時的Java文件名必須和類名保持一致。

Java提供了三種方法:

(1)用類的長名稱(即包名+類名)引用。

如果某個類只訪問一次,那么可以自接使用類的全名,形式是“包名.類名”。

例:com.sxx.jsj包中的Graphic類,它的全名為com.sxx.jsj.Graphic。

class MyPict{

com.sxx.jsj.Graphic gpc=new com.sxx .jsj .Graphic (?搖 ?搖);

}

這種方式適合一次或者兩次的使用原則,如果必須一次又一次地寫com.sxx.jsj.Graphic,那這種方法太麻煩。

(2)利用import語句導入包中的某個類(此時import語句必須放置在程序的開頭,如果有package語句,則放在他的后面);

例:訪問com.sxx.jsj包中的Graphic類。

import com.sxx.jsj.Graphic;

Class MyPict{

Graphic gpc=new Graphic(?搖?搖);

}

這種方式適合使用包中幾個類,但是如果要使用一個包中的許多類和接口,那么可以導入整個包。

(3)利用import語句導入整個包中的所有類。

方法:import包名.*;(“*”表示包中的所有公共類)。

例:com.sxx.jsj包有很多類(包括Graphic,Circle,Rectangle類等)。

import com .sxx.jsj.*;

class MyPict{

Graphic gpc=new Graphic(?搖?搖);

Circle cir1=new Circle(?搖?搖);

Rectangle rec1=new Rectangle(?搖?搖);

…}

導入包時注意事項:(1)如果要導入的類與現在使用的類名相同則默認使用本地類。(2)如果要導入的類與正在使用的類名相同,但此時必須使用這個導入類,在不影響本地類的情況下,利用類的全名(即包名.類名)使用。

2.4.2使用包的好處

(1)消除名稱的二義性。

(2)在開發大型項目時,很容易讓程序員知道類和接口的相關性。

(3)可以允許包中的類較自由地訪問包中的另一個類,同時嚴格地限制包外的類對包內的類的訪問。

2.5設置包的路徑

classpath指明包的根目錄。Java編譯器會嚴格按classpath和包名所指定的路徑尋找包,進而使用其中的某個類。(注意:路徑名稱中不能有空格)

查看和設置classpath環境變量的方法有兩種:(1)命令行窗口中使用setclasspath命令,格式:set classpath=%classpath%;c:\\javatest,特點是命令行窗口一關閉就無效;(2)通過用鼠標右擊【我的電腦】圖標,在彈出的快捷菜單中,選擇【屬性】命令,彈出【系統特性】對話框,再單擊【高級】選項卡,然后選擇【環境變量】按鈕,就可以在系統變量中新建classpath屬性,變量名:classpath,變量值:%classpath%;c:\\javatest,特點是對命令行窗口始終有效。

3.結語

包是Java體系架構中個很重要的概念,它在物理上起到了組織文件、管理文件的作用,在邏輯上是對類和接口進行了訪問權限的管理,實現了類和接口的一定程度的封裝作用。正確合理地創建包和使用包會使開發的軟件更健壯、更易于維護。

參考文獻:

[1]楊年華,張禮平.JAVA類庫中的策略模式[J].計算機應用與軟件,2004,(01).

[2]耿祥義,張躍平.Java程序設計(第三版)[M].北京:清華大學出版,2009.

[3][美]Bruce Eckela著.京京工作室譯.JAVA編程思想[M].機械工業出版社,1999.4.

[4]劉曉華.精通Java核心技術[M].電子工業出版社,2004.

主站蜘蛛池模板: 日韩欧美国产综合| 国产精品一线天| 国产97区一区二区三区无码| 久久国产精品电影| 亚洲国产成人精品青青草原| swag国产精品| 第一页亚洲| 国产美女精品在线| 欧美日韩午夜| 亚洲精品无码AⅤ片青青在线观看| 黄色网在线免费观看| 国产成人精品亚洲日本对白优播| 动漫精品中文字幕无码| 亚洲国产系列| 久久成人国产精品免费软件| 欧美一区二区自偷自拍视频| 免费A级毛片无码无遮挡| 亚洲伦理一区二区| 精品国产网站| 狼友视频国产精品首页| h视频在线播放| 亚洲欧美日韩中文字幕在线| 91视频99| 天堂中文在线资源| 中文字幕佐山爱一区二区免费| 精品伊人久久久大香线蕉欧美| 亚洲综合色吧| 亚洲天天更新| 996免费视频国产在线播放| 精品在线免费播放| 午夜视频www| 午夜福利网址| 欧美一区国产| 特级aaaaaaaaa毛片免费视频| 国产波多野结衣中文在线播放| 97一区二区在线播放| 青草娱乐极品免费视频| 久久超级碰| 97人人模人人爽人人喊小说| 亚洲va欧美va国产综合下载| 国产一在线观看| 精品三级网站| m男亚洲一区中文字幕| 另类专区亚洲| 在线无码av一区二区三区| 亚洲免费三区| 国产亚洲欧美在线中文bt天堂 | 亚洲香蕉久久| 日韩视频免费| 久久狠狠色噜噜狠狠狠狠97视色 | 丝袜久久剧情精品国产| 在线观看的黄网| 九色综合伊人久久富二代| 女人av社区男人的天堂| 狠狠干综合| 国产福利小视频在线播放观看| 成年免费在线观看| 久久亚洲日本不卡一区二区| 国产成人精品2021欧美日韩| 亚洲香蕉在线| 亚洲成人77777| 亚洲女同一区二区| 精品一区二区三区中文字幕| 美美女高清毛片视频免费观看| 久久精品国产精品一区二区| 看国产毛片| 高清无码一本到东京热| 国产男女免费视频| 九九久久精品免费观看| 国产一区二区免费播放| 亚洲视频影院| 午夜精品区| 欧美区一区| 成人久久18免费网站| 在线a视频免费观看| 亚洲精品欧美重口| 五月丁香伊人啪啪手机免费观看| 婷婷五月在线视频| 亚洲欧美日韩精品专区| 欧美国产日产一区二区| 国产又粗又猛又爽视频| 成人中文字幕在线|