欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談java面向?qū)ο笾兴姆N權(quán)限

 更新時(shí)間:2017年12月13日 08:39:07   作者:在月牙上放歌  
這篇文章主要介紹了淺談java面向?qū)ο笾兴姆N權(quán)限,具有一定借鑒價(jià)值,需要的朋友可以參考下。

俗話(huà)說(shuō)沒(méi)有規(guī)矩就沒(méi)有方圓,java作為一門(mén)嚴(yán)謹(jǐn)?shù)拿嫦驅(qū)ο蟮母呒?jí)編程語(yǔ)言,自然對(duì)權(quán)限整個(gè)重要的問(wèn)題有嚴(yán)格的控制。

Java中,可以通過(guò)一些Java關(guān)鍵字,來(lái)設(shè)置訪(fǎng)問(wèn)控制權(quán)限;

主要有 private(私有), package(包訪(fǎng)問(wèn)權(quán)限),protected(子類(lèi)訪(fǎng)問(wèn)權(quán)限),public(公共訪(fǎng)問(wèn)權(quán)限)

在java里,這些語(yǔ)句都可以修飾類(lèi)中的成員變量和方法,但是只有public和友好型可以修飾類(lèi)。舉個(gè)例子:

接下來(lái)就詳細(xì)解釋一下這幾種權(quán)限的差別(博客最后有表格)按權(quán)限由低到高:(高權(quán)限有低權(quán)限所有特性)

Private:

類(lèi)中的所有private方法和private成員變量只能在類(lèi)中訪(fǎng)問(wèn)而不能在其他類(lèi)中訪(fǎng)問(wèn)。

例如:

package Main;
public class Private {
	private int a;
	private int b;
	Protected (){
		this.a=1;
		this.b=2;
		//a和b只能在Private類(lèi)中調(diào)用
	}
	private void set(){
		System.out.println(""+a+""+b+"\n");
	}
	void Print(){
		this.set();
		//只能在這里用;
	}
}

友好型和protected:

如果在另一個(gè)類(lèi)中聲明其他的一個(gè)類(lèi),如果這兩個(gè)在一個(gè)包中那么另一個(gè)類(lèi)能訪(fǎng)問(wèn)這個(gè)其他類(lèi)的友好型變量不同包不能訪(fǎng)問(wèn):

如果在另一個(gè)B類(lèi)中聲明其他的一個(gè)類(lèi)A,如果這兩個(gè)在一個(gè)包中那么另一個(gè)類(lèi)B也能能訪(fǎng)問(wèn)這個(gè)其他類(lèi)A的protected變量(或方法),如果不在一個(gè)包,那么如果類(lèi)A有一個(gè)父類(lèi)C如果,如果父類(lèi)C中有一個(gè)protected變量(或方法),只要B,C在一個(gè)包中,B就能使用A中從父類(lèi)繼承的protected方法。如果A是B的子類(lèi),如果AB不在一個(gè)包中,那么A可以使用B中protected方法。

例如:

package Main;
import Protected.*;
public class Main {
	public static void main(String args[]){
		Protected jkl=new Protected();
		jkl.Print();
		//調(diào)用jkl父類(lèi)的protect方法 
		Frindly prot =new Frindly();
		System.out.println(prot.a);
		//在Main類(lèi)中調(diào)用友好型的變量 
		prot.set();
		//在Main類(lèi)中調(diào)用友好型的方法
	}
}
package Main;
public class Frindly {
	int a,b,c,d;
	Frindly(){
		a=b=c=d=1;
	}
	void set (){
		System.out.print(""+a+" "+b+"\n");
	}
}
package Main;
public class Protectedfather{
	protected int a;
	private int b;
	protected Protectedfather (){
		this.a=1;
		this.b=2;
		//a和b只能在Protected中調(diào)用
	}
	private void set(){
		System.out.println(""+a+""+b+"\n");
	}
	protected void Print(){
		this.set();
		//只能在這里用;
	}
}
package Protected;
import Main.*;
public class Protected extends Protectedfather{
	public Protected(){
		super();
		//在另一個(gè)包中調(diào)用里父類(lèi)中的protect構(gòu)造方法 
		super.a=12;
		//調(diào)用父類(lèi)的protect變量
	}
}

Public:

如果類(lèi)中的方法或者變量是public,那么就可以在別的類(lèi)中調(diào)用,沒(méi)有限制(用在夸包)。A帶掉用別的包中的B類(lèi)

package Main;
import Public.*;
public class Main {
	public static void main(String args[]){
		int a;
		Public p=new Public();
		//調(diào)用public類(lèi)中的public方法 
		a=p.a;
		//調(diào)用Public類(lèi)中的public變量 
		p.set();
	}
}
package Public;
public class Public {
	public int a=12;
	public void set (){
		System.out.println("OK\n");
	}
}

總結(jié)表格::


同一類(lèi)

同包

不同包

 

子類(lèi)

非子類(lèi)

子類(lèi)

非子類(lèi)

Private

  否

友好型

Protected

Public

總結(jié)

以上就是本文關(guān)于淺談java面向?qū)ο笾兴姆N權(quán)限的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • JDBC Template基本使用方法詳解

    JDBC Template基本使用方法詳解

    這篇文章主要介紹了JDBC Template基本使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解流程

    Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解流程

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 到底如何設(shè)置Java線(xiàn)程池的大小的方法示例

    到底如何設(shè)置Java線(xiàn)程池的大小的方法示例

    在我們?nèi)粘I(yè)務(wù)開(kāi)發(fā)過(guò)程中,或多或少都會(huì)用到并發(fā)的功能。那么并發(fā)線(xiàn)程池到底設(shè)置多大呢?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java由淺入深細(xì)數(shù)數(shù)組的操作下

    Java由淺入深細(xì)數(shù)數(shù)組的操作下

    數(shù)組對(duì)于每一門(mén)編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類(lèi)型元素
    2022-04-04
  • 詳談springboot過(guò)濾器和攔截器的實(shí)現(xiàn)及區(qū)別

    詳談springboot過(guò)濾器和攔截器的實(shí)現(xiàn)及區(qū)別

    今天小編就為大家分享一篇詳談springboot過(guò)濾器和攔截器的實(shí)現(xiàn)及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant

    mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant

    最近在使用mybatis-plus時(shí)用到了通用枚舉,遇到了問(wèn)題,本文主要介紹了mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析

    Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • EL表達(dá)式簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    EL表達(dá)式簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    EL全名為Expression Language,這篇文章主要給大家介紹EL表達(dá)式的主要作用及內(nèi)容簡(jiǎn)介,感興趣的朋友一起看看
    2017-07-07
  • Java比較兩個(gè)對(duì)象是否相等的方法

    Java比較兩個(gè)對(duì)象是否相等的方法

    這篇文章主要介紹了Java比較兩個(gè)對(duì)象是否相等的方法,文中給出了三種方法,并通過(guò)代碼講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 詳解Maven Docker鏡像使用技巧

    詳解Maven Docker鏡像使用技巧

    這篇文章主要介紹了詳解Maven Docker鏡像使用技巧,Maven是目前最流行的Java項(xiàng)目管理工具之一,提供了強(qiáng)大的包依賴(lài)管理和應(yīng)用構(gòu)建功能。本文以Maven為例介紹了Docker在應(yīng)用構(gòu)建中的一些常見(jiàn)技巧。
    2018-06-06

最新評(píng)論