【Java】一文彻底弄懂访问修饰符(public/protected/默认/private)--建议收藏

news2024/9/24 3:23:05

在这里插入图片描述

  • 博主简介:努力学习的预备程序媛一枚~
  • 博主主页: @是瑶瑶子啦
  • 所属专栏: Java岛冒险记【从小白到大佬之路】

在这里插入图片描述

前言

 OOP(Object Oriented Programing),即面向对象编程,最重要的功能/特点之一就是封装,这点在该专栏开篇博客【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量就已经提到过(包括隐藏信息的好处):
在这里插入图片描述
如何实现信息隐藏呢?Java使用了访问控制修饰符(modifiner)来实现

这篇文章,我们重点学习Java中又一重要语法知识访问控制修饰符

先上思维导图,看文章时,对文章讲解思路&脉络更好把握:
在这里插入图片描述

目录

  • 前言
  • Part1:分类
  • Part2:可修饰对象
  • Part3:权限范围划分/介绍
  • Part4:访问权限控制
    • 4.2理解&记忆
  • Part5:使用细节&注意事项

Part1:分类

Java中访问修饰符分为4个,访问修饰符通常放在语句最前端【位置】

  • public:
  • protected:
  • 什么都不写(默认):
  • private:

Tips: 权限从上到下依次递减

Part2:可修饰对象

知道了有哪些访问修饰符,这些修饰符可以修饰什么对象呢?是类还是方法还是属性?

  • 类修饰符
    • public
    • 默认(什么也不写)
  • 方法、属性修饰符
    • public
    • protected
    • 默认
    • private

Part3:权限范围划分/介绍

我们一直在说控制权限,控制权限,隐藏。那Java中权限是如何划分的呢?这里我用图形&思维导图来展示一下:

在这里插入图片描述
在这里插入图片描述

Part4:访问权限控制

由Part3我们知道了权限的划分,那么是如何通过访问修饰符来进行修饰,来控制相应权限的呢?
在这里插入图片描述

权限含义/访问级别访问权限修饰符同类同包子类不同包(包外)
公开publicOKOKOKOK
受保护protectedOKOKOKNO
默认/不写没有访问修饰符OKOKNONO
私有privateOKNONONO

4.2理解&记忆

 这部分是瑶瑶子专门写给记不住上面表格的小孩哒(❤ ω ❤),如果上面已经记住了,这一Part完全可以直接跳过d=====( ̄▽ ̄*)b
理解:

  • 一个独立的包就相当于一个家,如果你(包中的类,这里默认被public修饰)的属性是:
    • public,那就代表你的这个属性对同类(你自己当然知道自己的属性)、同包(你的这个属性可以暴露给一个家庭下的家人)、子类(暴露给你的孩子)、不同包(因为是公开的即使是别人家的人,也可以访问到你的这个属性)

    • protected相当于你的这个属性被你的家庭(保护起来了),只有你的家庭中的人才可以访问

    • 默认–就很奇怪,只有你的孩子不能知道,家里的人和你自己知道

    • 私有:只有你一个人知道,其他任何人都不可以知道

Part5:使用细节&注意事项

学知识,感觉就是学习很容易,一到使用,就是这里出错,那里出错,很多都是细节没有get到。瑶瑶整理出来了关于访问修饰符的使用细节&注意事项,快快get!

  • 子类重写父类方法
    • 父类方法被public修饰:子类方法必须也被public修饰
    • 父类方法被protected修饰:子类方法被protected/public修饰均可
    • 父类方法被private修饰:子类不能重写(傻呀,你都看不到/不知道/访问不到你爸爸这个方法,咋重写呀)

其他的大概就是上面的导图和表格没记牢咯~

此Part会随着瑶瑶子的学习不断更新,小伙伴有啥的关于访问修饰符注意事项也可在评论区分享哦(❤ ω ❤)


Write in the end

下期预告–详细讲解Java–包
专栏系列文章:

  • 【Java】到底什么是包?|最通俗易懂讲解|保姆级
  • 【JavaSE】一文看懂构造器/构造方法(Cunstructor)
  • 【Java】还不懂this关键字?一分钟彻底弄懂this关键字

原创不易,如果对你有所帮助,还请三连+关注!我是瑶瑶子,持续输出优质文章!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebPack面试题汇总

1,Webpack有什么作用,谈谈你对它的理解 现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决Scss、Les…

记录--这样封装列表 hooks,一天可以开发 20 个页面

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 这样封装列表 hooks,一天可以开发 20 个页面 前言 在做移动端的需求时,我们经常会开发一些列表页,这些列表页大多数有着相似的功能:分页获取列表、上拉加载、下拉刷…

【Java 面试题合集】ThreadPoolExecutor 线程池面试题

文章目录自定义的线程池的 7 个参数如何合理设置核心线程数 corePoolSize 的大小《JAVA 并发编程实战》中的方案java 开发手册中为什么不允许使用 Executors 默认的实现?一个线程池中的线程异常了,那么线程池会怎么处理这个线程?线程池被创建后里面有线…

OpenCV——总结《图像处理-1》

