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

Java基礎分享,一篇文章說透Java訪問修飾符

開發 后端
java中有四種訪問修飾符:private、default(無相應保留字)、protected和public。

1. 前言

Java中有四種訪問修飾符:private、default(無相應保留字)、protected和public。

今天,就讓我們來了解一下這四種訪問修飾符合元素的訪問限制吧!

從強到弱依次是private、default、protected和public。

2. 訪問修飾符介紹

java中有四種訪問修飾符:private、default(無相應保留字)、protected和public。其含義如下:

  • private:如果一個元素聲明為private,則元素的訪問權限僅限于當前類。
  • default:如果一個元素聲明為default,則元素的訪問權限僅限于當前包。
  • protected:如果一個元素聲明為protected,則有當前包下的元素或其子類可以訪問該元素。
  • public:如果一個元素聲明為public,則所有位置都可以調用元素(無論是在同一類中還是在同一包內)。

四種訪問修飾符合元素的訪問限制,從強到弱依次是private、default、protected、public。如果類A和類B的訪問修飾符是public,當類A中的一個方法想要調用類B中的一個方法時,可以根據下圖確定可訪問性: 

 

3. 以下示例說明四種修飾符對元素的訪問限制

3.1 private

類B中的方法要調用同包下A的private方法,編譯時會報錯: 

  1. package p1 
  2.  
  3. class A { 
  4.     private String getName(){ 
  5.         return "jim"
  6.     } 
  7.  
  8.     public void display(){ 
  9.         System.out.println(this.getName()); 
  10.     } 
  11.  
  12. package p1 
  13.  
  14. class B{ 
  15.     public void display(){ 
  16.         A a = new A(); 
  17.         System.out.println(a.getName()); 
  18.     } 

3.2 default

類C中的方法要調用不同包下類A的default方法,編譯時會報錯: 

  1. package p1 
  2.  
  3. public class A { 
  4.     String getName(){ 
  5.         return "jim"
  6.     } 
  7.  
  8. package p1 
  9.  
  10. public class B{ 
  11.     public void display(){ 
  12.         A a = new A(); 
  13.         System.out.println(a.getName()); 
  14.     } 
  15.  
  16. package p2 
  17.  
  18. public class C { 
  19.     public void display(){ 
  20.         A a = new A(); 
  21.         System.out.println(a.getName()); 
  22.     } 

3.3 protected

類C中的方法要調用類A的protected方法,編譯時會報錯: 

  1. package p1 
  2.  
  3. public class A { 
  4.     protected String getName(){ 
  5.         return "jim"
  6.     } 
  7.  
  8. package p2 
  9.  
  10. public class B extends A { 
  11.     public void display(){ 
  12.         System.out.println(super.getName()); 
  13.     } 
  14.  
  15. package p2 
  16.  
  17. public class C { 
  18.     public void display(){ 
  19.         A a = new A(); 
  20.         System.out.println(a.getName()); 
  21.     } 

3.4 public

無訪問限制。 

  1. package p1 
  2.  
  3. public class A { 
  4.     public String getName(){ 
  5.         return "jim"
  6.     } 
  7.  
  8. package p2 
  9.  
  10. public class B { 
  11.     public void display(){ 
  12.         A a = new A(); 
  13.         System.out.println(a.getName()); 
  14.     } 

4. 當子類隱藏(hide)或覆蓋(override)父類方法時,對訪問修飾符的限制

當子類中的方法隱藏/覆蓋父類中的方法時,與父類中相應方法的訪問修飾符相比,子類方法的訪問修飾符的訪問限制應相同或更弱。這是面向對象的基本原則,即子類應該比父類更完美,因此子類的可訪問性應該更強。

舉例如下: 

  1. class Father { 
  2.  
  3.     protected static void staticMethod() { 
  4.  
  5.     } 
  6.  
  7.     public void method() { 
  8.  
  9.     } 
  10.  
  11. class Son extends Father { 
  12.  
  13.     static void staticMethod() { 
  14.  
  15.     } 
  16.  
  17.     protected void method() { 
  18.  
  19.     } 

5. 元素支持的訪問修飾符。

每個元素(如類別、接口、注釋、結構函數、成員變量、成員方法等)都會顯示或隱示訪問修改符,但并不是每個元素都支持四個訪問修改符: 

  • 對于直接定義在包中的元素,如類、枚舉(本質是繼承Enum的類)、接口和注釋(本質是繼承Anotation的接口),他們支持的訪問修飾符是public和default。
  • 對于定義在類內的元素,如構造函數、成員變量、成員方法、內部類別、內部接口等,他們支持所有四種訪問修改符。
  • 對于界面中定義的方法,只支持public(如果不指定,則默認public);對于界面中定義的變量,只支持public static final(如果不指定,則默認public static final)。補充說明:界面支持三種方法,即無消息體的方法(默認修飾符為public abstract),通過default保留字定義(默認修飾符為public),通過static保留字定義(默認修飾符為public)。
責任編輯:華軒 來源: 今日頭條
相關推薦

2021-07-01 10:01:16

JavaLinkedList集合

2022-11-04 10:45:11

Java基礎CPU

2023-05-08 08:21:15

JavaNIO編程

2021-05-31 08:59:57

Java數據庫訪問JDBC

2009-06-12 13:37:47

訪問權限修飾符Java教程

2017-09-04 13:44:00

Java

2020-10-09 08:15:11

JsBridge

2020-12-29 09:05:48

基礎DjangoORM

2021-03-04 08:34:54

Java交換變量字符串基礎

2009-06-19 10:51:39

Scalapackage訪問修飾符

2021-02-24 10:14:04

PythonClassPython基礎

2020-12-21 08:09:55

Java數據方法

2022-08-09 08:00:55

AWS安全API

2021-04-14 10:00:44

Python運算符重載

2025-01-09 11:17:19

2009-08-24 16:49:39

C#修飾符

2017-09-05 08:52:37

Git程序員命令

2017-06-08 22:41:34

框架標簽

2022-02-21 09:44:45

Git開源分布式

2019-04-17 15:16:00

Sparkshuffle算法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合 | 99pao成人国产永久免费视频 | 永久网站 | 蜜桃臀av一区二区三区 | 午夜在线观看视频 | 99一区二区 | 中文成人在线 | 久久久www成人免费无遮挡大片 | 亚洲第一av网站 | 亚洲一区二区精品视频 | 91在线视频 | 天天射天天干 | 国产一区二区在线免费观看 | a亚洲精品| 国产精品久久一区二区三区 | av影音资源 | 天天爽夜夜操 | 亚洲精品在线视频 | 在线91| 四虎成人免费电影 | 中文字幕动漫成人 | 欧美色欧美亚洲另类七区 | 国产日批 | 91精品国产综合久久久久久漫画 | 夜夜草导航 | 午夜欧美 | 91在线免费视频 | av首页在线 | 毛片一级片| 免费观看的av | 天天成人综合网 | 黄色免费网站在线看 | 黄色一级片视频 | 欧美黄色片| 欧美一a一片一级一片 | 鸡毛片| 中文字幕日韩av | 在线欧美亚洲 | 免费在线观看av网站 | 国产精品久久久久久av公交车 | 美女艹b |