導航:首頁 > 編程語言 > java的四種許可權

java的四種許可權

發布時間:2022-08-12 23:41:29

java中四種訪問許可權在同類體中,同一包中,不同包中的許可權范圍

1. public 表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用。

2. private 表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。

3. protected 對於子女、朋友來說,就是public 的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private 。

4. friendly修飾的類叫友元類,在另外一個類中使用友好類創建對象時,要保證它們在同一包中,就是說在一個包內的類互為友元類。

⑵ Java的訪問控制許可權有哪幾種試以類格式形式列出Java的訪問控制。

訪問許可權的等級最大到最小依次是:public,protected,包訪問許可權(無關鍵字)和private。

成員的訪問許可權取得對某成員(屬性和方法)的實現方法有下面四種情況

1, 許可權設置為public; 2, 默認包訪問許可權,在同一包中的其他類,可以訪問; 3, 許可權設置為public或者protected,通過繼承的子類可以訪問; 4, 設置為private,提供訪問器和變異器方法(get/set);

下面介紹這四種許可權(相對成員而言)

1, 包訪問許可權,在同一包中的類可以訪問; 2, Public:介面訪問許可權,任何類都可以訪問; 3, Private:你無法訪問,除了包含該成員的類,其他類都可以訪問。 4, Protected:繼承訪問許可權,包括包訪問許可權。在同一包中,還有就是子類可以訪問。

類的訪問許可權類的訪問

只有兩種:包訪問許可權或public(用法同上) 如果不希望其他類擁有該類的訪問許可權,可以把這個來說有的構造器制定為private(比如單列模式)。

⑶ java如果將欄位設置為public

Java有public、protect、friendly、private四種訪問許可權,並且這四訪問許可權的訪問范圍越來越小。

⑷ java中不同包中的子類怎麼調用父類中的

您好,很高興和您一起討論問題,如下是我的想法:
java中的許可權控制有四種:public、protected、不寫的時候、private,按照這樣的順序依次變得嚴格。
要想在不同包的子類中調用父類的方法/變數,應該使用protected、public控制關鍵字。
謝謝,個人之見!

⑸ java中四種訪問許可權修飾符的各種情況介紹(最好是個人心得!!)、簡明易懂些的

訪問修飾符有四種public protected 默認的不寫的 private
要區分的重點 在同包中的類和不同包中類中的訪問 (注意這里是指類和類之間的訪問許可權)
同包的類是指寫在一個文件夾中的類,不同包中的類是指寫在不同文件夾中的類(如不同項目和不同包都是這個范疇)
下面關鍵的許可權問題了
public 訪問許可權最大,同包(同文件夾)裡面的類絕對是可以互相訪問的,不同包中的類只要經過import得到了路徑後也是可以通過類的對象訪問的
protected 和 默認的比public訪問許可權都要小(不能在其他包中被訪問除非繼承這里是指protected)但他們兩之間有細微的區別就是在不同包中的類繼承protected和 默認的時候 ,繼承的類能夠訪問用protected修飾的成員而不能訪問默認即不寫修飾符的成員
private 范圍最小 只能在類內部的成員之間進行訪問,外部的類是絕對沒有辦法通過對象訪問到私有成員的,繼承的類也不會繼承private的成員(完全手打)

⑹ java定義了幾個關鍵字用於表示幾種訪問許可權各表示什麼含義

還有兩天,由於時間關系,盡量幫你答哈,呵呵你也太小氣了吧,5分不如不給呵呵開個玩笑
1.不存在的,基本單位:類
2.一般是從main()方法開始的
3.構造函數在類創建對像時無條件調用,而一般方法則要要對像去才可以調用,當然static方法直接用類名也可以調用
4.print()或println()兩個方法,如System.out.println();
5.和你主類名必需完全相同,注意大小寫,也就是public類的類名
6.javac 文件名.java
7.是.class文件
8.java 文件名(沒有.java)
9.
public class HelloWorld{
public static void main(String]
args){
System.out.println("Helloworld");
}
}

