java中訪問修飾符有幾個(java的訪問修飾符的作用範圍)

本文目錄一覽:

java中類成員的訪問修飾符有哪些

一:訪問修飾符:

1.省略訪問修飾符

具有默認的訪問特性,即具有包訪問特性,只能被同一個包中的類使用。

2.public訪問修飾符

用於說明類和類的成員的訪問權限。這種類叫公有類。在一個文件中只能有一個public類型的類。

例如:Rect和UseImport兩個類,分別在兩個不同的包中。順便回顧一下不同類要用import導入。(哎,一直就沒記住)

//Rect.java

pacakage

my;

public

class

Rect

{

private

int

a,b;

public

void

init(int

len,int

width)

{

a=len;

b=width;

}

public

int

area()

{

return

a*b;

}

}

//UseImport.java

import.my.*;//導入my

包的所有類

public

class

UseImport

{

public

static

void

main(string[]

args)

{

Rect

x=new

Rect();

x.init(2,3);

System.out.println(“矩形面積為:”+x.area());

}

}

3.private

用private修飾的類成員成為私有成員,只能在聲明該成員的類中使用,不能在類外使用。一般通過本類中公有方法進行訪問。

4.protected

protected修飾的類成員為保護成員,可以被三種類使用,分別是該類本身,該類的所有子類,該類同包的其他類,該類的子類。

5.private

protected

私有保護成員。可被兩種類使用。分別是:該類本身和該類的所有子類。

二:特徵修飾符

1.abstract:抽象

修飾類為抽象類,修飾方法為抽象方法。只要類中有抽象方法,就必須定義為抽象類。抽象方法只能聲明,不能實現。但是可以在其子類中對抽象方法進行實現。抽象類中也可以包含非抽象方法。

2.final:最終

修飾的類為終止類,不能有子類。修飾變量為終止變量,只可賦值一次。修飾方法為終止方法,不能在子類中更改。如Socket、ServerSocket等都是final類,防止黑客派生子類進行破壞。同時,final與abstract是相互矛盾的。

3.static:靜態

靜態成員無需通過對象調用,可以直接通過類名直接調用。

public

class

RectArea//輸出6

12

{

public

static

void

main(String[]

args)

{

System.out.println(area(2,3));

System.out.println(area(3,4));

}

static

void

area(int

a,int

b)

{

return

a*b;

}

}

4.native

用native修飾的為本地方法。它修飾的方法在程序外部使用其他編程語言編寫。(這個步驟比較多,所以就木有繼續研究了)

5.synchronized

修飾的方法為同步方法。

java中修飾符有哪些

java的修飾符有:權限修飾符:public、protected、default、private

修飾符:abstract、static、final

public 使用對象:最廣,類、接口、變量、方法

protected使用對象:變量、方法 注意:不能修飾類(外部類)

default 使用對象:類、接口、變量、方法。(即缺省,什麼也不寫)

private 使用對象:變量、方法 注意:不能修飾類(外部類)

abstract使用對象:類、接口、方法

static 使用對象:類、變量、方法、初始化函數(注意:修飾類時只能修飾 內部類 )

final 使用對象:類、變量、方法

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

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

native:用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。

synchronized:修飾方法,多線程的支持

類分外部類和內部類,他們的訪問控制是相同的嗎

外部類是相對於內部類而言的,內部類是定義在類裏面的類。

外部類的修飾符有:

default(缺省,不寫):類定義時前面未加任何修飾符,表示同一個包中可見。

public:修飾類時表示該類能被項目中所有類可見

abstract:表示是抽象類

final:表示類不可以被繼承

scrictpf:(java關鍵字) 當對一個類或接口使用 strictfp 關鍵字時,該類中的所有代碼,包括嵌套類型中的初始設定值和代碼,都將嚴格地進行計算。嚴格約束意味着所有表達式的結果都必須是 IEEE 754 算法對操作數預期的結果,以單精度和雙精度格式表示

