1. 程式人生 > 其它 >JAVA面向物件學習——java面向物件概念———訪問控制符———隱藏和封裝

JAVA面向物件學習——java面向物件概念———訪問控制符———隱藏和封裝

隱藏和封裝


封裝實際上有兩個方面的含義:把該隱藏的隱藏起來,把該暴露的暴露出來。這兩個方面都需要通過使用Java提供的訪問控制符來實現。

Java提供了3個訪問控制符:private、protected和public,分別代表了3個訪問控制級別,另外還有一個不加任何訪問控制符的訪問控制級別,提供了4個訪問控制級別。

Java的訪問控制級別由小到大如圖5.14所示:

關於訪問控制符的使用,存在如下幾條基本原則。

➢ 類裡的絕大部分成員變數都應該使用private修飾,只有一些static修飾的、類似全域性變數的成員變數,才可能考慮使用public修飾。

除此之外,有些方法只用於輔助實現該類的其他方法,這些方法被稱為工具方法,工具方法也應該使用private修飾。

➢ 如果某個類主要用做其他類的父類,該類裡包含的大部分方法可能僅希望被其子類重寫,而不想被外界直接呼叫,則應該使用protected修飾這些方法。

➢ 希望暴露出來給其他類自由呼叫的方法應該使用public修飾。因此,類的構造器通過使用public修飾,從而允許在其他地方建立該類的例項。

因為外部類通常都希望被其他類自由使用,所以大部分外部類都使用public修飾。

package語句必須作為原始檔的第一條非註釋性語句,一個原始檔只能指定一個包,即只能包含一條package語句,該原始檔中可以定義多個類,則這些類將全部位於該包下。如果沒有顯式指定package語句,則處於預設包下。

import可以向某個Java檔案中匯入指定包層次下某個類或全部類,import語句應該出現在package語句(如果有的話)之後、類定義之前。

JDK 1.5以後更是增加了一種靜態匯入的語法,它用於匯入指定類的某個靜態成員變數、方法或全部的靜態成員變數、方法。

靜態匯入使用import static語句,靜態匯入也有兩種語法,分別用於匯入指定類的單個靜態成員變數、方法和全部靜態成員變數、方法

Java的核心類都放在java包以及其子包下,Java擴充套件的許多類都放在javax包以及其子包下。

下面幾個包是Java語言中的常用包:

➢ java.lang:這個包下包含了Java語言的核心類,如String、Math、System和Thread類等,使用這個包下的類無須使用import語句匯入,系統會自動匯入這個包下的所有類。

➢ java.util:這個包下包含了Java的大量工具類/介面和集合框架類/介面,例如Arrays和List、Set等。

➢ java.net:這個包下包含了一些Java網路程式設計相關的類/介面。

➢ java.io:這個包下包含了一些Java輸入/輸出程式設計相關的類/介面。

➢ java.text:這個包下包含了一些Java格式化相關的類。

➢ java.sql:這個包下包含了Java進行JDBC資料庫程式設計的相關類/介面。

➢ java.awt:這個包下包含了抽象視窗工具集的相關類/介面,這些類主要用於構建圖形使用者介面(GUI)程式。

➢ java.swing:這個包下包含了Swing圖形使用者介面程式設計的相關類/介面,這些類可用於構建平臺無關的GUI程式。