修飾符, 修飾符控制范圍和使用范圍
類修飾符:public,protected,private,缺省的訪問修符,abstract,final
域的修飾符:public, protected, private, static, final, transient, volatile
方法修飾符:public, protected, private, static, final, abstract, native, synchronized
類
訪問修飾符 修飾符 class 類名稱 [extends 父類名稱 implement 接口名稱]{
成員變量定義;
構造函數(shù)定義;
成員方法定義;
}
注:訪問修飾符與修飾符的位置可以互換
類修飾符
訪問控制修飾符:Public , Protected(內部類使用), Private(內部類使用) ,缺省的訪問修飾符
抽象類修飾符:Abstract
最終類修飾符: Final
訪問控制修飾符:
|
名稱說明備注
|
名稱說明備注
|
名稱說明備注
|
Public
|
定義為pulbic類可以被任何包中的類所使用,不加public類只能由同一個源文件或同一個包中的類使用.
|
在同一個源文件中不能同時包含兩個public.
public類必須在java文件中定義.
|
Protected(內部類使用)
|
Protected關鍵字限定類的成員僅僅可以被該類及其子類訪問。
|
|
Private(內部類使用)
|
Private限定類的成員公能被該類的其他成員使用
|
有利于內部信息隱藏
|
缺省的訪問修飾符
|
缺省的訪問修飾符
|
缺省的訪問修飾符
|
抽象類修飾符:
|
Abstract一
|
用此關鍵字的類是一個未完成的類,該類中只是聲明方法,但不能實現(xiàn)
|
不能用實例化對象,只能被繼承
非abstract類中含有abstract,編譯出錯
Abstract和final只能用其一
|
最終類修飾符:
|
Final
|
不能被繼承,提高安全性,完美。Final的定義是完整的,不可以有任何的子類
|
Abstract和final只能用其一
|
域(類中的屬性或變量)
¡ [域修飾符] 類型 變量[=初始值][,變量]
變量:
|
成員變量
|
局部變量
|
定義
|
在類中定義的變量
|
方法中定義的變量以及方法的參數(shù)
|
可分為:
|
實例變量(類中的非靜態(tài)變量)
類變量(類中的靜態(tài)變量)static
|
|
初始化器
|
{}
Static{}
|
無
|
類型:
|
兩都都可以使用java中的任意類型(如:int,boolean,float…)
|
作用范圍:
|
整個類類中有效
|
只在定義它的方法中有效
|
修飾符:
|
有訪問修飾符
|
無
|
初始化:
|
可心不初始化(null(引用類型)或者0、false)
|
必須初始化
|
注:
|
1.如果局部變量的名字與成員變量的名字相同,則成員變量將在方法中被隱藏
|
當你需要使用成員變量時,可采用關鍵字(this),但在static方法中不能使用this,supper關建字。
|
域修飾符
名稱
|
說明
|
備注
|
訪問控制修飾符
|
public
|
可以被任何類訪問
|
|
protected
|
可以被同一包中的所有類訪問
可以被所有子類訪問
|
子類沒有在同一包中也可以訪問
|
Private
|
只能夠被當前類的方法訪問
|
|
缺省
無訪問修飾符
|
可以被同一包中的所有類訪問
|
如果子類沒有在同一個包中,也不能訪問
|
靜態(tài)域修飾符
|
static
|
靜態(tài)變量(又稱為類變量,其它的稱為實例變量)
|
可以被類的所有實例共享。
并不需要創(chuàng)建類的實例就可以訪問靜態(tài)變量
|
最終域修飾符
|
Final
|
常量,值只能夠分配一次,不能更改
|
注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣
可以同static一起使用,避免對類的每個實例維護一個拷貝
|
其它修飾符
|
Transient
|
告訴編譯器,在類對象序列化的時候,此變量不需要持久保存
|
主要是因為改變量可以通過其它變量來得到,使用它是為了性能的問題
|
volatile
|
指出可能有多個線程修改此變量,要求編譯器優(yōu)化以保證對此變量的修改能夠被正確的處理
|
|
方法
訪問修飾符 修飾符 返回類型 方法名稱(參數(shù)列表)throws 違例列表
¡ 類的構造器方法不能夠有修飾符、返回類型和throws子句
¡ 類的構造器方法被調用時,它首先調用父類的構造器方法,然后運行實例變量和靜態(tài)變量的初始化器,然后才運行構造器本身。
¡ 如果構造器方法沒有顯示的調用一個父類的構造器,那么編譯器會自動為它加上一個默認的super(),而如果父類又沒有默認的無參數(shù)構造器,編譯器就會報錯。super必須是構造器方法的第一個子句。
¡ 注意理解private構造器方法的使用技巧。
方法的修飾符
¡ 訪問控制修飾符 :Public , protected ,缺省
無訪問修飾符
¡ 靜態(tài)方法修飾符 :static
¡ 最終方法修飾符 :Final
¡ 抽象方法修飾符 :Abstract
¡ 本地方法修飾符 : Native
¡ 同步方法修飾符 :synchronized
訪問修飾符的控制范圍
訪問修飾符
|
本類
|
同一包中的類
|
不同包中的類
|
Public
|
?
|
?*
|
?*
|
Private
|
?
|
|
|
Protected
|
?
|
?*
|
*
|
缺省
|
?
|
?*
|
|
?可訪問
*可繼承
|
修飾符的使用范圍
修飾符
|
類
|
方法
|
變量
|
Final
|
Y
|
Y
|
Y
|
Abstract
|
Y
|
Y
|
N
|
Static
|
N
|
Y
|
Y
|
Native
|
N
|
Y
|
N
|
Transient
|
N
|
N
|
Y
|
Volatile
|
N
|
N
|
Y
|
synchronized
|
N
|
Y
|
N
|
綜合實例
• BedeckDome.java類:
• 類Test.java(未完)