第二部分:
1.標識符就是用戶自己啟的名字,有類名,方法名,變數名,要求:1.區分大小寫,2.不能以數字開頭3.不能要關鍵字
順便說一哈在java中 還有一個不成文的約定那就是:類名可以用若干個單片語合起來,第個單詞的第一個字母要大小,變數名一般用小寫,方法名的第一個字母用小寫,常量名全用大寫,可用下劃線___分開
2.
有六個:byte(1) short(2) int(4) long(8) float(4) double(8) 括弧里表示其占的位元組數
3.類和方法的前面不加關鍵字,編譯器會給它一個默認的關鍵字default或friendly表示在同一個包在可以訪問它.
4.不是很清,不過你可以用StringBuffer類的append()方法追加
5.這兩個都是一個位移運算符,都表示右移一位,不同的是">>"若被移動的數為正數,則最左填為0,否則填為1,而">>>"不管正數負數最左為0,(請注意:這都是在二進制的情況下進行的,了解一下就行了,用得不多)
6.
public class Max{
static int max=0,min=0;
static void swap(int a,int b,int c){
max=a>b?a:b;
max=max>c?max:c;

min=a<b?a:b;
min=c<min?c:min;

System.out.println(a+" "+b+" "+c+"這三個數的最大值是:"+max);
System.out.println("最小的數是:"+min);
}

public static void main(String[] args){
swap(-1,0,1);//你可以在這里改變它的參數,比較別的數
}
}
7.
public class Factorial{
public static void main(String[] args){
int factorial=10;
for(int i=factorial-1;i>0;i--){
factorial=factorial*i;
}
System.out.println("10!="+factorial);
}
}
8.
public class EatPeach
{
public static void main(String[] args)
{
int n=1;

for(int i=10;i>0;i--)
{
System.out.println("第"+i+"天吃了"+n+"個桃子");
n=(n+1)*2;
}
}
}

第三部分:
1.類就是整個java程序執行的模塊,由成員變數和成員方法(也叫函數)組成
2.修飾符你說的是關鍵字吧:
public(共用訪問符,無能什麼地方都可以訪問),
private 只能同一個包可以訪問
protected 允許子類繼承並修改
static 靜態存偖區,在程序執行完後才釋放內存
final 常量,不能改改的量
主要的就是這幾個,當然你的題議還有int double long boolean float 等等這些你應該知道的就不用說了
3.類的構造函數將會在創建類的對像的第一時間得到調用,而普通方法要用對像才能調用,(當然如果是static方法的話也可以用類然直接調用)
4.Math類和Random類
5.
public(共用訪問符,無能什麼地方都可以訪問),
private 只能同一個包可以訪問
protected 允許子類繼承並修改
final 用在類的前面不能繼承它
6.靜太成員一般是在程序執行完後才釋放內存,反之則是在當前方法完畢就釋放,而main就是這個性質來的,要加static

7.抽像類是不能完成某個具體的動作的,也就是一個介面,(注意只要有一個抽像方法在內的類必定定義為抽像類)
非抽像類剛剛相反
8.抽像方法沒有方法體,如abstract void f();非抽像方法有方法體如void f(){}
9..(最終類,最終方法,最終屬性就是在類,方法和變數的前加final)
含義就是:當放在類前,降低了此類的訪問許可權,重要的是別的類不能繼承它
當放在方法前:表示這個方法不可以修改,更不得覆蓋它
當放到變數前:也就是我們講的常量,你一定曉得是不變的量,這我就不用多說了
10.
class Employee{
private String name;
private int salary,hireDay;
Employee(String name,int salary,int hireDay){
this.name=name;
this.salary=salary;
this.hireDay=hireDay;
}
public String getName(){
return name;
}
public int getSalary(){
return salary;
}
public int getHireDay(){
return hireDay;
}
}
//注:你說的三個私有方法用一個構造器完成要簡單一些,如果你一定要那麼做,只要把三個參數改成//三個方法就可以了

//11.
public class EmployeeTest{
public static void main(String[] args){

Employee[] e={
new Employee("小明",800,10),
new Employee("小強",600,15),
new Employee("小華",900,12)
};

System.out.println("name "+" salary"+" hireDay");
for(int i=0;i<e.length;i++)

System.out.println(e[i].getName()+" "+e[i].getSalary()+

" "+e[i].getHireDay());

}
}
注意你要先編譯第一個,第二個才能運行