1.HSV H - 色调(主波长)。S - 饱和度(纯度/颜色的阴影)。V值(强度) hsvcv2.cvtColor(img,cv2.COLOR_BGR2HSV)2.图像阈值 函数介绍: ret, dst cv2.threshold(src, thresh, maxval, type) sr…

嵌入式Linux从入门到精通之第九节:系统编程

系统编程概述 在讲解系统编程之前,先了解几个概念: 操作系统的作用: 操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来。 什么是Linux系统编程? 在有操作系统的环境下编程,并使用操作系统提供的系统调用及各种库,对系统资源进行访问。 学会了C语言再知…

Grafana9.3.x在windows上的安装及使用

Grafana9.3.x的安装及使用1. Grafana install1.1 Download1.2 Install2. User Guide1.1 Document1.2 Table视图背景色渲染3.Awakening1. Grafana install 1.1 Download 下载地址 Grafana Website: https://grafana.com/. 1.2 Install 直接点击安装就好了 进入conf目录复制一…

python集合语法与应用

python集合语法与应用 文章目录python集合语法与应用一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.创建2.增加3.删除4.集合运算5.拓展知识一6.拓展知识二总结一、实验目的 掌握集合的用法 二、实验原理 集合中只能包含数字、字符串、元组等不可变的类型的…

规则引擎,实现业务低代码开发的重要工具

规则引擎,是将业务执行抽象化的配置,通过其定义的数据结构、算法和流程来实现应用程序功能的普适化。 规则引擎可以帮助企业提高业务开发效率,提高运营的灵活性,降低运营成本与开发成本,让系统更加智能化灵活化。这里以…

【Rust】5. 所有权

5. 所有权 5.1 什么是所有权 5.1.1 栈(Stack)与堆(Heap) 5.1.2 所有权规则 5.1.3 变量作用域 5.1.4 String 类型 String 类型可进行修改,而字符串字面值是不可以的!(区别在于二者对内存的处理…

OAuth2

目录一、什么是OAuth2.0二、OAuth2中的角色三、认证流程四、生活中的Oauth2思维5. 令牌的特点6.OAuth2授权方式6.1 授权码6.2 隐藏方式6.3 密码方式6.4 凭证方式一、什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。 举例…

PythonWeb Django框架学习笔记

文章目录Django一、初步了解Django1.1 创建项目1.2 文件介绍1.3 APP的创建和说明添加新的app注册app创建页面1.4 templates模板templates语法单一变量列表循环【列表】字典循环【字典】列表套字典条件判断templates小结1.5 请求和响应案例:用户管理二、数据库操作2.…

前言技术之mybatis-plus 01

目录 1.什么是mybatis-plus 2.初体验 3.日志 4.主键生成策略 5.更新 6.自动填充 1.什么是mybatis-plus 升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生” 官网: MyBatis-Plus 2.初体验 1.准备数据库脚本 数据…

再获殊荣!天云数据入选第一批北京市级企业技术中心,Hubble数据库提供新一代信息技术科技服务

为助力北京国际科技创新中心建设,贯彻落实北京市“十四五”时期高精尖产业发展规划,引导和支持企业加强创新能力,培育和引导企业技术中心建设,北京市经济和信息化局组织开展了2022年度第一批北京市市级企业技术中心的创建工作&…

【Python学习笔记】5. Python3 基本数据类型(上)——数值型、字符串型

前言 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变…

tomcat配置多个host,并且避免重复加载

目录 1.实验描述 2.实验环境 2.实验过程 2.1 创建order和user项目 2.2 打包项目 2.3 修改tomcat的server.xml的配置 2.4 启动tomcat 2.5 配置本地host 2.6 验证 1.实验描述 目前有两个域名,分别是: order.abc.com user.abc.com 两个项目&…

微信小程序学习第1天:微信小程序开发入门介绍

前言:微信小程序开发模式 1、申请小程序开发账号 2、安装小程序开发者工具 3、创建和配置小程序项目 一、申请小程序开发账号 1、体验小程序 2、注册小程序开发账号 使用浏览器打开https://mp.weixin.qq.com网址,按照提示注册 注册承购后&#xff0c…

微服务 初始 分布式搜索引擎 Elastic Search

文章目录⛄引言一、什么是Elastic Search?二、Elastic Search 倒排索引⛅正向索引⚡倒排索引⛄正向和倒排三、ES的一些概念⛅文档和字段⚡索引和映射四、MySQL 与 Elasticsearch⛵小结⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源…

OBB的计算python实现

OBB的计算python实现1. 实现步骤步骤① 分解点集的xyz分量步骤② 对x、y、z这三个随机变量(一维数组)求协方差矩阵步骤③ 对步骤②中的协方差矩阵求解特征值与特征向量,特征向量构造列向量矩阵M步骤④ 将点集的几何中心平移至坐标系原点&…

最全java面试题及答案(208道)

本文分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 ,如下图所…

Discord怎么抢白名单?Discord多账号防关联可以提高白名单成功率

Discord作为一个社交媒体,在加密货币领域扮演着重要的角色,它强大而便捷。更重要的是,如果你是一个投资者,Discord无疑是你了解项目动态,深入社区沟通交流的重要工具。 相信很多玩NFT和Web3的朋友都不会对discord 陌生…