類的訪問符
一:訪問修飾符:
1.省略訪問修飾符
具有默認的訪問特性,即具有包訪問特性,只能被同一個包中的類使用。
2.public訪問修飾符
用於說明類和類的成員的訪問許可權。這種類叫公有類。在一個文件中只能有一個public類型的類。
例如:Rect和UseImport兩個類,分別在兩個不同的包中。順便回顧一下不同類要用import導入。(哎,一直就沒記住)
//Rect.java
pacakage
my;
public
class
Rect
{
private
int
a,b;
public
void
init(int
len,int
width)
{
a=len;
b=width;
}
public
int
area()
{
return
a*b;
}
}
//UseImport.java
import.my.*;//導入my
包的所有類
public
class
UseImport
{
public
static
void
main(string[]
args)
{
Rect
x=new
Rect();
x.init(2,3);
System.out.println("矩形面積為:"+x.area());
}
}
3.private
用private修飾的類成員成為私有成員,只能在聲明該成員的類中使用,不能在類外使用。一般通過本類中公有方法進行訪問。
4.protected
protected修飾的類成員為保護成員,可以被三種類使用,分別是該類本身,該類的所有子類,該類同包的其他類,該類的子類。
5.private
protected
私有保護成員。可被兩種類使用。分別是:該類本身和該類的所有子類。
二:特徵修飾符
1.abstract:抽象
修飾類為抽象類,修飾方法為抽象方法。只要類中有抽象方法,就必須定義為抽象類。抽象方法只能聲明,不能實現。但是可以在其子類中對抽象方法進行實現。抽象類中也可以包含非抽象方法。
2.final:最終
修飾的類為終止類,不能有子類。修飾變數為終止變數,只可賦值一次。修飾方法為終止方法,不能在子類中更改。如Socket、ServerSocket等都是final類,防止黑客派生子類進行破壞。同時,final與abstract是相互矛盾的。
3.static:靜態
靜態成員無需通過對象調用,可以直接通過類名直接調用。
public
class
RectArea//輸出6
和
12
{
public
static
void
main(String[]
args)
{
System.out.println(area(2,3));
System.out.println(area(3,4));
}
static
void
area(int
a,int
b)
{
return
a*b;
}
}
4.native
用native修飾的為本地方法。它修飾的方法在程序外部使用其他編程語言編寫。(這個步驟比較多,所以就木有繼續研究了)
5.synchronized
修飾的方法為同步方法。
『貳』 C#定義類的訪問修飾符是指什麼意思
C# 共有五種訪問修飾符:public、private、protected、internal、protected internal。作用范圍如下表:
所以對於 class A 來說,protected 表示其本類(class Program)和子類(所有繼承 classProgram 的類)可以訪問;對於 class B 來說也一樣。
『叄』 類及類成員的訪問控制符有哪些
在Java中
類修飾符
Public
可以從其他類中訪問
obstract
本類不能被實例化
final
不能再聲明子類
構造器修飾符
Public
可以從所有的類中訪問
Protected
只能從自己的類和它的子類中訪問
Private
只能在本類中訪問
域修飾符
Public
可以從所有的類中訪問
Protected
只能從本類和它的子類中訪問
Private
只能從本類中訪問它
Static
對該類的所有實例只能有一個域值存在
transient
不是一個對象持久狀態的一部份
Volatile
可以被非同步的線程所修改
final
必須對它賦予初值並且不能修改它
局部變數修飾符
final
必須對它賦予初值並且不能修改它
方法修飾符
Public
可以從所有的類中訪問它
Protected
只能從本類及其子類中訪問它
Private
只能從本類中訪問它
abstract
沒有方法體,屬於一個抽象類
final
子類不能覆蓋它
static
被綁定於類本身而不是類的實例
native
該方法由其他編程語言實現
asnchronized
在一個線程調用它之前必須先給它加
『肆』 JAVA中類及類成員的訪問控制符包括
public:
可以在任何地方進行訪問,不受任何約束;
protected:
可被子類訪問,不管是同一個包還是不同包
同一個包中非子類需要通過對象訪問
private:
只能夠被本類中的其它成員訪問,而不能從類的外部進行訪問
預設:稱為friendly,可被同一包的所有的類訪問
final:
final修飾的類表示這個類不可被繼承,被稱為最終類
Static:
不能用來修飾類,可以用來修飾變數,用static修飾的變數稱為靜態變數,可以直接通過
類名.變數名
來調用
『伍』 c#中的類中的5種不同訪問修飾符的含義
這個要看類的位置,
如果類,結構,代理,枚舉是外置的,那修飾符只有:public 和 internal,默認是internal。
至於private和protected是用來修飾類的成員。
如果是內置的,就是作為另一個類型的成員,也稱內部類型(inner type),這樣的話,修飾符可以是全部可用修飾符,默認是private。
舉例:
class a {} 類a是internal
c#中類的默認訪問修飾符,默認是internal :C#用多種修飾符來表達類的不同性質。
根據其保護級 C#的類有五種不同的限制修飾符:public 可以被任意存取;
protected 只可以被本類和其繼承子類存取;
internal只可以被本組合體(Assembly)內所有的類存取,組合體是C# 語言中類被組合後的邏輯單位和物理單位,其編譯後的文件擴展名往往是「.DLL」或「.EXE」protected internal唯一的一種組合限制修飾符,它只可以被本組合體內所有的類和這些類的繼承子類所存取。
private 只可以被本類所存取。如果不是嵌套的類,命名空間或編譯單元內的類只有public和internal兩種修飾。
new 修飾符只能用於嵌套的類,表示對繼承父類同名類型的隱藏。
abstract 用來修飾抽象類,表示該類只能作為父類被用於繼承,而不能進行對象實例化。
抽象類可以包含抽象的成員,但這並非必須。abstract 不能和new 同時用
『陸』 Java中類有哪些訪問控制修飾符,並指出它們的訪問控製作用范圍
類的訪問控制符只有public與默認兩種;類成員的訪問控制符包括public,private,protected,與默認,java中沒有friendly。public代表允許所有類及成員訪問,private代表僅允許本類成員訪問,protected代表僅允許本類及其子類成員訪問,默認代表允許本包中類及其成員訪問