第四部分:
1.這個題不是很好,意思不夠明確,這里我說兩種吧多態和覆蓋都是繼承.當然介面也可以繼承,所以我說這個題出得不好!
2.當我們使用關鍵字extends時就表示一個類繼承了另一個類,也就是子類和父類,對於方法來說有下面三種:
(1).方法繼承,在子類中不需定義就擁有的父類在的方法
(2).方法的覆蓋:是指返回的類型,形式參數和方法名都相同,改變其方法體.
(3).方法的重載:則是方法名相同,形式參數不同的幾個方法,如:洗車,洗衣服,有一個是相同的,就是洗這個屬性(方法名),不同的是車,衣服(參數),所以我們不必這樣說(用洗車的方法來洗車,用洗衣服的方法來洗衣服)就能分開洗車是做什麼和洗衣服是做什麼,正是如此編譯器是通過這種方式來識別調用哪個方法的
(4.abstract class Employee{
abstract int getSalary();

}
class CommonEmployee extends Employee{
private int salary;
CommonEmployee(int salary){
this.salary=salary;
}
public int getSalary(){
return salary;
}
}
class Manager extends Employee{
private int salary;
Manager(int salary){
this.salary=salary;
}
public int getSalary(){
return salary;
}
}
public class SimpleTest1{
public static void main(String[] args){
Employee com=new CommonEmployee(1200);
Employee man=new Manager(2000);

System.out.println("職工的工次是:"+com.getSalary());
System.out.println("經理的工資是:"+man.getSalary());
}
}
5.java的多態性是指:許多類它們有一個共同的特點,我們如果每個特徵我們都去寫的話會用很多的代碼也很麻煩,那麼解決這一問題的正是多態性,
那如何解決呢??我們可以把這些相同的特點寫成一個介面或抽像類,然後只要有這個特徵的類繼承它就可以了,其中有一個很經典的例子:畫圖,我們可以創建一個圖形的抽像類,因為三角形啊,正方形啊,都是圖形,於是可以繼承這個類,於是我們可以用這些圖形來繼承上面所創建的圖形類,如果你不是很理解的話我把這個例子寫到下面你仔細看就會明白的:
import java.util.*;
class Shape{
void draw(){}
void erase(){}
}
class Circle extends Shape{
void draw(){
System.out.println("Circle.draw()");
}
void erase(){
System.out.println("Circle.erase");
}
}
class Square extends Shape{
void draw(){
System.out.println("Square.draw()");
}
void erase(){
System.out.println("Square.erase()");
}
}
class Triangle extends Shape{
void draw(){
System.out.println("Triangle.draw()");
}
void erase(){
System.out.println("Triangle.erase()");
}
}
//和以上是組合的關系
class RandomShapeGenerator{
private Random rand=new Random();

public Shape next(){//反回一個對像
switch(rand.nextInt(3)){
default:
case 0:return new Circle();
case 1:return new Square();
case 2:return new Triangle();

}
}

}
public class Shapes{
private static RandomShapeGenerator gen=
new RandomShapeGenerator();

public static void main(String[] args){
Shape[] s=new Shape[9];
for(int i=0;i<s.length;i++)
s[i]=gen.next();//給引用填對像

for(int i=0;i<s.length;i++)
s[i].draw();//能過動態幫定調用哪一個方法

}
}
如果還是看不會的話,那麼請你打開書好好看抽像類,然後再看看介面,你不會看不懂的,去試試!!!!
6.this和super有一個最易理解的就是this表示當前對像,super表示可以引用父類中的構造函數,
當然它們的功能遠遠不止這些!這我就不多說了
7.
如果把子類的對像轉化為父類中的對像,我們稱為向上轉型,一般這個好實現也很重要,用得也多,可以創建一個子類對像,然後傳給父類的引用,這種說法我不知道科不科學,也很不好理解,但事實就是如此,如上面的圖形例子中:
Shape next={ new Circle(),
new Square(),
new Triangle()
};
這看起來每個類的對像都給了同一個父類(Shape),這有一個問題它們表示同一對像嗎?你看以把它們看成同一引用,然後事不是你想的這樣,next[1].draw(),next[1].draw(),next[2].draw()它們調的並不是同一個方法,而分別調用的是Circle Square Triangle的中的draw()方法,你可以親自運行上面的事例就知道了,好了有點說得多了,如果有問題的話加我QQ吧460566995

8.默認構造函數是指在我們沒有構造函數時編譯器自動幫我們加上一個構造函數一般為:類(){},它沒有任何參數,也沒有方法體

好了,我手都寫軟了,就給你答這么多吧,還有沒有答完的希望後者能補上謝謝,我這兩天也沒有時間了,
如果沒有人答你又一定要要的話可以加我的QQ問我好了,好好看裡面有我的QQ的

⑺ Java中目前學習涉及到的四種許可權修飾符都有什麼並說明各自的許可權范圍

簡單說一下:

  1. public 公共許可權,

    可以修飾類,成員變數,成員方法,構造方法
    被public修飾的成員,可以在任何一個類中被調用,不管同包或不同包,是許可權最大的一個修飾符

  2. protected 受保護許可權,

    可以修飾成員變數,成員方法,構造方法,不能修飾類(外部類,內部類不考慮)

    如果有不同包的類想調用它們,那麼這個類必須是定義它們的類的子類。

  3. default 默認許可權,

    類,成員變數,成員方法,構造方法都能使用默認許可權,即不寫任何關鍵字

    默認許可權即同包許可權,同包許可權的元素只能在定義它們的類中使用,以及同包的類中被調用

  4. private 私有許可權,

    可以修飾成員變數,構造方法,成員方法,不能修飾類(外部類,內部類不考慮)

    被private修飾的成員,只能在定義它們的類中使用,在其他類中不能調用。

⑻ java四種許可權修飾符

java有四種訪問許可權修飾符,分別是:public、protected、private和包訪問(即默認,什麼都不加)。

private,只有本類可以訪問。

protected,本類、相同包、其它包中的子類可以訪問。

public本類、相同包、其它包都能訪問。

包訪問(默認),相同包可以訪問。

⑼ java中沒有聲明許可權比如這個函數- void eat()這個函數的許可權是什麼pubilic 還是private

是default,java中一共有四種許可權,default成為包訪問許可權,在本包可訪問

⑽ 弱弱的問下,java里什麼情況下用public,什麼情況下用private

一.Java訪問許可權飾詞(access specifiers)

Java有public、protect、friendly、private四種訪問許可權,並且這四訪問許可權的訪問范圍越來越小。

1. friendly

1) 果一個class內的數據成員或方法沒有任何許可權飾詞,那麼它的預設訪問許可權就是friendly。同一個package內的其它所有classes都可以訪問friendly成員,但對package以外的classes則形同private。

