日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

來源:程序員人生   發布時間:2015-04-20 07:53:49 閱讀次數:3313次
    我想學習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?

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久国产精品二国产精品 | 欧美日韩激情在线一区二区三区 | 亚洲国产视频网站 | 欧美在线不卡视频 | 99re国产 | 成年网站在线观看 | 黄色片网址 | 91短视频黄 | 欧美高清视频一区 | 99re在线视频精品 | 国产亚洲精品美女久久久久久久久久 | 亚洲视频一二三区 | 日日噜噜噜夜夜爽爽狠狠视频, | 国产一区二区三区不卡在线观看 | 污污的网站在线免费观看 | 国产不卡免费视频 | 伊人国产精品 | 五月激情网址 | 毛片一区 | 一区二区三区av在线 | 久久看视频 | 日韩欧美大片 | 亚洲色图35p | 成人在线免费网站 | 一级片久久久久久 | av网站在线看 | 黄色网址在线播放 | 在线视频国产一区 | 青草网| 久久中国国产 | 日本视频在线观看 | 欧美成人精品一区二区三区在线看 | 一区在线观看 | 欧美精品一区在线观看 | 国产一区二区视频在线 | 国产精品毛片一区二区三区 | 首页 国产 欧美 日韩 丝袜 | 91精品国产色综合久久 | 日韩高清在线 | 日朝毛片 | 免费成人高清在线视频 |