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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

1.15 Java访问控制修饰符(public、 private、protected 和 friendly)

發布時間:2025/3/20 java 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.15 Java访问控制修饰符(public、 private、protected 和 friendly) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Java 語言中提供了多個作用域修飾符,其中常用的有 public、private、protected、final、abstract、static、transient 和 volatile,這些修飾符有類修飾符、變量修飾符和方法修飾符。本文將詳細介紹訪問控制修飾符。

信息隱藏是 OOP 最重要的功能之一,也是使用訪問修飾符的原因。在編寫程序時,有些核心數據往往不希望被用戶調用,需要控制這些數據的訪問。

對類成員訪問的限制是面向對象程序設計的一個基礎,這有利于防止對象的誤用。只允許通過一系列定義完善的方法來訪問私有數據,就可以(通過執行范圍檢查)防止數據賦予不正當的值。例如,類以外的代碼不可能直接向一個私有成員賦值。同時,還可以精確地控制如何以及何時使用對象中的數據。

當正確實現對類成員的方法控制后,類就可以創建一個可用的“黑箱”,其內部動作不會被打開而任意篡改。

通過使用訪問控制修飾符來限制對對象私有屬性的訪問,可以獲得 3 個重要的好處。

  • 防止對封裝數據的未授權訪問。
  • 有助于保證數據完整性。
  • 當類的私有實現細節必須改變時,可以限制發生在整個應用程序中的“連鎖反應”。

訪問控制符是一組限定類、屬性或方法是否可以被程序里的其他部分訪問和調用的修飾符。類的訪問控制符只能是空或者 public,方法和屬性的訪問控制符有 4 個,分別是 public、 private、protected 和 friendly,其中 friendly 是一種沒有定義專門的訪問控制符的默認情況。訪問控制修飾符的權限如表 1 所示。



訪問控制在面向對象技術中處于很重要的地位,合理地使用訪問控制符,可以通過降低類和類之間的耦合性(關聯性)來降低整個項目的復雜度,也便于整個項目的開發和維護。

在 Java 語言中,訪問控制修飾符有 4 種。

1. private私有

用 private 修飾的類成員,只能被該類自身的方法訪問和修改,而不能被任何其他類(包括該類的子類)訪問和引用。因此,private 修飾符具有最高的保護級別。例如,設 PhoneCard 是電話卡類,電話卡都有密碼,因此該類有一個密碼域,可以把該類的密碼域聲明為私有成員。

  • 本類中:直接通過成員變量名訪問
  • 不同類中:不能直接通過兩種方式中的任意一種訪問,只能通過get()和set()方法

例子:

