成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

java中的類和方法的修飾符

開發 后端
修飾符是用于限定類型以及類型成員的申明的一種符號。本文主要介紹JAVA中類和方法的修飾符,一起來看。

java中的類和方法的修飾符Java程序在定義類時,除了使用class關鍵字標識之外,還可以在class之前增加若干類的修飾符來修飾限定所定義的類的特性。類的修飾符分為訪問控制符和非訪問控制符兩大類。修飾符之間的先后排列次序對類的性質沒有任何影響。

一,非訪問修飾符。

1,抽象類:

凡是用abstract修飾符修飾的類被稱為抽象類。抽象類就是沒有具體對象的概念類。

抽象類是一種經過優化的概念組織方式:把共同特點抽象出來;其后在描述和處理某一種具體對象時,就只需描述不同的特殊之處。這種組織方式使得所有的概念層次分明,簡潔洗練,非常符合人們日常的思維習慣。

由于抽象類是它的所有子類的公共屬性的集合,所以使用抽象類的一個優點就是可以充分利用這些公共屬性來提高開發和維護程序的效率。

值得一提的是,面向對象技術是要用更接近于人類思維方式的方法來處理實際問題,抽象類的設立就是這種思想的具體體現之一,它是模仿人類的思維模式的產物。

2,最終類:

如果一個類被final修飾符所修飾和限定,說明這個類不可能有子類。

被定義為final的類通常是一些有固定作用、用來完成某種標準功能的類。如Java系統定義好的用來實現網絡功能的InterAddress、Socket等類都是final類。

abstract和final修飾符不能同時修飾一個類,因為abstract類自身沒有具體對象,需要派生出子類后在創建子類的對象;而final類不可能有子類。這樣放在一起修飾就沒有意義了。

3,有些類的修飾符也可以用來修飾類中的域或方法:

(1) 域:是類和對象的靜態屬性,定義域的操作就是說明變量或創建對象的操作。

<1> 靜態域:

用static修飾符修飾的域是僅屬于類的靜態域。靜態域是類中每個對象共享的域。他們是類的域,不屬于任何一個類的具體對象。是一個公共的存儲單元,任何一個類的對象訪問它時,取到的都是相同的數值。

<2> 靜態初始化器:

靜態初始化器是由關鍵字static引導的一對大括號括起的語句組。作用是:在加載時,初始化類的靜態域。如有多個static{}程序段,則在類的初始化時,會依次執行.

與構造函數相同,他們都是用來完成初始化的工作,但是靜態初始化器與構造函數有三點不同:

①構造函數是對每個新創建的對象初始化,而靜態初始化器是對類自身進行初始化。

②構造函數是在用new運算符產生新對象時由系統自動執行,而靜態初始化器則是在它所屬的類加載到內存時由系統調用執行。

③不同于構造函數,靜態初始化器不是方法,沒有方法名、返回值和參數列表。

<3> 最終域:

用final修飾的域,實際上就是Java中的常量。

用final修飾符說明常量時,需要注意以下幾點:

①需要說明常量的數據類型。

②需要同時指出常量的具體取值。

③因為所有類對象的常量成員,其數值都固定一致,為了節省空間,常量通常聲明為static。

<4> 易失域

如果一個域被volatile修飾符所修飾,說明這個域可能同時被幾個線程所控制和修改,即這個域不僅僅被當前程序所掌握,在運行過程中可能在其他未知的程序操作影響和改變該域的取值。在使用當中應該特別注意。

通常,volatile用來修飾接受外部輸入的域。如表示當前時間的變量將系統的后臺線程隨時修改,以保證程序中取到的總是最新的當前系統時間,所以可以把它定義為易失域。

(2)方法:是類的動態屬性,標志了類所具有的功能和操作。小括號是方法的標志。

<1> 抽象方法:

修飾符abstract修飾的抽象方法是一種僅有方法頭,而沒有具體的方法體和操作實現的方法。使用抽象方法的目的是使所有的子類,對外都呈現一個相同名字的方法,是一個統一的接口。所有的抽象方法,都必須存在于抽象類之中。

<2> 靜態方法:

用static修飾符修飾的方法,是屬于整個類的類方法,不用的是對象或實例的方法。調用這種方法時,應該使用類名作前綴;這種方法在內存中的代碼段將隨著類的定義而分配和裝載,不被任何一個對象專有;只能處理屬于整個類的成員變量。

<3> 最終方法:

用final修飾符修飾的類方法。功能和內部語句不能再更改的方法,不能再被繼承。

注意:所有已被private修飾符限定為私有的方法,以及所有包含在final類中的方法,都被缺省地認為是final的。

<4> 本地方法:

用native修飾符聲明其他語言書寫方法體并具體實現方法功能的特殊的方法。這里的其他語言包括C/C++/FROTRAN/匯編等。由于native的方法的方法體使用其他語言在程序外部寫成,所以所有的native方法都沒有方法體,而用一個分號代替。

<5> 同步方法:

如果synchronized修飾的方法是一個類的方法(即static的方法),那么在被調用執行前,將把系統類Class中對應當前類的對象加鎖。如果synchronized修飾的是一個對象的方法(未用static修飾的方法),則這個方法在被調用執行前,將把當前對象加鎖。 Synchronized修飾符主要用于多線程共存的程序中的協調和同步。

