Day10
封装性的体现(需要权限修饰符来配合)
-
java規定的四種權限修飾符
- private
- 缺省(default)
- protected
- public
-
權限如下
修飾符 類內 同一個包 不同包的子類 同一個工程 private Yes (缺省)default Yes Yes protected Yes Yes Yes public Yes Yes Yes Yes -
對於class的修飾只能用public和(缺省)default
- public類可以在任意地方訪問
- default類只能被同一個包內部的類訪問
-
可以用來修飾:類,累的內部結構(屬性,方法,構造器,內部類)
- 四種修飾符都可以用來修飾內部結構
- 只有public和default可以用來修飾類
-
高內聚,低耦合
- 高內聚:類的內部數據操作細節自己完成,不允許外部干涉
- 低耦合:僅對外部暴露少量方法用於使用
構造器的基本理解
構造器(或稱構造方法,constructor)
構造器的作用
- 創建對象(??是對的麼?)
- 初始化對象的屬性
說明
-
如果沒有顯示地定義構造器,系統沒人提供一個無參構造器
-
定義構造器的格式:權限修飾符 類名(參數列表){};
//創建類的對象:new + 構造器 //構造器不能簡單地理解爲方法 //參數列表可以爲空,即無參構造
-
多個構造器構成重載
-
一旦顯示地定義構造器,則體統不再提供無參構造
-
一個類中,至少有一個構造器
-
構造器的權限默認與類的權限相同?
JavaBean
指的是:
- 類是公共的
- 有一個無參的公共構造器
- 有屬性,有對應的get,set方法
this
this關鍵字 的使用
我們應當注意到,java與C++不同,它並不會自動識別類的屬性和形參
class A{
int data;
public A(int data){
data = data; // Wrong
this.data = data; // Right
}
}
-
this 可以用來修飾 屬性,方法,構造器
-
this理解爲當前對象或當前正在創建的對象
-
this可以調用構造器,調用形式爲:this();
class A{ int data; public A(){ System.out.println("A()"); } public A(int data){ this(); this.data = data; } }
-
構造器中只能調用別的構造器,不能調用自己
-
如果有n個構造器,則最多有n-1個構造器使用this(參數列表)
-
規定:使用this調用構造器必須放在當前方法的首行
-
(一個構造器內部,只能調用一個構造器)
-
關鍵字package和import
package的使用
-
爲了更好地實現項目中的類的管理,提供了包的概念
-
使用package聲明類或接口所屬的包,聲明在源文件的首行
-
包屬於標識符,遵循相關的命名規則
-
每’.'一次,代表一層文件目錄
-
同一個包下,不可以命名同名的接口或類
不同包下,可以命名同名的接口或類
import
- 在源文件中顯示地導入指定包中的某個類
- 聲明在包聲明和類聲明之間
- 導入多個結構,並列寫出即可
- 可以使用"xxx.*"的方式,導入包中的所有類
- 類似String之類的類屬於java的核心包(java.lang),無需手動導入
- 如果使用的結構是本包下的類或結構,無需導入
- 如果兩個包中的類同名,則在使用時使用全類名(至少有一個需要使用全類名)
- 使用”xxx.*“的方式可以導入包中的所有結構,但如果要使用包中子包,則仍舊需要顯示地導入子包
- import static 包名:導入包中類或接口的靜態結構