java 中 public,default,protected,private,final、static的区别

修饰符,状态修饰符,final,static

修饰符
无修饰词:表示包访问权限,(friendly,Java中没有友元的概念,同一个包内可以访问,访问权限是包级访问权限)
public :成员是公开的,所有其他类都可以访问
private【最严格】:成员是私有的,只有当前类【当前java文件】可以调用,继承当前类的子类都不可以调用。
protected :【解决了 private的子类不能调用的缺陷,可以理解为一个继承系下的可以调用】
受保护权限,体现在继承,子类可以访问父类受保护的成员,同时相同包内的其他类也可以访问proteged成员。

在这里插入图片描述

|打个比方|
|–|–|
|public相当于外人可以调用 |
|private相当于家庭内可以调用 |
|protected相当于亲戚可以调用 |

默认/缺省,网上有人认为是JAVA比较失败的设计.很多开发组都明确禁止缺省修饰符.
缺省的含义: 包内可以调用,即只要是同一个包内,都可以调用. 局限性比protected 大,比public 小. 从’外人’的角度看,类似于public,但又比public 多了个不伦不类的包限定.

更新2022.1.10
之前看代码发现,
private的class里面是public的方法,不太明白,然后建立了一个测试类,就明白了
就是你可以new一个类对象,但是如果方法也是private,那么就不能在外部类调用该方法了,
所以,方法要用public
但是对于private中的变量,一般也用private,因为private类中的变量的修改一般是通过public 的set方法来修改的 。这样增加了安全性

final
在这里插入图片描述

static

用于修饰类的【成员变量、方法、static代码块】

静态方法/变量:static修饰的方法/变量。 不依赖于任何对象,可以直接访问

静态方法/变量特点:

  1. 非静态方法中可以访问静态方法【变量】
  2. 静态方法不能访问类的非静态成员变量和非静态成员方法

在这里插入图片描述

Java技能树/Java中的变量与常量/变量的作用域

1、private修饰成员变量时,本类中可以通过实例对象.属性名进行访问。

2、其它类中不可以通过实例对象.属性名进行访问,需要通过原始类提供的get方法进行属性的访问。

3、当实例化一个对象之后,如果不给对象进行初始化。那么对象的属性会默认初始化。即:int型成员变量为0,引用类型成员变量为null,double类型成员变量为0.0,…

原文链接:https://blog.csdn.net/weixin_32531655/article/details/114058201

参考链接:
https://zhidao.baidu.com/question/432948728.html

https://blog.csdn.net/yubujian_l/article/details/86498238

https://www.cnblogs.com/jingmengxintang/p/5898900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值