Java訪問權限修飾符總結-Java基礎教程系列-11

2020-12-27 你的老師父

大家好,我是你的老師父,這次講講剩下的兩個權限修飾符一個是public,其實之前講過,另外一個是什麼都不寫那其實是default或者稱作friendly修飾符。

public:

這個修飾符權限完全公開,所有類和包都可以訪問的到

作用:一般用作公開的方法、常量、靜態變量、靜態常量等地方

注意:屬性上很少用public,為了保證安全,一般屬性都是要封裝private的。

那default或者說friendly

這個是包內可以訪問,僅僅是包內所有類都可以訪問

區別於protected的是:

protected是

1、包內所有類可以訪問

2、包外的子類可以訪問

默認訪問權限是:

1、包內可以訪問、同一個包內子類也可以訪問!

2、包外任何類都是不能訪問的!

比如下邊的例子:

大家看到TeaCup繼承了Cup類,Cup的deep屬性是用的protected的訪問權限,雖然兩個類在不同包中,但是Cup的派生類也TeaCup是可以直接使用deep這個屬性的。

那再看下邊這個例子和上邊例子目錄結構一致,唯一不同的是屬性的訪問權限是默認的:

這個例子中Desktop中所有屬性都是默認訪問權限,也就是包訪問權限

StudentDesktop和Desktop分別在兩個包中

即使StudentDesktop是Desktop的派生類,那StudentDesktop也是無法訪問屬性的。

那默認訪問權限在同一個包中的子類呢?咱們驗證下,把StudentDesktop移動到test01包中(滑鼠拽過去就可以)

那大家看,兩個在相同目錄了,並且是父子關係,那屬性是默認的訪問權限,這個屬性在子類中是可以訪問的!

大家自己試試在同一個目錄下,屬性默認的訪問權限在非子類的類中是否可以訪問?(其實是可以訪問的)

那默認訪問權限大家應該清楚了。

到此為止private、protected、default和public這四種訪問權限的方式大家都學會了,

我給大家都列舉一下private、protected、default和public這四種訪問權限的權限列表吧,看截圖:

現在四種訪問權限已經跟大家講完了,順帶講了面向對象三大特徵中的其中兩種。下一篇把面向對象的第三大特徵:多態跟大家講講,這個是一個難點,希望大家先找找資料看看。另外大家有時間回顧回顧這幾篇文章!

