多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > [置頂] 別說你懂修飾符――深入分析Java修飾符

[置頂] 別說你懂修飾符――深入分析Java修飾符

來源:程序員人生   發布時間:2015-04-20 07:53:49 閱讀次數:3307次
    我想學習Java的朋友應當都在學習的路上遇到過這樣的疑問,Java中的修飾符,對public,private,protected還算熟習,
可是對final,static等就不太清楚了,對Java中類,方法,變量的默許修飾符好像就更不了解了,我們今天就和大家1起
學習1下,Java中各種各樣奇妙的修飾符。

1、范圍介紹

首先,我們要明白在Java中修飾符的作用主要有兩種,1種是用來控制訪問權限的,另外一種是用來控制其他方面的(比如值是不是可改,訪問的方式,是不是可覆蓋等等)。而,在訪問權限方面,1般分為以下幾種:類內可訪問,包內可訪問,子類可訪問等幾種范圍。我們也主要圍繞這幾種范圍進行分析。

2、變量的修飾符

Java中的變量,主要分為兩類,1類是方法內的變量,1類是類內的變量(或叫類的屬性或字段)。而方法內的變量只能用1種修飾符final。表示常量,不能更改。類內的變量卻是有很多,下面我們來具體分析1下。

1. 訪問權限控制方面:

// 變量的修飾符,關于訪問權限控制方面 public String publicString = "public"; protected String protectedString = "protected"; private String privateString = "private"; String defaultString = "default";

我們可以看到主要有4類修飾符,public,protected,private還有1個是默許的(default)。那末他們的訪問權限如何呢?

public: 任何地方都可以訪問,對訪問無窮制。
protected: 同1個包內或不同包內的子類可以訪問。
private: 同1個類內可以訪問。
默許(default): 同1個包內可以訪問。

2. 其他控制方面:

class Test{ static String staticString = "static"; final String finalString = "final"; }

我們可以看到其他方面的控制修飾符主要有兩個,static,final。

static表示該變量無需取得其所屬類的對象就能夠訪問。甚么意思呢?就是說,對上面的例子,我可以通過Test.staticString的方式,直接訪問staticString這個變量。固然了,你也能夠通過Test test = new Test(); test.staticString的方式進行訪問,但是其實不推薦通過這類方式進行訪問。

final表示該變量1旦賦值以后,其值將不會再產生改變。如上面所示,如果你再使用finalString = “hello”的方式修改其值的話,就會報錯,且沒法修改。

3、非構造函數的修飾符

1. 訪問權限控制方面

// 關于方法的修飾符 public void printPublic() { System.out.println("public method"); } protected void printProtected() { System.out.println("protected method"); } private void printPrivate() { System.out.println("private method"); } void printDefault() { System.out.println("default method"); }

非構造函數的訪問權限與變量的完全相同,這里不再贅述。

2. 其他控制方面:

static void printStatic() { System.out.println("static method"); } final void printFinal() { System.out.println("final method"); } abstract void printAbstract();

其中static和變量中的static具有相同的含義。final也表示,在繼承關系中,這個方法是不可以被子類覆蓋重寫的。而abstract是指需要子類實現的抽象方法。

4、構造函數的修飾符

構造函數的修飾符只有訪問權限控制方面:

class TestA { //關于構造函數的修飾類 public TestA(){ } protected TestA(int i){ } private TestA(int i,int j){ } TestA(String string){ } }

其中,private限制構造函數后,其他類中將不能夠通過new的方式來獲得這個類的對象,能夠有效控制對象的創建行動,這在有些設計模式中是非常重要的。

5、類的修飾符

關于類的修飾符主要有4種,以下:

// public,默許,abstract,final。 public class Test1 {} class Test2{} abstract class Test3{} final class Test4{}

其中public,和默許(default)是訪問控制修飾符,和變量的完全相同,不再贅述。

abstract是表示該類為1個抽象類,不能實例化該類,即不能使用Test3 test3 = new Test3();的方式獲得Test3的實例。

final表示該類不能被子類繼承,該類即為終究類,不可再被繼承。

6、關于接口

接口比較特殊,接口的修飾符只有public和默許(default),其控制權限和變量完全相同,不再贅述。

值得注意的是,接口中的變量只能為:public static final 變量名。固然了,你也能夠不寫這些修飾符,編譯器會自動幫你加上的,由于編譯器默許情況下就是這樣修飾的。

接口中的方法,只能用public和abstract修飾符,固然了,你也能夠不寫這些修飾符,一樣,編譯器會自動幫你加上的。

PS:至于變量為何必須聲明為public static final請參照我的另外一篇博客: Java接口中的成員變量為何必須聲明為public static final?

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久久y | 中文国产成人精品久久一区 | 欧美性大交 | 欧美一级久久久久久久大片动画 | 亚洲男人影院 | 国内性生活视频 | 精品久久久久久无码中文字幕 | 天堂在线影院 | 国产95在线 | 亚洲 | 亚洲国产情侣偷自在线二页 | 日韩欧美视频在线播放 | 欧美网站在线看 | 日本一区视频在线观看 | 性爱视频在线播放 | 亚洲国产成人精品不卡青青草原 | 爱爱www在线观看视频高清 | 福利视频一二区 | 亚洲综合在线视频 | 风间由美一区二区av101 | purnhurb国产在线观看 | 亚洲欧美日韩精品久久 | 日韩欧美片 | 精品小视频 | 国产成人性色视频 | 欧美疯狂xxxx乱大交视频 | 日本一级级特黄特色大片 | 国产亚洲精品美女一区二区 | 伊人久久网站 | 69做爰视频在线观看 | 亚洲区欧美中文字幕久久 | 亚洲尤物视频 | 日韩精品亚洲人成在线播放 | www黄色com| 国产精品老女人精品视 | 欧美高清一区 | 尤物视频在线观看视频 | 日韩 欧美 国产 亚洲 中文 | 国产欧美一区二区三区免费 | 最近高清中文字幕大全1 | 日韩国产欧美视频 | 在线精品亚洲欧洲第一页 |