二,訪問控制符。

訪問控制符是一組限定類、域或方法是否可以被程序里的其他部分訪問和調用的修飾符。類的訪問控制符只有一個public,域和方法的訪問控制符有四個,分別是public、private、protected、private protected,另外還有一種沒有定義專門的訪問控制符的缺省情況。

1,公有訪問控制符public:

Java的類是通過包的概念來組織的,包氏類的一個松散的集合。處于同一個包中的類可以不需要任何說明而方便的互相訪問和引用,而對于不同包中的類,則不行。但當一個類被聲明為public時,他就具有了被其他包中的類訪問的可能性,只要這些其他包中的類在程序中使用import語句引入public類,就可以訪問和引用這個類。

類中被設定為public的方法是這個類對外的接口部分,避免了程序的其他部分直接去操作類內的數據,這實際就是數據封裝思想的體現。

每個Java程序的主類都必須是public類,也是基于相同的原因。

用public修飾的類的域稱為公共域。如果公共域屬于公共類,則它能被所有的其他類所引用。public修飾符會造成安全性的數據封裝性下降,所以一般應減少public域的使用。

2,缺省訪問控制符:

缺省訪問控制權規定,該類只能被同一個包中的類訪問和引用,而不可以被其他包中的類使用,這種訪問特性又稱為包訪問性。

同樣道理,類內的域或方法如果美育訪問控制符來限定,也就具有包訪問性。

簡單說,定義在同一個程序中的所有類屬于一個包。

3,私有訪問控制符private :

用private修飾得域或方法只能被該類自身所訪問和修改,而且不能被任何其他類(包括該類的子類)來獲取和引用。private修飾符用來聲明那些類的私有成員,它提供了最高的保護級別。

4,保護訪問控制符protected :

用protected修飾的成員變量可以被三種類所引用:該類自身、與它在同一個包中的其它類、在其他包中的該類的子類。使用protected修飾符的主要作用是允許其他包中該類的子類來訪問父類的特定屬性。

5,私有保護訪問控制符 private protected :

用private protected修飾的成員變量可以被兩種類訪問和引用,一種是該類本身,一種是該類的所有子類。把同一個包內的非子類排除在可訪問的范圍之外,使得成員變量更專于具有明確繼承關系的類,而不是松散地組合在一起的包。

另記:內部類的修飾字還可以是private:即只有外層類的區域可以訪問。

【編輯推薦】

  1. 淺談Java的volatile
  2. JAVA虛擬機內存分配與回收機制
  3. 菜鳥入門 java語言學習六大要點
  4. Java為什么如此深受廣大開發者的青睞?
  5. JAVA技巧心得 學Java切忌浮躁
責任編輯:于鐵 來源: 360doc.com
相關推薦

2009-08-24 16:49:39

C#修飾符

2009-06-12 14:46:05

static修飾符Java教程

2009-06-12 13:37:47

訪問權限修飾符Java教程

2009-07-22 08:45:35

Scala超類構造器override修飾符

2009-06-19 10:51:39

Scalapackage訪問修飾符

2011-05-13 14:56:14

autoregisterstatic

2011-07-20 16:48:22

C++static

2011-07-20 16:57:05

C++const

2011-07-20 16:50:39

inlinec++

2015-08-18 09:25:11

Java修飾符關鍵詞

2009-09-02 17:04:35

C# Extern修飾

2015-01-06 09:47:55

Java

2023-12-29 09:01:27

SwiftUI視圖修飾符

2009-08-27 11:04:08

C# extern修飾

2009-08-27 13:06:13

C# new修飾符

2009-09-02 17:14:28

C#修飾符

2009-08-21 13:58:06

C# virtual修

2009-08-27 11:12:03

C# abstract

2021-08-02 12:33:26

Swift修飾符視圖

2011-06-28 09:29:11

C#修飾符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费黄色av网站 | 91精品久久久久久久久中文字幕 | 日韩免费一区二区 | 国产激情一区二区三区 | 精品视频在线播放 | 成人伊人 | 国产一区91精品张津瑜 | 在线亚洲人成电影网站色www | 成人3d动漫一区二区三区91 | 精品视频在线播放 | 国产成人精品在线播放 | 久久69精品久久久久久久电影好 | 成人久久久 | 伊人免费网 | 国产一区二区在线播放视频 | 国产高清免费视频 | 国产精品v| 日韩欧美在线一区 | 亚洲精品久久久久久一区二区 | 国产精品一区二区av | 亚洲成av| 黄色综合| 亚洲精品在线免费观看视频 | 午夜精品久久久 | 丁香六月伊人 | 中文字幕一区在线观看视频 | 992tv人人草| 蜜桃在线一区二区三区 | 国产高清精品在线 | 国产精品夜夜春夜夜爽久久电影 | 成人在线视频观看 | 国产精品资源在线 | 成人国产a | 九九99久久 | 日韩欧美精品在线 | 日本激情视频中文字幕 | 国产欧美一区二区精品久导航 | 久久精品手机视频 | 国产精品178页 | 精品国产一区二区在线 | 美国一级片在线观看 |