日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]java构造方法的访问修饰符

發(fā)布時間:2024/8/26 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]java构造方法的访问修饰符 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://my.oschina.net/u/1464678/blog/210359

1.???????類(class)

?

可見性修飾符:?public—在所有類中可見,在其他包中可以用import導入。

???????????????????????????? 缺省—就是沒有修飾符,在同一個包中的類中可見,在其他包中不能用import導入。

??????????????修飾符:final—終態(tài)類,表示該類不能被繼承

????????????????????????????abstract抽象類,不能新建對象

?

2.???????變量(variable)

?

Java中變量有兩種,方法變量和字段變量

方法變量只能用一個修飾符:final—表示常量,不能修改

下面是字段變量的修飾符

????????可見性修飾符:public—在任何類中可見

???????????????????????????? ? ? ???protected—???????在子類中或同一個包中可見

???????????????????????????? ? ? ???private—只在本類中可見,子類中也不可見

????????????????????????????????????缺省—在同一個包中可見,子類不在一個包中,子類中也不可見??

????????修飾符:static—靜態(tài)變量,被類的所有實例共享

????????????????????????final—常量,定義后不能修改

*transient—告訴編譯器,在類對象序列化的時候,此變量不需要持久保存

*volatile—指出可能有多個線程修改此變量,要求編譯器優(yōu)化以保證對此變量的修改能夠被正確的處理

這兩帶*的不是很常用,但也是Java的修飾符,我也不是很清楚

?

3.??????方法(method)

?

???可見性修飾符:public—在任何類中可見

???????????????????????????? ??protected—在子類中或同一個包中可見

??????????????????????????????private—只在本類中可見,子類中也不可見

??????????????????????????????缺省—在同一個包中可見,子類不在一個包中,子類中也不可見

???修飾符:???static—靜態(tài)方法,并不需要創(chuàng)建類的實例就可以訪問靜態(tài)方法

??????????????????????final—常方法,所有子類不能覆蓋該方法,但可以重載

????????????????????? abstract—抽象方法,在抽象類中沒有實現(xiàn)的方法

????????????????????? native—本地方法,參見Java Native Interface(JNI)

???????????????????????????? synchronized —在多線程中,synchronized方法調用時,其他所有方法不能調用該方法

?

4.???????接口(interface)

?

?????????可見性修飾符:public—所有類中可見

?????????????????????????????????????缺省—同一個包中可見

?????????接口中的變量總是需要定義為“?public static final?接口名稱”,但可以不包含這些修飾符,編譯器默認就是這樣???

因為接口是不可能有直接實例的,那樣的話也就是不可能修改(final),也不可能通過實例訪問的(static)。?????

?????????接口中的方法只能使用publicabstract修飾符??

?

?

==================================================================================================

public:可以被任何類訪問。 final:使用些修飾符的類不可以被繼承。 abstract:如果要使用abstract類,需要建立一個繼承自它的新類,來實現(xiàn)其中的抽象方法。
變量: 1,Java中沒有全局變量,只有方法變量、實例變量(類中非靜態(tài)變量)、類變量(類中靜態(tài)變量); 2,方法中的變量不可以有訪問修飾符,所以訪問修飾符只是針對類中定義的變量; 3,聲明實例變量時,如果沒有賦初值,將會被初使化為Null(引用類型)或是0、false(原始類型); 4,可以通過實例變量初使化器來初使化較復雜的實例變量,實例變量初使化器是一個用{}包含的語句塊,在類的構造器被 調用時運行,運行于父類構造器之后,構造器之前; 5,類變量(靜態(tài)變量)也可以通過變量初始化器進行初始化,類變量的初使化器是一個用static{}包括起來的語句塊,而且只可以被初使化一次。 訪問修飾符: public:可以被任何類訪問。 protected:可以被同一包中的所有類訪問;也可以被子類訪問,即使子類沒有在同一包內。 private:只能被當前類中的方法訪問。 缺省:無訪問修飾符,可以被同一包中的所有類訪問;如果子類沒有在同一包中,不可訪問。 修飾符: static:靜態(tài)變量(又稱為類變量,實例變量等),可以被類的所有實例所共享,而且在不創(chuàng)建類的實例的情況下也可以對其進行訪問。 final:常量,其值只能分配一次,而且不可更改;注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣。 transient:即告訴編譯器,在該類的對象進行序列化的時候,這個變量不需要持久保存。這么做的主要原因是這個變量可以通過其它的變量來獲取,使用它主要是從性能的角度考慮。 volatile:指出可能有多個線程修改此變量,要求編譯器優(yōu)化以保證對此變量的修改能夠被正確地處理。 方法: 1,類的構造方法不能有修飾符、返回類型和throws子句 2,類的構造器方法被調用時,它首先調用父類的構造器方法,然后運行實例變量和靜態(tài)變量的初使化器,然后才運行該類構造器本身。 3,如果構造器方法沒有顯示調用一個父類的構造器,那么編譯器會為其自動加上一個默認的super(),而父類若沒有默認的無參數(shù)構造器,編譯器就會報錯。super()必須是構造器方法的第一個子句。 4,注意理解private類構造器方法使用的技巧。 static:靜態(tài)方法(又稱為類方法、以及實例方法等),它提供不依賴于類實例的服務,也就是說,并不需要創(chuàng)建類實例就可以訪問靜態(tài)方法。 final:防止任何子類重載該方法;注意不要使用const,雖然它和C、C++中的const關鍵字含義一樣。 abstract:抽象方法,類中已聲明但沒有實現(xiàn)的方法,不能將static方法、final方法以及構造器方法聲明為abstract。 native:用該修飾符修飾的方法在類中并沒有實現(xiàn),大多數(shù)情況下這類方法的實現(xiàn)是由C或C++編寫的。可以參見Sun的Java Native接口(JNI),JNI提供了運行時加載一個native方法的實現(xiàn),并將其與一個Java類關聯(lián)。 synchronized:多線程支持,當一個線程調用該方法時,就會為這個對象加一個鎖,從而其它線程就不可以再次調用這個方法,直到前一個線程將其釋放。
接口: 1,接口不能定義任何其聲明方法的實現(xiàn)。 2,接口中的變量總是需要定義為“public static final 接口名稱”,也可以不包含這些修飾符,但編譯器默認就是這樣,顯示的包含修飾符主要是為了程序邏輯清晰。

轉載于:https://www.cnblogs.com/xunbu7/p/5111684.html

總結

以上是生活随笔為你收集整理的[转]java构造方法的访问修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。