隨筆-71  評(píng)論-4  文章-0  trackbacks-0
          1. Java中的訪問(wèn)控制
          表1-1

          可見(jiàn)/訪問(wèn)性
          public
          protected
          package
          private

          在同一類中
          yes
          yes
          yes
          Yes

          同一包中
          yes
          yes
          yes
          no

          不同包中
          yes
          No
          No
          No

          同一包的子類中
          yes
          yes
          yes
          No

          不同包的子類中
          Yes
          Yes
          No
          No


          說(shuō)明:

          (1) 在java中有public、protected、private三種顯示的修飾符用于控制可見(jiàn)性,package不是顯示的修飾符,它是隱含的,即如果在類、變量等前沒(méi)加顯示的可見(jiàn)性修飾符,那它就是package級(jí)別的。如果在類的定義中沒(méi)有指定package,那么java會(huì)把它放在缺省包中,一般來(lái)說(shuō)這個(gè)缺省的包就是當(dāng)前目錄。

          (2) 在子類中的方法如果重載了父類的方法,那么該方法的可見(jiàn)級(jí)別應(yīng)更底或者相同,如父類中的方法是public,那么子類中方法必須是public。

          (3) 在java中,一般來(lái)說(shuō),變量成員最好是private,對(duì)它們的訪問(wèn)可以通過(guò)public的方法,在這些方法中可以做些控制以保證數(shù)據(jù)的一致性。這些方法名一般以get和set做為前綴。

          2. 包
          包名一般為小寫,而類名的第一個(gè)字母一般為大寫,這樣在引用時(shí),可以明顯的分辨出包名和類名。如果在類的定義之前沒(méi)有使用package定義包名,那么該類就屬于缺省的包。

          2.1 Hello Package
          首先通過(guò)一個(gè)簡(jiǎn)單的package的定義來(lái)學(xué)習(xí)package的使用:

          package testPackage;

          public class Test

          {

          public static void main(String args[])

          {

          mNode node = new mNode();

          node.print("hello");

          }

          }

          說(shuō)明:

          (1) 使用package關(guān)鍵字指明類所在的包;

          (2) package語(yǔ)句必須在文件的最前面;

          (3) 編譯時(shí)可使用javac –d . Test.java自動(dòng)產(chǎn)生包需要目錄;

          (4) 可以使用java testPackage.Test來(lái)執(zhí)行編譯后的代碼;

          2.2 包的幾個(gè)作用:
          (1) 可以更好的組織類,包與文件夾類似,文件夾可以將不同的文件放在同一個(gè)文件夾中,而包也可以將不同的類文件放在同一包中;

          (2) 減少類名的沖突問(wèn)題,這也與文件夾類似,同一文件夾中的文件不能重名,不同文件中的文件可以重名,同一包中的類名不能重復(fù),不同包中的類名可以重復(fù);

          (3) 對(duì)包中的類起了一定的保護(hù)作用,詳見(jiàn)java的訪問(wèn)控制;

          2.3 import的使用
          (1) 直接引用指定的類,如import java.util.Vector;

          (2) 引用一個(gè)包中的多個(gè)類,如import java.awt.*。更確切的說(shuō),它并不是引用java.awt中的所有類,而只引用定義為public的類,并且只引用被代碼引用的類,所以這種引用方法并不會(huì)降低程序的性能;

          (3) *號(hào)代替類名,在不能代替包名,如import java.awt.*,只引用java.awt下的類,而不引用java.awt下的包;

          (4) import java.awt.F*,這種使用方法是錯(cuò)誤的;

          (5) import語(yǔ)句在所有類定義之前,在package定義之后;

          (6) import只告訴編譯器及解釋器哪里可以找到類、變量、方法的定義,而并沒(méi)有將這些定義引入代碼中;

          2.4 包中類的使用
          有以下幾種機(jī)制可以使用包中的類:

          (1) 如果要使用的類是屬于java.lang包的,那么可以直接使用類名來(lái)引用指定的類,而不需要加上包名,因?yàn)榘黬ava.lang不用顯示使用import,它是缺省引入的;

          (2) 如果要使用的類在其它包(java.lang除外)中,那么可以通過(guò)包名加上類名來(lái)引用該類,如java.awt.Font

          (3) 對(duì)于經(jīng)常要使用的類(該類在其它包中),那么最好使用import引用指定的包,如java.awt.*

          (4) 如果import引入的不同的包中包含有相同的類名,那么這些類的使用必須加上包名

          (5) 接口也可以屬于某個(gè)包,也可以使用import引入其它包中的類和接口

          posted on 2006-03-20 12:16 zjw_albert 閱讀(149) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 建德市| 博客| 安图县| 方正县| 绥棱县| 贵州省| 那坡县| 沅江市| 阜新市| 永寿县| 怀安县| 万荣县| 肇州县| 大新县| 东丽区| 安国市| 体育| 出国| 易门县| 鹤峰县| 彰武县| 轮台县| 仙居县| 阿城市| 留坝县| 宽城| 澄迈县| 庐江县| 专栏| 美姑县| 芮城县| 红原县| 启东市| 元朗区| 泗水县| 册亨县| 曲周县| 安化县| 纳雍县| 施秉县| 宜君县|