內部類又分:成員內部類、局部內部類、靜態內部類、匿名內部類

成員內部類:作為外部類的一個成員存在,與外部類的屬性、方法並列

局部內部類:定義在外部類的方法體裏面的類

靜態內部類:使用static修飾的內部類

匿名內部類:就是沒有名字的內部類

成員內部類修飾符有:

public:

protected:

private:private不能修飾外部類,

abstract:

final:

static:可以當做普通類使用,而不用先實例化一個外部類。(用他修飾後,就成了靜態內部類了)

strictfp:(java關鍵字) 即 strict float point (精確浮點)。(可修飾類、接口、方法)

擴展資料:

java中的類修飾符、成員變量修飾符、方法修飾符。

類修飾符:

public(訪問控制符),將一個類聲明為公共類,他可以被任何對象訪問,一個程序的主類必須是公共類。

abstract,將一個類聲明為抽象類,沒有實現的方法,需要子類提供方法實現。

final,將一個類生命為最終(即非繼承類),表示他不能被其他類繼承。

friendly,默認的修飾符,只有在相同包中的對象才能使用這樣的類。

成員變量修飾符:

public(公共訪問控制符),指定該變量為公共的,他可以被任何對象的方法訪問。

private(私有訪問控制符)指定該變量只允許自己的類的方法訪問,其他任何類(包括子類)中的方法均不能訪問。

protected(保護訪問控制符)指定該變量可以別被自己的類和子類訪問。在子類中可以覆蓋此變量。

friendly ,在同一個包中的類可以訪問,其他包中的類不能訪問。

final,最終修飾符,指定此變量的值不能變。

static(靜態修飾符)指定變量被所有對象共享,即所有實例都可以使用該變量。變量屬於這個類。

transient(過度修飾符)指定該變量是系統保留,暫無特別作用的臨時性變量。

volatile(易失修飾符)指定該變量可以同時被幾個線程控制和修改。

方法修飾符:

public(公共控制符)

private(私有控制符)指定此方法只能有自己類等方法訪問,其他的類不能訪問(包括子類)

protected(保護訪問控制符)指定該方法可以被它的類和子類進行訪問。

final,指定該方法不能被重載。

static,指定不需要實例化就可以激活的一個方法。

synchronize,同步修飾符,在多個線程中,該修飾符用於在運行前,對他所屬的方法加鎖,以防止其他線程的訪問,運行結束後解鎖。

native,本地修飾符。指定此方法的方法體是用其他語言在程序外部編寫的。

參考資料:百度百科-修飾符

JAVA中內部類可以有幾種幾種訪問修飾符?

一個標準類可以有四種訪問修飾符:public,final,abstract和package(就是什麼也不寫) ,內部類在此基礎上還可以有private 和 protected

(有的資料說只有private ,可我寫了一個內部類,用protected修飾,沒什麼問題.)

java中有幾種修飾符?

java中的修飾符分為類修飾符,字段修飾符,方法修飾符。根據功能的不同,主要分為以下五種。

1、權限訪問修飾符

public,protected,default,private,這四種級別的修飾符都可以用來修飾類、方法和字段。

 

2、final修飾符

final的意思是不可變,他可以修飾類、字段、方法。修飾類後類不能被擴展(extends),也就是不能被繼承。修飾字段後字段的值不能被改變,因此如果有final修飾字段,應該對字段進行手動初始化。修飾方法後該方法不能被改變,也就是重寫。

3、abstract修飾符

abstract是抽象的意思,用來修飾類和方法,修飾類後,該類為抽象類,不能被實例化,必需進行擴展。修飾方法後,該方法為抽象方法必須被子類重寫(override)。

4、static修飾符

static用來修飾內部類,方法,字段。修飾內部類說明該內部類屬於外部類而不屬於外部類的某個實例。修飾字段說明該字段屬於類而不屬於類實例。修飾方法說明該方法屬於類而不屬於類實例