相關焦點

  • Java基礎教程:Java包和權限修飾符
    權限修飾符在Java中提供了四種訪問權限,使用不同的訪問權限修飾符修飾時,被修飾的內容會有不同的訪問權限,我們之前已經學習過了public 和 private,接下來我們研究一下protected和預設(default默認)修飾符的作用。
  • 通過「訪問修飾符」java想告訴我們什麼?
    在平時編寫代碼的時候我們一定會用到public、private這些「java訪問修飾符「,可是你知道java為什麼要設計這些「訪問修飾符」嗎?今天我們就一起來看看廢話少說,先看定義!01定義java有四個訪問修飾符public:被public修飾的成員可以被所有類訪問到protected:所修飾的成員會被位於同一包中所有類可以訪問到。
  • java修飾符
    Java 修飾符Java語言提供了很多修飾符,主要分為以下兩類:訪問修飾符非訪問修飾符修飾符用來定義類、方法或者變量,通常放在語句的最前端。我們通過下面的例子來說明:public class ClassName {// ...
  • 從頭再來:Java訪問權限控制
    Java訪問權限控制先來一個簡單的測試題:Java中的抽象類和接口可以設為private嗎?Java的訪問權限有四種,分別為private,默認的,protected和public。再解釋者四種權限之前,先看看包(package)的使用。Java中的包一個包可以把一組類組織在一起,放到一個相同的名字空間下。定義包用到的關鍵字package。
  • 一起學JAVA——修飾符
    java修飾符的作用就是對類或類成員進行修飾或限制。訪問修飾符訪問修飾符作用是控制類成員的可見度。 類的訪問控制符有兩種:public關鍵字修飾:可以被所有的類訪問預設為default:只能被同一包中的類訪問static(靜態修飾符)
  • 程式設計師的術與道:道——Java修飾符之非訪問控制修飾符
    Java提供了很多修飾符,主要分為訪問控制修飾符和非訪問控制修飾符。通常放在語句的最前端,用來定義類、方法、變量。下面介紹一下Java提供的非訪問控制修飾符。static 修飾符:修飾類方法和類變量。final 修飾符:修飾類、方法和變量修飾的變量為常量,是不可修改的,修飾的類不能被繼承,修飾的方法不能被繼承的類重寫。abstract 修飾符:創建抽象類和抽象方法。
  • Java訪問控制修飾符詳解(public、 private、protected 和 friendly)
    、transient 和 volatile,這些修飾符有類修飾符、變量修飾符和方法修飾符。在編寫程序時,有些核心數據往往不希望被用戶調用,需要控制這些數據的訪問。對類成員訪問的限制是面向對象程序設計的一個基礎,這有利於防止對象的誤用。只允許通過一系列定義完善的方法來訪問私有數據,就可以(通過執行範圍檢查)防止數據賦予不正當的值。例如,類以外的代碼不可能直接向一個私有成員賦值。同時,還可以精確地控制如何以及何時使用對象中的數據。
  • Java修飾符關鍵詞大全
    它們可分為兩組:1、訪問控制修飾符2、非訪問修飾符讓我們先來看看訪問控制修飾符,以及如何使用它們的一些代碼示例。修飾符說明public公共可見private類可見protected包和所有的子類可見那麼如何使用這三種訪問控制修飾符呢?請看下面兩個類。請忽略此處代碼的低效,因為這是教程。
  • 「002期」JavaSE面試題(二):基本數據類型與訪問修飾符
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇導讀大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,
  • Java面試總結之Java基礎
    在這篇文章裡就來為大家總結一下經常會被問到的Java基礎題。封裝表面上看就把描述一個對象的屬性和行為封裝成一個類,把業務邏輯封裝成方法,封裝的另一層含義在於通過修飾符控制類的訪問屬性(公有,私有等)。繼承主要是實現了代碼的復用,所有子類公用的行為和屬性可以抽取為一個父類,所有子類繼承了父類的屬性和行為,java中繼承是單一性的。
  • Java基礎知識——第一天
    包相當於電腦中的磁碟,用於管理規範程序,讓程序不會雜亂無章,方便程序查找管理,特別是程序很大時,包名一定是小寫的,這是java語言的規範2、第二條語句public class MyJavaApp,這是創建類的語句,public是Java的關鍵字,是java中的其中一個訪問權限修飾符,用於修飾類/
  • 「Java」基礎19:修飾符有哪些?
    二、權限修飾符public這個關鍵字太常見了,它就是一個權限修飾符。在Java語言裡面有四種權限修飾符。其實看字面意思也蠻好理解的:①public:公共的。可以修飾類,成員變量,成員方法,構造方法。若是沒有加權限修飾符,其訪問能力就是default權限。被默認權限修飾後,其只能被本類以及同包下的其他類訪問。不同包的子類都不行。
  • Java基礎知識總結(絕對經典)
    java中的函數的定義格式: 修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數1,…){ 執行語句; return private int age;//私有的訪問權限最低,只有在本類中的訪問有效。注意:私有僅僅是封裝的一種體現形式而已。
  • 程式設計師的術與道:道——Java入門,Java基礎知識
    3.Java修飾符Java修飾符主要為兩類:訪問控制符和非訪問控制符。訪問控制符: defualt:一般稱為「默認修飾符」或者「包修飾符」,通常都省略不寫,表示只能在同一個包裡面進行訪問。public:一般稱為「公共」,表示是公用的,是Java限制最寬的標識符,被public修飾的類、屬性、方法,都可以被跨跨類跨包進行訪問。 private:一般稱為「私有」,表示是私用的,是Java限制最窄的標識符,被其修飾的屬性以及方法只能被自己訪問,子類不行,跨包訪問就更不行。
  • JAVA繼承總結
    今天來講講JAVA繼承總結:       Java中的繼承作為Java面向對象三大特性之一,在知識點上而言,還是很多的,而且java的繼承與覆蓋基本是java筆試中常出的題,也比較繞。下面小編來介紹下JAVA繼承的相關知識點:       繼承在本職上是特殊一般的關係,即常說的is-a關係。
  • Java基礎教程:java反射機制教程
    這時候java語言在設計的時候為我們提供了一個機制,就是反射機制,他能夠很方便的去解決我們的問題。 二、深入分析java反射機制 1、獲取Class類 在java中萬事萬物皆對象,Useruser=newUser()一行代碼我們知道了user是User類的實例對象,通過Studentstu=newStudent()我們知道了
  • Java面向對象中的封裝和訪問控制符詳解
    封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。面向對象設計始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝可以讓程序更容易理解和維護,也加強了程序的安全性。封裝給對象賦予了「黑盒「特徵,這是提高重用性和安全性的關鍵。讓開發者關注結果而不用去關注每個細節。
  • 啟動一個沒有 main 函數的 java 程序
    但是如果你熟悉 SpringBoot 的啟動過程,你會知道,你看到的 main 函數並不是真正開始執行啟動的 main 函數,關於這點,我在之前 SpringBoot 系列-FatJar 啟動原理 這篇文章中有過說明;即使是通過 JarLaunch
  • Java反射獲取類和對象信息全解析
    >...parameterTypes):返回此class對象對應類的帶指定參數的構造器,與構造器的訪問權限無關Constructor<?>[] getDeclaredConstructors():返回此class對象對應類的所有構造器,與構造器的訪問權限無關獲取類成員方法Method getMethod(String name,Class<?
  • 深入理解Java虛擬機:類加載機制
    一、類的生命周期二、類加載時機必須對類進行"初始化"的情況:使用new關鍵字實例化對象的時候讀取或設置一個類型的靜態欄位(被final修飾、已在編譯期把結果放入常量池的靜態欄位除外)的時候。調用一個類型的靜態方法的時候使用java.lang.reflect包的方法對類型進行反射調用的時候。當初始化類的時候,發現其父類還沒有進行過初始化的時候。