2)對於同一個文件夾下的、沒有用package的classes,Java會自動將這些classes初見為隸屬於該目錄的default package,可以相互調用class中的friendly成員。如以下兩個class分別在同一個文件夾的兩個文件中,雖然沒有引入package, 但隸屬於相同的default package。

class Sundae{
//以下兩個方法預設為friendly
Sundae(){}
Void f() {System.out.println(「Sundae.f()」);
}
public class IceCream{
public static void main(String[] args){
Sundae x = new Sundae();
x.f();
}
}
2. public:可以被任何class調用

3. private:private成員只能在成員所屬的class內被調用,如:

class Sundae{
private Sundae(){}//只能在Sundae class中被調用
Sundae(int i) {}
static Sundae makASundae() {
return new Sundae();
}
}
public class IceCream{
public static void main(String[] args){
// Sundae class中構造函數Sundae()是private,
// 所以不能用它進行初始化
//Sundae x = new Sundae();
Sundae y = new Sundae(1);//Sundae(int)是friendly,可以在此調用
Sundae z = Sundae.makASundae();
}
}
4. protected:具有friendly訪問許可權的同時,又能被subclass(當然包括子孫類,即子類的子類)所訪問。即,既能被同一package中的classes訪問,又能被protected成員所在class的subclass訪問。

二.Class的訪問許可權

1.Class同樣具有public、protect、friendly、private四種訪問訪問許可權:

1)public:在任何地方都可被使用

2)protect、private:除了它自己,沒有任何class可以使用,所以class不能是

protected或private(inner class除外)

3) friendly:同一個package中的classes能用

2. 如何調用構造函數被聲明為private的class

1) 用static函數

2) 用Singteton模式

class Soup{
private Soup(){}
//(1)靜態函數方法
public static Soup makeSout(){
return new Soup();
}
//(2)The "Singleton" pattern:

private static Soup ps1 = new Soup();
public static Soup access(){
return ps1;
}
public void f(String msg){
System.out.println("f(" + msg + ")");
}
}
public class Lunch{
public static void main(String[] args){
//Soup priv1 = new Soup();編譯錯誤
Soup priv2 = Soup.makeSout();
Soup priv3 = Soup.access();
priv2.f("priv2");
priv3.f("priv3");
}

閱讀全文

與java的四種許可權相關的資料

熱點內容
dos命令建文件夾命令 瀏覽:378
解壓的密碼htm被屏蔽 瀏覽:502
冬天太冷冰箱壓縮機不啟動怎麼辦 瀏覽:83
手機打開vcf需要什麼編譯器 瀏覽:910
加密磁碟後開機很慢 瀏覽:271
長沙智能雲控系統源碼 瀏覽:256
阿里雲伺服器如何設置操作系統 瀏覽:999
超級命令的英文 瀏覽:782
做賬為什麼要用加密狗 瀏覽:586
考研群體怎麼解壓 瀏覽:158
linux修改命令提示符 瀏覽:226
圓圈裡面k圖標是什麼app 瀏覽:63
pdf加空白頁 瀏覽:947
linux伺服器如何看網卡狀態 瀏覽:318
解壓新奇特視頻 瀏覽:707
圖書信息管理系統java 瀏覽:554
各種直線命令詳解 瀏覽:864
程序員淚奔 瀏覽:147
素材怎麼上傳到伺服器 瀏覽:517
android百度離線地圖開發 瀏覽:191