Java中private、protected、public和default的区别

public:

具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。

protected:

主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西

default:

有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

private:

访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

Java中private、protected、public和default的区别

注意:java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

区别:

public:可以被所有其他类所访问

private:只能被自己访问和修改

protected:自身、子类及同一个包中类可以访问

default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

Original: https://www.cnblogs.com/ldq2016/p/10692512.html
Author: 一点点征服
Title: Java中private、protected、public和default的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/538698/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java 自定义Excel数据排序

    通常,我们可以在Excel中对指定列数据执行升序或者降序排序,排序时可依据单元格中的数值、单元格颜色、字体颜色或图标等。在需要自定义排序情况下,我们也可以自行根据排序需要编辑数据排…

    Java 2023年6月7日
    096
  • Java socket 多线程编程 示例

    参照网上代码: 1.工程: 2.代码: Client.java package com.my.socket.test; import java.io.BufferedReader;…

    Java 2023年5月29日
    078
  • IDEA-SpringBoot热部署失效问题解决

    热部署的作用 springboot每次修改之后都需要重新启动才会生效,启动热部署之后每次修改会自动重启,而不用手动重启,提高开发效率。 1.添加依赖 org.springframe…

    Java 2023年5月29日
    073
  • Mybatis的一级、二级缓存

    一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Sessio…

    Java 2023年6月13日
    091
  • ab test压力测试

    之前做性能调试的时候一直用的JMeter压测,最近发现一款简单易用的压力测试工具。 ab(Apache benchmark)是一款常用的压力测试工具,是Apache附带的一个小工具…

    Java 2023年6月8日
    0112
  • Linux基础入门笔记

    Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统,是一…

    Java 2023年6月7日
    062
  • 彻底解决Failed to execute goal on project xxxxx

    今天在使用mvn clean package命令对一个子项目打包的时候出现如下错误(但是使用maven插件却没有问题) Failed to execute goal on proj…

    Java 2023年6月5日
    0206
  • 关于Spring事务嵌套回滚的一些测试总结(精简)

    posted @2020-03-27 10:54 哈哈呵h 阅读(999 ) 评论() 编辑 Original: https://www.cnblogs.com/yaowen/p/…

    Java 2023年5月30日
    085
  • 迭代器Iterator

    迭代器是对集合进行遍历,而每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法,这样做是可以的,但是会…

    Java 2023年6月9日
    060
  • Kotlin学习快速入门(9)—— 密封类的使用

    原文地址: Kotlin学习快速入门(9)—— 密封类的使用 – Stars-One的杂货小窝 代码逻辑中,很多时候我们会需要分支语句,来根据数据的情况走不同的处理逻辑…

    Java 2023年6月13日
    0116
  • 什么是哈夫曼树

    写在前面 之前讲的链表,栈,队列等都是线性存储结构,都是 一对一的关系。而树是具有 一对多关系的数据结构。比如我们经常说的湖北省武汉市,湖南长沙的一个类图,就类似于一颗倒转的树。 …

    Java 2023年6月5日
    0105
  • Java 面试题集锦

    第一阶段 1、重载(overload)和重写(overwrite)区别 重写:子类继承父类,子类重写父类的方法。重载: 2、StringBuffer、StringBuilder、S…

    Java 2023年6月9日
    064
  • Golang中的redblacktree

    一、红黑树 1.红黑树是一种自平衡的二叉搜索树,也是一种高效的查找树。红黑树的应用很广泛,如Java中的TreeMap、JDK1.8中的HashMap等均是基于红黑树实现的。 二、…

    Java 2023年6月13日
    079
  • 20年5月面试汇总

    redis: 数据结构 redis的五种基本数据结构: string、hash、set、zset、list、HyperLogLog…. 补充:BloomFilter等 …

    Java 2023年6月8日
    079
  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

    基于Vue和Quasar的前端SPA项目实战之数据导出(十三) 回顾 通过之前一篇文章基于Vue和Quasar的前端SPA项目实战之数据导入(九)的介绍,通过配置的方式可以零代码实…

    Java 2023年6月6日
    089
  • ArrayList扩容机制

    写在前面 数据结构在面试中基本都是常问的,但是一般开发中基本上都是在使用没有去关心过怎么实现的。 在数据结构中,链表是一种线性存储结构,也就是常说的线性表。 概念:线性表,是数据结…

    Java 2023年6月5日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球