程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java入門筆記4_訪問控制和包

Java入門筆記4_訪問控制和包

編輯:關於JAVA

1. Java中的訪問控制

表1-1

可見/訪問性

public

protected

package

private

在同一類中

yes

yes

yes

Yes

同一包中

yes

yes

yes

no

不同包中

yes

No

No

No

同一包的子類中

yes

yes

yes

No

不同包的子類中

Yes

Yes

No

No

說明:

(1) 在java中有public、protected、private三種顯示的修飾符用於控制可見性,package不是顯示的修飾符,它是隱含的,即如果在類、變量等前沒加顯示的可見性修飾符,那它就是package級別的。如果在類的定義中沒有指定package,那麼Java會把它放在缺省包中,一般來說這個缺省的包就是當前目錄。

(2) 在子類中的方法如果重載了父類的方法,那麼該方法的可見級別應更底或者相同,如父類中的方法是public,那麼子類中方法必須是public。

(3) 在Java中,一般來說,變量成員最好是private,對它們的訪問可以通過public的方法,在這些方法中可以做些控制以保證數據的一致性。這些方法名一般以get和set做為前綴。

2. 包

包名一般為小寫,而類名的第一個字母一般為大寫,這樣在引用時,可以明顯的分辨出包名和類名。如果在類的定義之前沒有使用package定義包名,那麼該類就屬於缺省的包。

2.1 Hello Package

首先通過一個簡單的package的定義來學習package的使用:

package testPackage;

public class Test

{

public static void main(String args[])

{

mNode node = new mNode();

node.print("hello");

}

}

說明:

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

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

(3) 編譯時可使用javac –d . Test.Java自動產生包需要目錄;

(4) 可以使用Java testPackage.Test來執行編譯後的代碼;

2.2 包的幾個作用:

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

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

(3) 對包中的類起了一定的保護作用,詳見Java的訪問控制;

2.3 import的使用

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

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

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

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

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

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

2.4 包中類的使用

有以下幾種機制可以使用包中的類:

(1) 如果要使用的類是屬於java.lang包的,那麼可以直接使用類名來引用指定的類,而不需要加上包名,因為包Java.lang不用顯示使用import,它是缺省引入的;

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

(3) 對於經常要使用的類(該類在其它包中),那麼最好使用import引用指定的包,如Java.awt.*

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved