❶ 簡述 private、 protected、 public、 internal 修飾符的訪問許可權。
public:類或成員可以由同一程序集中的任何其他代碼或引用它的另一個程序集訪問。
private:只能通過同一個類或結構中的代碼訪問類型或成員。
protected:類或成員只能由同一個類中的代碼訪問,或者在從該類派生的類中訪問。
internal:類或成員可以由同一程序集中的任何代碼訪問,但不能從另一個程序集訪問。
(1)被哪個修飾符修飾可以被外界訪問擴展閱讀:
private、 protected、 public、 internal 修飾符除了可以單獨使用,還可以組合使用。
protected internal:訪問僅限於從包含類派生的當前程序集或類型。
private protected: 訪問僅限於從當前程序集中的包含類派生的包含類或類型。
除了使用protected internal或private protected組合時,成員或類只允許使用一個訪問修
飾符。名稱空間上不允許訪問修飾符。命名空間沒有訪問限制。
根據成員聲明發生的上下文,僅允許某些聲明的可訪問性。如果在成員聲明中未指定訪問修飾
符,則使用默認輔助功能。
頂級類型(不嵌套在其他類型中)只能具有internal或public可訪問性。這些類型的默認可訪
問性是internal。
❷ Java中目前學習涉及到的四種許可權修飾符都有什麼並說明各自的許可權范圍
(1)public : 公共許可權
修飾對象: 修飾類、方法、屬性
繼承: 被public所修飾的成員能被該類的所有子類繼承下來。
作用域: 可以被任意類訪問
public能用來修飾類,在一個java源文件中只能有一個類被聲明為public,而且一旦有一個類為public,那這個java源文件的文件名就必須要和這個被public所修飾的類的類名相同,否則編譯不能通過。說到這里,穿插多一點知識。一個類作為外部類的時候只能被public或者默認訪問修飾符所修飾,但是一個類如果作為內部類的時候,則可以被四種訪問修飾符所修飾,因為一個類作為內部類的時候,就作為外部類的一個成員屬性了,因此可以有四種訪問修飾符修飾,這是內部類和外部類的一個區別。
public用來修飾類中成員(變數和方法),被public所修飾的成員可以在任何類中都能被訪問到。通過操作該類的對象能隨意訪問public成員。
public在類的繼承上的體現,被public所修飾的成員能被所有的子類繼承下來。
(2)protected:受保護的許可權
修飾對象:修飾內部類,介面,屬性,方法
繼承: 被protected所修飾的成員能被該類的所有子類繼承下來。
作用域: 可以被同包類訪問,如果不是同包,必須是該類的子類才能訪問
(3)default : 同包許可權(默認,預設的)
修飾對象:修飾類,屬性,方法。
繼承:被default所修飾的成員只能被該類所在同一個package中的子類所繼承下來。(也就是說只有在同一個package中的子類才能訪問到父類中default修飾的成員)
作用域: 只能被同包的類訪問
(4) private : 私有許可權
修飾對象 : 內部類,屬性,方法
作用域: 只能在本類中使用
注意:
(1)protected不能修飾類。
(2)priavte可以修飾類,但是該類必須是一個內部類。
在定義類時,推薦訪問控制級別從嚴處理:
(1) 如果不允許外部直接通過 new 創建對象,構造方法必須是 private。
(2)工具類不允許有 public 或 default 構造方法。
(3)類非 static 成員變數並且與子類共享,必須是 protected。
(4)類非static成員變數並且僅在本類使用,必須是private。
(5)類 static 成員變數如果僅在本類使用,必須是 private。
(6)若是 static 成員變數,必須考慮是否為 final。
(7)類成員方法只供類內部調用,必須是 private。
(8)類成員方法只對繼承類公開,那麼限制為 protected。
❸ java選擇16級
java:選擇20 填空題 4 改錯 6個 程序設計 4
單選
1. 方法的重載是指,兩個方法具有相同名稱和不同的參數形式,其中不同的參數形式是指()
A 參數個數和類型不同
B 參數有無返回值
C 方法的修飾符不同
D 以上都不對
2. 設A為已定義的類名,下列聲明並創建A類的對象a的語句中正確的()
A A a=new A ();
B public A a=A();
C A a=new class();
D a A;
3. 下列關於靜態方法的描述中,錯誤的是()
A 靜態方法指的是被static關鍵字修飾的方法
B 靜態方法不佔用對象的內存空間,而非靜態方法佔有對象的內容空間
C 靜態方法內可以使用this關鍵字
D 靜態方法內部只能訪問被static修飾的成員
4. 下面哪個關鍵字用來修飾靜態()
A static
B protected
C public
D private
5以下關於構造函數的描述錯誤的()
A構造函數的返回類型只能是void類
B構造函數是類的一種特殊函數,它的方法名必須與類名相同
C構造函數的主要作用是完成對類的對象的初始化工作
D一般在創建對象時,系統會調用構造函數
**6.父子類在同一包中,子類不能繼承父類的哪個屬性()
A default
B protected
C public
D private
7.下列哪個是合法的標示符
A 12class
B +void
C -5
D _black
8.下列語句中執行跳轉功能的語句
A for語句
B while 語句
C continue語句
D switch語句
9.下列語句序列執行後,m的值是int m=1;for(int i=5;i>0;i--)m*=i;
A 15
B 120
C 60
D 0
**10.以下由for語句構成的循環執行的次數是for(int i=0;i>0;i++)
A有語法錯誤,不能執行
B 無限次
C 執行1次
D 一次也不執行
11.下面方法定義中,不正確的()
A float x(int a,int b){return a-b;}//int可以轉float
B int x(int a,int b){return a-b;}
C int x(int a,int b){return a*b;}
D int x(int a,int b){return 1.2*(a-b);} //double不能轉int
**12.下列關於靜態方法的描述中,錯誤的
A 靜態方法屬於類的共享成員
B 靜態方法是通過「類名.方法名」的方式來調用
C 靜態方法只能被類調用,不能被對象調用
D 靜態方法中可以訪問靜態變數
13.繼承的關鍵字是()
A extend
B extends
C Extend
D Extends
14.下列不屬於面向對象的三大特徵是(B 方法)
15.下面哪種寫法可以實現訪問數組arr的第一個元素
A arr[0]
B arr(0)
C arr[1]
D arr(1)
16.在switch(expression)語句中,expression的數據類型不能是
A byte
B char
C float
D short
7.指出下列類型轉換中正確的()
A int i=8.3// 高類型轉低類型必須強制轉換
B long L=8.4f
C int i=(boolean)8.9
D double d=100
18.以下關於方法的覆蓋的說法,錯誤的()
A 子類的方法與父類的方法,方法名必須相同
B 子類的方法與父類的方法,參數形式必須相同
C 子類的方法與父類的方法,返回值類型必須相同
D 以上都不對
19.下面哪個關鍵字在定義類頭時用不到
A class
B public
C extends
D int
21.在使用interface聲明一個介面時,只可以使用哪個修飾符修飾該介面
A private
B protected
C private或者proteced
D public
22.下面類的定義結構正確的
A class A
B class 2A
C int class A
D public class A()
23.this 在程序中代表的是(A 類的對象)
24.在java中,一個類可同時定義許多同名的方法,這些方法的形式參數的個數,類型或順序各不相同
A 隱藏
B 覆蓋
C 重載
D Java不支持此特性
25.下面關於屬性的修飾符,哪個只能在當前類中使用
A default
B protected
C public
D private
27.關於super的說法正確的是
A 是指當前對象的內存地址
B 是指當前對象的父類對象的內存地址
C 是指當前對象的父類
D 可以用在main()方法中
***28.以下的選項中能正確標示java語言中的一個整型常量是
A 12
B -20
C 1,000
D 4 5 6
29.下列數據類型的精度由高到低的順序
A float,double,int,long
B double,float,int,byte
C byte,long,double,float
D double,int,float,long
30.下面說法正確的是
A final可修飾類,屬性,方法
B abstract可修飾類,屬性,方法
C 定義抽象方法需要給出方法的返回值類型,方法名,參數列表和方法體
D用final修飾的變數,在程序中可對這個變數的值進行修改
31.設int x=2,則表達式(x++)*3的值是
A 6
B 9
C 6.0
D 9.0
32.已知類的繼承關系如下,class A class B extends A class C extends A 則以下語句中能
A A a=new B()
B C c=new B()
C C c=new A()
D B b=new C()
33.字元串長度正確表示
A length;
B length();
C size;
D size();
34.有一個類A,以下為其構造方法的聲明,正確的
A void A(int x)
B A(int x)
C a(int x)
D void a(int x)
35.對於一個三位數的正整數n,取出它的十位數字k(k為整型)的表達式是
A k=n/10%10
B k=n%10%10
C k=n%10
D k=n/10
36.若在某一個類定義中定義有如下的方法:static void testWethod()該方法屬於
A 本地方法
B 最終方法
C 靜態方法
D 抽象方法
37.下列敘述正確的
A Java中允許多重繼承
B Java一個類中只能實現一個介面
C Java中只能單重繼承
D Java中一個類可以繼承多個抽象類
**38.為AB類的一個無形式參數無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調,,,
A static void method()
B public void method()
C final void method()
D abstract void method()
***39.下面關於super說法不正確的
A 使用super,可以調用父類的構造方法
B 使用super,可以調用父類的屬性
C 使用super,可以調用父類的方法
D 使用super,可以調用對象自己的屬性和方法
40.在創建對象時必須
A 先聲明對象,然後才能使用對象
B 先聲明對象,為對象分配內存空間,然後才能使用對象
C 先說明對象,為對象分配內存空間,對對象初始化,然後才能使用對象
D 都不對
41.以下哪個介面的定義是對的
A interface B{(void print){};}
B abstract interfance B {{void print};}
C abstract interfance B extends A1,A2{(abstract void print){};}
D interface B {void print();}
42.設X,Y 是已定義的類名,下列聲明X類的對象x1的語句正確的
A static X x1(123);
B public X x1=new X(123);
C Y x1;
D X x1=X();
43將一個double類型的變數a轉化成String類型時,下列語句正確的
A String s=new Double(a).toString();
B String s=a.toString();
C String s=(String) a;
D String s=new double(a).toString();
44.父子類不在同一個包中,子類能繼承父類的哪個屬性
A default
B protected
C static
D private
45.下面關於抽象類的描述,錯誤的
A 抽象類的修飾符可以收public
B 抽象類的修飾符可以是默認的
C 抽象類中的可以有抽象方法,也可以有非抽象方法
D 抽象類中的可以有抽象方法,不可以有非抽象方法
46.設定義:String s=」World」.下面哪些語句錯誤
A int m=s.index()f(『r』)
B char c=s.charAt(0)
C int n=s.length()
D String str=s.append(『2』)
47.下列類頭定義中,錯誤的
A public x extends y
B public class x extends y
C class x extends y implements y1
D class x
48.下列單詞中,不屬於Java關鍵字的是
A NULL
B class
C this
D byte
49.有以下方法的定義,請選擇該方法返回類型type method(byte x,float y) return/y*2
A byte
B short
C int
D float
50.下面哪兩個關鍵字是類的可見修飾符
A public和默認的
B public和private
C private和默認的
D protected和morende
**51.定義抽象類的關鍵字
A abstract class
B final class
C static class
D public class
52.聲明一個數組,_[ ] a=new String[ ]{};空格處應填
A int
B double
C String
D string
53.定義變數int i=3,那麼 表達式i/6*5的計算結果是
A 0
B 1
C 2.5
D 2
54.設X,Y均為已定義的類名,下列聲明類X的對象x1的語句正確的是
A X x1=new X()
B X x1=X()
C X x1=new Y()
D int X x1
55.若a 和b是整型變數並以正確賦值,以下正確的switch語句是
A switch(a+b);{}
B switch(a+b*3.0){}
C switch a{}
D switch(a%b){}
56.下列對長度為4的數組a的定義中,正確的
A int[4] a=new int[ ];
B int a[ ]=new int[5];
C int a[ ]={2,4,2,1};
D int[4] a=new int [4]
57.下面關於String類的方法,哪個是返回值定索引位置的字元
A charAt()
B equals()
C index0f()
D replace()
58.下列對構造方法的調用方式的描述正確的
A 使用new調用
B 使用類名調用
C 使用對象名調用
D 使用方法為對象名 方法名
59.被聲明為private,protected及public的類成員,在類的外部則
A 只能訪問到聲明為public的成員
B 只能訪問到聲明為public和protected的成員
C 都可以訪問
D 都不能訪問
60.下面哪個標識符是合法的
A #_pound
B $123+w
C 5Interstate
D a_b
61.下列語句序列執行後,i的值是int i=10; do{i/2;}while(i>1);
A 1
B 5
C 2
D 0
**62.關於數據類型轉換的說法哪個不是正確的
A Java共有兩種數據類型的轉換方式,自動轉換,強制轉換
B Java中當兩個類型不同的運算對象進行二元運算時,Java自動把精度較低的類型轉換成另一個
C boolean型數據能和其他數據類型進行轉換
D char型和int型數據可以幻想轉換
63.下面關於常量的描述,正確的
A常量在主函數中可以被修改
B常量在主函數中不可以被修改
C常量一般用static來定義
D常量一定會被調用
64.下面方法定義中,正確的
A int x(){char ch=』a』;return(int)ch;}
B void x(){return true;}
C int x(){return true;}
D int x(int a,b){return a-b;}
65.面向對象程序不包含下面的哪個組成部分
A 類
B 對象
C 介面
D 程序員
66.下列選項中關於super關鍵字說法正確的
A super 關鍵字是在子類對象內部指定代其父類對象的引用
B super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類
C 子類通過super關鍵字只能調用父類的方法,而不能調用父類的屬性
D 子類通過super關鍵字只能調用父類的屬性,而不能調用父類的方法
67下列語法序列執行後,k的值是 int i=4,k=9,m=5;if(i>j||m<k)k++;else k--;
A 5
B 9
C 8
D 10
68.以下for循環的執行次數是for(int x=0;(x==0)&(x<4);x++);
A 無限次
B 1次
C 4次
D 3次
69.下面關於方法的修飾符,哪個只能在當前類中使用(D )
A default
B protected
C public
D private
70.int a[ ]={45,4,67,23,65,87,34,56};數組中a[5]的值為
A 23
B 45
C 65
D 87
71.下列語句序列執行後,x的值是
int a=4,b=1,x=6;if(a==b)x+=a else x=++a*x;
A 15
B 30
C 25
D 5
72.有以下代碼,運行完後最終值是int i=1;int j=i++;if((i>++j)&&(i++==j)) i+=j;
A 1
B 2
C 3
D 4
73.下面關於get和set方法敘述正確的
A 兩個方法一般都使用this關鍵字
B 兩個方法一般都不使用this關鍵字
C set方法不能使用this關鍵字
D get方法不能使用this關鍵字
74.下面關於類的結構說法正確的
A類只能包含一個構造方法
B類可以沒有屬性
C類只能包含方法
D類只能包含屬性
75.下面哪個關鍵字用來修飾常量
A static
B final
C public
D private
76.有以下代碼,其中變數i可能額類型死switch(i){default :System.out.println(「hello」);}
A byte
B long
C double
D A and B
77.將一個整型轉換成字元串的正確表示是
A Integer.parseInt(123)
B String.parseStrng(123)
C Integer.valueOf(123)
D String valueOf(123)
78.以下for循環的執行次數是for(int x=0;(x=0)&(x>4);x++)
A無限次
B一次也不執行
C4次
D3次
79.設有定義float x=3.5f,y=4.6f,r=5.7f;則以下的表達式中,值為true的
A x>y||x>z
B x !=y
C z>(y+x)
D y>z
80.現有一個變數聲明為boolean aa;下面賦值語句中正確的是
A aa=false
B aa=False
C aa=true
D aa=0
81.下面關於get和set方法的敘述,正確的是
A兩個方法一般都有返回值
B兩個方法一般都沒有返回值
C get方法一般有返回值
D set方法一般有返回值
82.下列方法定義中,方法頭不正確的是
A double m(int m){ }
B void m(int m){ }
C public int m(int m, int n){ }
D m(int h,int m,int n){ }
83.下面關於多態性的說法,正確的是()
A 一個類中不能有同名的方法
B 子類中不難有和父類中同名的方法
C 子類中可以有和父類中同名且參數相同的方法
D 多態性就是方法的名字可以一樣,但返回的類型必須不一樣
84.靜態方法的描述錯誤的(C靜態方法只能被類調用,不能被對象調用)
85.下面哪個標識符是合法的(D a_ b)
86.下面關於多態性的說法正確的(C子類中可以有和父類中同名且參數相同的方法)
87.對java語言的敘述錯誤的(B Java中執行跳轉功能的語句是switch)
88.Java語言中佔用32位存儲空間的是(D int,float)
89.下面關於屬性的修飾符,(D private)只能在當前類中使用
90.定義類投時,不可能用到的關鍵字(D static)
91.下列對構造方法的調用方法的描述正確的(A 使用new調用)
92.為AB類的一個無形式參數無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調用它,該…(A static void method())
93.以下由for語句構成的循環執行的次數是(一次也不執行)
94.下面正確的main方法是(C public static void main(String[] args))
95.下列選項中關於super關鍵字說法正確的是(A super關鍵字是在子類對象內部指代其父類對象的引用)
96.以下for循環的執行次數for(int x=0;(x==0&(x>4);x++))(B 一次也不執行)
97.若a和b是整型變數並以正確賦值,以下正確的switch語句是(D switch(a%b) {})
98.關於對象數組的敘述正確的(B對數組里的每個元素都是那個對象的引用)
99.已知x和y均為boolean型變數,則x&&y的值為true的條件是(C x和y均為true)
100.設 int x=1,y=2,z=3,則表達式y+=z--/++x中y的值(A 3)
101.構造方法的調用方式正確的(C 只能通過new自動調用)
102.方法定義中,正確的是(A int x(){char ch=』a』,return(int)ch;})
103.方法定義中,方法頭不正確的(D m (int h, int m, int n){})
104.覆蓋與重載的關系(A 覆蓋只有發生在父類與子類之間,而重載可以發生在同一個類在中)
105.關於Java源文件說法正確的是(A 一個Java源文件中只能有一個public修飾的類)
106.關於類的繼承描述正確的(B 一個類可以具有多個子類)
107.關於super的說法正確的是(B 是指當前對象的父類對象的內存地址)
108.下面關於String類的方法,哪個是返回指定索引位置的字元(A charAt())
109.定義一個介面時,哪個關鍵字用不到(D class)
110.修飾符中,成員內部被(C public)修飾後,可以被外界訪問
111.this在程序中代表(A類的對象)
112.下列語句序列執行後,i的值(C 24)
Int s=1;i=1;
While(i<=4){
s=s*i;
i++;}
113.下列語句序列執行後,k的值(D 54)
Int x=6,y=10,k=5;
Switch(x%y){
Case 0:k=x*y;
Case 6:k=x/y;
Case 12:k=x-y;
Default:k=x*y-x;}
114.Java支持的3種跳轉語句不包括(D goto語句)
115.字元串長度的正確表示(B length())
❹ java 中有多少修飾符,它們的訪問許可權又是什麼
樓主問的是訪問控制符,只有訪問控制符才說訪問許可權
JAVA裡面 准確來講是有四個訪問控制符 默認、public、private、protected等四個
pravite 只能在同一個類中訪問
protected,可以在同一個類、同一個包、不同包中的子類訪問
默認:在同一個類、同一個包中訪問
public 同一個類,同一個包、不同包中的子類、不同包中的非子類
不知道樓主問的是不是這,如果不是可以再留言
❺ java中修飾符有哪些
java的修飾符有:許可權修飾符:public、protected、default、private
修飾符:abstract、static、final
public 使用對象:最廣,類、介面、變數、方法
protected使用對象:變數、方法 注意:不能修飾類(外部類)
default 使用對象:類、介面、變數、方法。(即預設,什麼也不寫)
private 使用對象:變數、方法 注意:不能修飾類(外部類)
abstract使用對象:類、介面、方法
static 使用對象:類、變數、方法、初始化函數(注意:修飾類時只能修飾 內部類 )
final 使用對象:類、變數、方法
transient:告訴編譯器,在類對象序列化的時候,此變數不需要持久保存
volatile:指出可能有多個線程修改此變數,要求編譯器優化以保證對此變數的修改能夠被正確的處理
native:用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。
synchronized:修飾方法,多線程的支持
類分外部類和內部類,他們的訪問控制是相同的嗎
外部類是相對於內部類而言的,內部類是定義在類裡面的類。
外部類的修飾符有:
default(預設,不寫):類定義時前面未加任何修飾符,表示同一個包中可見。
public:修飾類時表示該類能被項目中所有類可見
abstract:表示是抽象類
final:表示類不可以被繼承
scrictpf:(java關鍵字) 當對一個類或介面使用 strictfp 關鍵字時,該類中的所有代碼,包括嵌套類型中的初始設定值和代碼,都將嚴格地進行計算。嚴格約束意味著所有表達式的結果都必須是 IEEE 754 演算法對操作數預期的結果,以單精度和雙精度格式表示
內部類又分:成員內部類、局部內部類、靜態內部類、匿名內部類
成員內部類:作為外部類的一個成員存在,與外部類的屬性、方法並列
局部內部類:定義在外部類的方法體裡面的類
靜態內部類:使用static修飾的內部類
匿名內部類:就是沒有名字的內部類
成員內部類修飾符有:
public:
protected:
private:private不能修飾外部類,
abstract:
final:
static:可以當做普通類使用,而不用先實例化一個外部類。(用他修飾後,就成了靜態內部類了)
strictfp:(java關鍵字) 即 strict float point (精確浮點)。(可修飾類、介面、方法)
(5)被哪個修飾符修飾可以被外界訪問擴展閱讀:
java中的類修飾符、成員變數修飾符、方法修飾符。
類修飾符:
public(訪問控制符),將一個類聲明為公共類,他可以被任何對象訪問,一個程序的主類必須是公共類。
abstract,將一個類聲明為抽象類,沒有實現的方法,需要子類提供方法實現。
final,將一個類生命為最終(即非繼承類),表示他不能被其他類繼承。
friendly,默認的修飾符,只有在相同包中的對象才能使用這樣的類。
成員變數修飾符:
public(公共訪問控制符),指定該變數為公共的,他可以被任何對象的方法訪問。
private(私有訪問控制符)指定該變數只允許自己的類的方法訪問,其他任何類(包括子類)中的方法均不能訪問。
protected(保護訪問控制符)指定該變數可以別被自己的類和子類訪問。在子類中可以覆蓋此變數。
friendly ,在同一個包中的類可以訪問,其他包中的類不能訪問。
final,最終修飾符,指定此變數的值不能變。
static(靜態修飾符)指定變數被所有對象共享,即所有實例都可以使用該變數。變數屬於這個類。
transient(過度修飾符)指定該變數是系統保留,暫無特別作用的臨時性變數。
volatile(易失修飾符)指定該變數可以同時被幾個線程式控制制和修改。
方法修飾符:
public(公共控制符)
private(私有控制符)指定此方法只能有自己類等方法訪問,其他的類不能訪問(包括子類)
protected(保護訪問控制符)指定該方法可以被它的類和子類進行訪問。
final,指定該方法不能被重載。
static,指定不需要實例化就可以激活的一個方法。
synchronize,同步修飾符,在多個線程中,該修飾符用於在運行前,對他所屬的方法加鎖,以防止其他線程的訪問,運行結束後解鎖。
native,本地修飾符。指定此方法的方法體是用其他語言在程序外部編寫的。
❻ java中類成員的訪問修飾符有哪些
一:訪問修飾符:
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
修飾的方法為同步方法。
❼ java中四種訪問許可權修飾符的各種情況介紹(最好是個人心得!!)、簡明易懂些的
訪問修飾符有四種public protected 默認的不寫的 private
要區分的重點 在同包中的類和不同包中類中的訪問 (注意這里是指類和類之間的訪問許可權)
同包的類是指寫在一個文件夾中的類,不同包中的類是指寫在不同文件夾中的類(如不同項目和不同包都是這個范疇)
下面關鍵的許可權問題了
public 訪問許可權最大,同包(同文件夾)裡面的類絕對是可以互相訪問的,不同包中的類只要經過import得到了路徑後也是可以通過類的對象訪問的
protected 和 默認的比public訪問許可權都要小(不能在其他包中被訪問除非繼承這里是指protected)但他們兩之間有細微的區別就是在不同包中的類繼承protected和 默認的時候 ,繼承的類能夠訪問用protected修飾的成員而不能訪問默認即不寫修飾符的成員
private 范圍最小 只能在類內部的成員之間進行訪問,外部的類是絕對沒有辦法通過對象訪問到私有成員的,繼承的類也不會繼承private的成員(完全手打)
❽ 訪問修飾符有4個分別是public,private,protected,default。請問下怎麼使用分別什麼時候用
java作用域public ,private ,protected 及不寫時的區別
在說明這四個關鍵字之前,我想就class之間的關系做一個簡單的定義,對於繼承自己的class,base class可以認為他們都是自己的子女,而對於和自己一個目錄下的classes,認為都是自己的朋友。
1、public:public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。
4、default 則在包內包外的子類都可見。
作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
❾ 請問:java類成員訪問修飾符的限制范圍
public:Java語言中訪問限制最寬的修飾符,一般稱之為「公共的」。被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包(package)訪問。
private:Java語言中對訪問許可權限制的最窄的修飾符,一般稱之為「私有的」。被其修飾的類、屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。
protect:介於public和private之間的一種訪問修飾符,一般稱之為「保護形」。被其修飾的類、屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。
default:即不加任何訪問修飾符,通常稱為「默認訪問模式「。該模式下,只允許在同一個包中進行訪問。
❿ java 中的修飾符有那幾個,它們的訪問許可權的范圍是多少
java中的修飾符分為類修飾符,欄位修飾符,方法修飾符。根據功能的不同,主要分為以下幾種。
1、許可權訪問修飾符
public,protected,default,private,這四種級別的修飾符都可以用來修飾類、方法和欄位。
包外 子類 包內 類內
public yes yes yes yes
protected no yes yes yes
default no no yes yes
private no no no yes
2、final修飾符
final的意思是不可變,他可以修飾類、欄位、方法。修飾類後類不能被擴展(extends),也就是不能被繼承。修飾欄位後欄位的值不能被改變,因此如果有final修飾欄位,應該對欄位進行手動初始化。修飾方法後該方法不能被改變,也就是重寫。
3、abstract修飾符
abstract是抽象的意思,用來修飾類和方法,修飾類後,該類為抽象類,不能被實例化,必需進行擴展。修飾方法後,該方法為抽象方法必須被子類重寫(override)。
4、static修飾符
static用來修飾內部類,方法,欄位。修飾內部類說明該內部類屬於外部類而不屬於外部類的某個實例。修飾欄位說明該欄位屬於類而不屬於類實例。修飾方法說明該方法屬於類而不屬於類實例。