JAVA基礎_修飾符

引言:Java的修飾符根據修飾的對象不同,分為類修飾符、方法修飾符、變量修飾符,其中每種修飾符又分為訪問控制修飾符和非訪問控制修飾符。
訪問控制存在的原因:
a、讓客戶端程序員無法觸及他們不應該觸及的部分
b、允許庫設計者可以改變類內部的工作方式而不用擔心影響到客戶端程序員

一、訪問控制修飾符
Java中,可以使用訪問控制符來保護對類、變量、方法和構造方法的訪問。
Java 支持 4 種不同的訪問權限:
default (即缺省,什么也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
public : 對所有類可見。使用對象:類、接口、變量、方法
protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。

1. 類修飾符
訪問修飾符:公共類修飾符public
非訪問控制符:抽象類修飾符 abstract 、最終類修飾符 final
(1)公共類修飾符 public : Java 語言中類的訪問控制符只有 public 即公共的。每個 Java 程序的有且只有一個類是 public,它被稱
為主類 ,其他外部類無訪問控制修飾符,具有包訪問性。注意:一個類的內部類可以被其他訪問控制修飾符protected、default、
private修飾,相當于類的成員。
???? (2)抽象類修飾符 abstract :用 abstract 修飾符修飾的類,被稱為抽象類。
??? ?(3)最終類修飾符 final :當一個類不能被繼承時可用修飾符 final修飾為最終類。被定義為 final 的類通常是一些有固定作用、用來完成某
種標準功能的類。
???? (4)類缺省訪問控制符:如果一個類沒有訪問控制符,說明它具有缺省的訪問控制符特性。此時,這個類只能被同一個包中的類訪問或引用。
這一訪問特性又稱為包訪問性。

2.方法修飾符
訪問控制修飾符:公共訪問控制符public、保護訪問控制符protected、缺省默認default、私有訪問控制符private
非訪問控制符:抽象方法控制符abstract 、靜態方法控制符static 、最終方法控制符final 、本地方法控制符native 、
同步方法控制符synchronized
? (1)抽象方法控制符 abstract :用修飾符 abstract 修飾的方法稱為抽象方法。抽象方法僅有方法頭,沒有方法體和操作實現。
????? (2)靜態方法控制符 static :用修飾符 static 修飾的方法稱為靜態方法。靜態方法是屬于整個類的類方法;而不使用static 修飾、限定
的方法是屬于某個具體類對象的方法。 由于 static方法是屬于整個類的,所以它不能操縱和處理屬于某個對象的成員變量,而只能處理
屬于整個類的成員變量,即 static 方法只能處理 static的域。
????? (3)最終方法控制符 final :用修飾符 final修飾的方法稱為最終方法。最終方法是功能和內部語句不能更改的方法,即最終方法不能重寫覆
蓋。final固定了方法所具有的功能和操作,防止當前類的子類對父類關鍵方法的錯誤定義,保證了程序的安全性和正確性。所有被
private 修飾符限定為私有的方法,以及所有包含在 final 類 ( 最終類) 中的方法,都被認為是最終方法。
????? (4)本地方法控制符 native :用修飾符 native 修飾的方法稱為本地方法。為了提高程序的運行速度,需要用其它的高級語言書寫程序的
方法體,那么該方法可定義為本地方法用修飾符 native 來修飾。
????? (5)同步方法控制符 synchronized :該修飾符主要用于多線程程序中的協調和同步。
3.變量修飾符
訪問控制符:公共訪問控制符public 、保護訪問控制符protected 、缺省默認訪問控制符default、私有訪問控制符private
非訪問控制符:靜態域修飾符static 、最終域修飾符 final 、易失 ( 共享 ) 域修飾符volatile 、暫時性域修飾符transient
(1)公共訪問控制符 public :用 public 修飾的域稱為公共域。由于 public 修飾符會降低運行的安全性和數據的封裝性,所以一般應減
少 public 域的使用。
????? (2)私有訪問控制符 private : 用 private 修飾的成員變量 ( 域 ) 只能被該類自身所訪問,而不能被任何其它類 (?包括子類?) 所引用。
????? (3)保護訪問控制符 protected :用 protected 修飾的成員變量可以被三種類所引用:①該類自身;②同一個包中的其它類;③其它包中
的子類。使用修飾符 protected 的主要作用是允許其它包中的子類來訪問父類的特定屬性。
????? (4) 缺省默認修飾符 :沒有訪問控制修飾符或用修飾符 default修飾的成員變量可以被該類本身或同一包中的其他類訪問。
????? (5)靜態域修飾符 static :用 static修飾的成員變量僅屬于類的變量,而不屬于任何一個具體的對象,靜態成員變量的值是保存在類的內
存區域的公共存儲單元,而不是保存在某一個對象的內存區間。該類的任一對象訪問它時取到的都是相同的數據;該類的任一對象修改
它時 , 也都是對同一個內存單元進行操作。
????? (6)最終域修飾符 final :最終域修飾符 final 是用來定義常量的。一個類的域 ( 成員變量 ) 如果被修飾符 final 說明,則它的取值在程序
的整個執行過程中都是不變的。
????? (7)易失 ( 共享 ) 域修飾符 volatile :易失 ( 共享 ) 域修飾符 volatile是用來說明這個成員變量可能被幾個線程所控制和修改。也就是說
在程序運行過程中,這個成員變量有可能被其它的程序影響或改變它的取值。通常 volatile 用來修飾接受外部輸入的域。
????? (8)暫時性域修飾符 transient :暫時性域修飾符 transient 用來定義一個暫時性變量。其特點是:用修飾符transient 限定的暫時性變
量,將指定 Java虛擬機認定該暫時性變量不屬于永久狀態,以實現不同對象的存檔功能。否則,類中所有變量都是對象的永久狀態的一
部分,存儲對象時必須同時保存這些變量。

原文:https://blog.csdn.net/u012723673/article/details/80613557

?

轉載于:https://www.cnblogs.com/Bokeyan/p/10983604.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393376.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393376.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393376.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

etcd與mysql_etcd數據庫備份與還原

1. 備份etcd1.1 手動備份數據etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir 備份目錄1.2 腳本備份數據使用etcd自帶命令etcdctl進行etc備份,腳本如下:#!/bin/bashdate_timedate %Y%m%detcdctl backup --data-dir /var/lib/etcd/de…

iOS https雙向配置

只需要服務器驗證手機端的童鞋可以點開以下鏈接【ios 單向配置https】 http://www.cnblogs.com/OC888/p/6560602.html 兜兜轉轉弄了一個星期,網上的大多數demo都下來過一遍了,各種偏方都試了,終于配置好了雙向配置,網上大多數標題…

創業-程序員獨自5大思維障礙

程序員是最容易創業的,或者說是創業成本最低的職業。只要有一臺電腦和投入自己的時間,就可以寫出暢銷天下的軟件,這是每個程序員的夢想。更何況世界首富常年以來就是程序員出身的比爾蓋茨,這也刺激了更多的程序員走上創業之路。 …

leetcode1144. 遞減元素使數組呈鋸齒狀

給你一個整數數組 nums&#xff0c;每次 操作 會從中選擇一個元素并 將該元素的值減少 1。 如果符合下列情況之一&#xff0c;則數組 A 就是 鋸齒數組&#xff1a; 每個偶數索引對應的元素都大于相鄰的元素&#xff0c;即 A[0] > A[1] < A[2] > A[3] < A[4] >…

typescript_清潔架構的TypeScript刺

typescriptby Warren Bell沃倫貝爾(Warren Bell) 清潔架構的TypeScript刺 (A TypeScript Stab at Clean Architecture) 剝洋蔥皮的方法不止一種。 (More than one way to skin an onion.) 清潔建筑 (Clean Architecture) There are many videos and articles explaining clean…

星辰小隊針對于軟件“星遇”的第二次10天沖刺——第10天

日期&#xff1a;2019.6.6 博客期&#xff1a;099 星期四 呃~確實有一部分的功能來不及實現了&#xff0c;針對目前已經實現的功能開始整合&#xff0c;用戶界面進行美化&#xff0c;把多于沒用的界面和代碼類刪除掉&#xff0c;制作本軟件的敘述性文件和相關文檔&#xff0c;根…

mybatis的select、insert、update、delete語句

一、select <!-- 查詢學生&#xff0c;根據id --> <select id"getStudent" parameterType"String" resultMap"studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STUDENT_BIRTHDAY, ST.CLASS_I…

appium java簡單實例_Appium創建一個Note的實例

近來通過Appium&#xff0c;Robotium等幾個框架去了解移動平臺自動化測試。Appium官方實例是使用ContactManager.apk&#xff0c;而Robotium使用的是SDK自帶的Notepad.apk&#xff0c;為了方便比較&#xff0c;在了解Appium的同時把實例修改成跟Robotium一致的Notepad.apk并記錄…

Lync Server 2013無法共享PPT故障排錯處理

前段時間幫助朋友看了一個關于Lync Server 2013無法共享PPT的問題&#xff0c;共享PPT時報如下錯誤&#xff1a; 日志截圖如下&#xff1a; 原因如下前端服務器未關聯Ofice web Application服務器&#xff0c;關聯即可&#xff0c;如下&#xff1a; 關聯完成后&#xff0c;如下…

leetcode733. 圖像渲染(bfs)

有一幅以二維整數數組表示的圖畫&#xff0c;每一個整數表示該圖畫的像素值大小&#xff0c;數值在 0 到 65535 之間。 給你一個坐標 (sr, sc) 表示圖像渲染開始的像素值&#xff08;行 &#xff0c;列&#xff09;和一個新的顏色值 newColor&#xff0c;讓你重新上色這幅圖像…

chrome擴展程序_如何創建Chrome擴展程序

chrome擴展程序by Erika Tan譚詠麟 如何創建Chrome擴展程序 (How to create a Chrome Extension) In this article, I will be teaching you how to make a Chrome Extension of your own. I’m basing it off of lessons learned while creating TalkToMe, a Chrome Extensio…

對‘初學者應該選擇哪種編程語言’的回答——計算機達人成長之路(38)

7、PASCAL語言&#xff08;一&#xff09;一門通&#xff0c;門門通 在計算機學習問題排行版上&#xff0c;有一個問題絕對是穩居榜首&#xff0c;每次提出都能在各大論壇掀起一股頂帖風暴&#xff0c;而各大網站的每個網絡大牛&#xff0c;都會收到無數學院小弟發來弱弱的提問…

leetcode110. 平衡二叉樹(遞歸)

給定一個二叉樹&#xff0c;判斷它是否是高度平衡的二叉樹。本題中&#xff0c;一棵高度平衡二叉樹定義為&#xff1a;一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1:給定二叉樹 [3,9,20,null,null,15,7]3/ \9 20/ \15 7 返回 true 。代碼 /*** Defi…

spring配置文件注解方式引入的兩種方式

一、#{beanID[propertiesName]}方式 <bean id"propertyConfigurer" class"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name"fileEncoding" value"utf-8" /><property name&…

vsc 搜索特定代碼_特定問題的通用解決方案:何時編寫代碼以及何時編寫代碼...

vsc 搜索特定代碼by Rina Artstain通過麗娜阿斯特斯坦 特定問題的通用解決方案&#xff1a;何時編寫代碼以及何時編寫代碼 (Generic solutions to specific problems: when to write some code and when to just do it) There is a traditional story that tells of a rabbi w…

java手動編譯jar包_Maven 手動添加第三方依賴包及編譯打包和java命令行編譯JAVA文件并使用jar命令打包...

一&#xff0c;實例:新建了一個Maven項目,在eclipse中通過 build path –> configure path….將依賴包添加到工程中后&#xff0c;eclipse不報錯了。但是用Maven命令 mvn clean compile 時出錯如下&#xff1a;原因是在eclipse中添加了 exteneral jar后&#xff0c;還需要在…

SQL like

確定給定的字符串是否與指定的模式匹配。模式可以包含常規字符和通配符字符。模式匹配過程中&#xff0c;常規字符必須與字符串中指定的字符完全匹配。然而&#xff0c;可使用字符串的任意片段匹配通配符。與使用 和 ! 字符串比較運算符相比&#xff0c;使用通配符可使 LIKE 運…

計劃備份mysql數據庫

1:mysql是我們使用最多的數據庫&#xff0c;如果在日常中正確的對mysql數據進行備份&#xff0c;下面我們就來做這事&#xff0c;通過腳本來實現##########################################################################################################################…

leetcode1333. 餐廳過濾器

給你一個餐館信息數組 restaurants&#xff0c;其中 restaurants[i] [idi, ratingi, veganFriendlyi, pricei, distancei]。你必須使用以下三個過濾器來過濾這些餐館信息。 其中素食者友好過濾器 veganFriendly 的值可以為 true 或者 false&#xff0c;如果為 true 就意味著你…

3.27下午

轉載于:https://www.cnblogs.com/bgd140201228/p/6628194.html