public class test {private String name; //成員屬性/** 自動生成get()/set()方法的快捷鍵* shift+alt+s* *///獲取namepublic String getName(){return name;}//設置namepublic void setName(String name){this.name=name;}public static void main(String[] args) {test Test=new test();Test.setName("張三");System.out.println(Test.getName());} }

2. friendly(package(包訪問權限)

如果一個類沒有訪問控制符,說明它具有默認的訪問控制特性。這種默認的訪問控制權規定,該類只能被同一個包中的類訪問和引用,而不能被其他包中的類使用,即使其他包中有該類的子類。這種訪問特性又稱為包訪問性(package private)。

同樣,類內的成員如果沒有訪問控制符,也說明它們具有包訪問性,或稱為友元(friend)。定義在同一個文件夾中的所有類屬于一個包,所以前面的程序要把用戶自定義的類放在同一個文件夾中(Java 項目默認的包),以便不加修飾符也能運行。

3. protected(子類訪問權限)

用保護訪問控制符 protected 修飾的類成員可以被三種類所訪問:該類自身、與它在同一個包中的其他類以及在其他包中的該類的子類。使用 protected 修飾符的主要作用,是允許其他包中它的子類來訪問父類的特定屬性和方法,否則可以使用默認訪問控制符。

如果一個成員(包括成員變量、方法和構造器等)使用protected訪問控制符修飾,那么這個成員既可以被同一個包中的其他類訪問,也可以被不同包中的子類訪問。

在通常情況下,如果使用protected來修飾一個方法,通常是希望其子類來重寫這個方法。

本類中:直接通過成員變量名訪問
同包的子類中:直接通過成員變量名訪問
同包的其他類:可以通過第二種方式訪問
不同包的子類:直接通過成員變量名訪問
不同包的類中:不能直接通過兩種方式中的任意一種訪問

4. public (公共訪問權限)

當一個類被聲明為 public 時,它就具有了被其他包中的類訪問的可能性,只要包中的其他類在程序中使用 import 語句引入 public 類,就可以訪問和引用這個類。

類中被設定為 public 的方法是這個類對外的接口部分,避免了程序的其他部分直接去操作類內的數據,實際就是數據封裝思想的體現。每個 Java 程序的主類都必須是 public 類,也是基于相同的原因。

例 1
下面來創建一個示例,演示 Java 中訪問控制修飾符的使用。

(1) 新建 Student.java 文件,在該文件中定義不同修飾符的屬性和方法,代碼如下:

class Student {// 姓名,其訪問權限為默認(friendly)String name;// 定義私有變量,身份證號碼private String idNumber;// 定義受保護變量,學號protected String no;// 定義共有變量,郵箱public String email;// 定義共有方法,顯示學生信息public String info() {return"姓名:"+name+",身份證號碼:"+idNumber+",學號:"+no+",郵箱:"+email;} }

(2) 新建 StudentTest.java 文件,在該文件中定義 main() 方法,訪問 Student 類中的屬性并賦值,打印出用戶的信息。代碼如下:

public class StudentTest {public static void main(String[] args) {// 創建Student類對象Student stu = new Student();// 向Student類對象中的屬性賦值stu.name = "zhht";// stu.idNumber="043765290763137806";// 這是不允許的。提示stu.idNumber是不可見的,必須注釋掉才可運行stu.no = "20lil01637";stu.email = "zhht@qq.com";System.out.println(stu.info());} }

在 StudentTest 類中,“stu.idNumber="043765290763137806";”代碼行將提示 “The field User.password is not visible”錯誤信息。將該代碼行注釋掉再運行 StudentTest.java 文件,輸出的內容如下:

姓名:zhht,身份證號碼:null,學號:20lil01637,郵箱:zhht@qq.com

在源文件中創建了兩個類,分別為主類 StudentTest 和輔助類 Student,二者在同一個包中。

在輔助類 Student 中,創建了 4 個屬性,其訪問控制分別為默認的、私有的、受保護的和共有的,除了私有控制符修飾的變量之外,其他的都可以被主類訪問,同時創建了一個共有的方法——info(),用于打印用戶信息。

在主類 StudentTest 中,創建類 Student 的實例化對象 stu,通過對象 stu 來訪問該對象中的屬性并賦值,因為 idNumber 屬性的修飾符為 private(私有的),因此,在 StudentTest 類中的 main() 方法中無法訪問該屬性。

從上面的例子中可以看出,范圍控制修飾符成功地限制了訪問者訪問不同修飾符的屬性(成員變量),從而實現了數據的隱藏。

總結

以上是生活随笔為你收集整理的1.15 Java访问控制修饰符(public、 private、protected 和 friendly)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品中文字幕在线观看 | 三级av免费 | 亚洲激情一区二区三区 | 国产精品一区二区精品 | 亚洲视频一二三区 | 欧美一区2区| 91精品国产欧美一区二区 | 视频二区在线 | 日韩黄色高清视频 | 精品www久久久久久奶水 | 欧美老熟妇乱xxxxx | 亚洲精品1区2区 | 香蕉视频久久久 | 久久乐国产精品 | 天天久久 | 成人深夜视频 | 草莓视频一区二区三区 | 天天干在线观看 | 人人干在线 | 美女调教视频 | 国产福利精品一区 | 免费日韩在线 | 中文字幕亚洲一区二区三区 | 38在线视频| 国产伦精品一区二区三区高清版禁 | 中文字幕无码日韩专区免费 | 一区二区三区在线不卡 | 人与动物黄色片 | 啪啪综合 | 精品一区二区三区免费毛片爱 | 麻豆av免费看 | 国产综合无码一区二区色蜜蜜 | 性爱一级视频 | 国产手机看片 | 能在线观看的av网站 | 97caoporn| 久久机热这里只有精品 | 懂色av | aaa一级片 | 亚洲一区二区三区日韩 | 色噜噜一区二区三区 | 成人免费视频观看视频 | 日韩精品久久一区二区 | 色片网站在线观看 | 九草在线观看 | 成人一级片 | 爱情岛论坛自拍亚洲品质极速最新章 | 天天躁夜夜躁 | 亚洲AV无码国产精品国产剧情 | 一本一道无码中文字幕精品热 | 黄色在线免费看 | 欧美丰满老妇 | 色欲久久久天天天综合网 | 午夜男人av | 精彩视频一区二区 | 中文字幕制服丝袜 | 国产麻豆天美果冻无码视频 | 欧美3p在线观看 | 欧美少妇18p | www久久久久| 男女啊啊啊 | 韩国av免费观看 | 亚洲国产影视 | 日本成人在线免费 | 精品麻豆av| 日韩精品一区二区不卡 | 欧美一区视频在线 | 理论片大全免费理伦片 | 九九久久国产视频 | 在线日韩一区 | 白俄罗斯毛片 | 精品在线免费视频 | 国产精品久久不卡 | 日本一区二区精品视频 | 午夜精品久久久久久久99热黄桃 | 国产成年妇视频 | 婷婷久久五月天 | 在线观看国产一区二区三区 | 五月婷婷狠狠爱 | 久久精品国产亚洲av久 | 亚洲经典在线观看 | 人人艹人人 | 亚洲综合福利 | 香蕉国产在线观看 | 天堂俺去俺来也www 欧美大片在线播放 | 成人午夜免费网站 | 91视频影院 | 中文字幕在线播放第一页 | 免费小视频在线观看 | 色一情一乱一乱一区91av | 色综合久久88 | 91捆绑91紧缚调教91 | 娇妻被肉到高潮流白浆 | 91高清视频在线 | 91看片在线看 | 欧洲亚洲一区二区三区 | 爽妇网国产精品 | 日韩欧美在线观看一区二区三区 | 精品无码一级毛片免费 |