5、volatile修飾符

易失 ( 共享 ) 域修飾符 volatile 是用來說明這個成員變量可能被幾個線程所控制和修改。也就是說在程序運行過程中,這個成員變量有可能被其它的程序影響或改變它的取值。

擴展資料:

修飾符的特點:

static是一個修飾符,用於修飾成員(成員變量和成員函數)

靜態成員隨着類的加載而加載。靜態成員優先於對象存在。靜態成員被所有對象所共享靜態成員多了一個中調用方式,可以被類名直接調用。

使用的注意事項:

靜態方法只能訪問靜態成員, 非靜態方法既可以訪問靜態又可以訪問非靜態。靜態方法中不可以定義this,super關鍵字。因為this代表是對象。而靜態存在時,有可能沒有對象。所以靜態方法運行時,this是沒有任何對象代表的。

簡單說,先進內存的數據不可以訪問後進內存的數據,可是後進內存數據可以訪問先進內存的數據。主函數是靜態的。

java中各種訪問修飾符都有什麼區別 public什麼的

修飾符 當前類 同 包 子 類 其他包

public √ √ √ √

protected √ √ √ ×

default √ √ × ×

private √ × × ×

類的成員不寫訪問修飾時默認為default。默認對於同一個包中的其他類相當於公開(public),對於不是同一個包中的其他類相當於私有(private)。受保護(protected)對子類相當於公開,對不是同一包中的沒有父子關係的類相當於私有。Java中,外部類的修飾符只能是public或默認,類的成員(包括內部類)的修飾符可以是以上四種。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/245988.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:12
下一篇 2024-12-12 13:12

相關推薦

  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • @scope("prototype")的作用及應用

    本文將從以下幾個方面進行詳細闡述@scope(“prototype”)在編程開發中的作用和應用。 一、代碼復用 在開發中,往往會有很多地方需要復用同一個類的…

    編程 2025-04-28
  • Python中import sys的作用

    Python是一種非常強大的編程語言,它的標準庫提供了許多有用的模塊和函數。sys模塊是Python標準庫中的一個重要模塊,用於與Python解釋器和操作系統進行交互。它允許開發者…

    編程 2025-04-28
  • Python配置環境變量的作用

    Python配置環境變量是為了讓計算機能夠更方便地找到Python語言及其相關工具的位置,使其可以在任意目錄下使用Python命令。當您安裝Python後,您需要進行環境變量設置,…

    編程 2025-04-28
  • Python的意義和作用

    Python是一種高級語言,它的簡潔易讀和豐富的庫使得它成為了廣泛使用的編程語言之一。Python可以完成諸如數據科學、機器學習、網絡編程等各種任務,因此被很多開發人員和研究人員視…

    編程 2025-04-27
  • Python列表索引範圍用法介紹

    本文將從多個方面詳細闡述Python列表索引範圍的相關內容,包括索引範圍的表示方法、切片操作、複製列表、列表反轉、列表排序等。希望可以幫助讀者更好地理解和使用Python列表。 一…

    編程 2025-04-27
  • Python定義空列表及其作用

    Python是一種廣泛使用的強類型解釋型編程語言。在Python中,我們可以使用列表來存儲一系列不同類型的元素。列表是Python內置的一種高效數據結構,可以在其中存儲任意數量的元…

    編程 2025-04-27
  • 理解Python __init__的作用

    對__init__的作用進行詳細的闡述,並給出對應代碼示例。 一、對象實例化與構造函數 在面向對象編程中,我們經常需要創建對象,而對象的創建和初始化需要先定義一個類,然後通過在類中…

    編程 2025-04-27
  • 從多個角度詳細解析endup函數的作用

    一、代碼示例 /** * 將字符串末尾的n個字符移到字符串開頭 * @param {string} str – 需要進行字符處理的字符串 * @param {number} n -…

    編程 2025-04-25

發表回復

登錄後才能評論