java四种访问修饰符

56 篇文章 5 订阅

访问修饰符 public,private,protected,以及不写(默认)时的区别:

定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

分类:

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
public : 对所有类可见。使用对象:类、接口、变量、方法

访问修饰符图:

在这里插入图片描述

详解:

在这里插入图片描述

在这里插入图片描述

封装的概念:
封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,隐藏对象属性和实现细节,仅对外提供访问形式,提高安全性和代码复用性

封装的体现:
我们将类的属性私有化,同时,提供公共的public的get,set方法来 获取和设置此属性的值。

封装性的其他体现:
①属性私有化②不对外暴露的私有方法③单例模式等

在这里插入图片描述

注意:工程是最大权限,不同工程绝对用不了,除非引入api到工程中。

在这里插入图片描述

面试回答:

定义:Java中,可以使用4种访问修饰符来保护对类、变量、方法和构造方法的访问。
分类:

private(当前类访问权限) : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(这里不能修饰外部类)
default(包访问权限) (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
protected (子类访问权限): 对同一包内的类和不同包的所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
public(公共访问权限) : 对所有类可见。使用对象:类、接口、变量、方法

一、private(当前类访问权限):

1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员。

2.在当前类之外,使用对象(或是类名,针对静态的)打点调用都是被限制的。这时候有同学问,那我开发的这个私有的成员难道不能使用了吗?不是,可以通过在当前类中开发一个公有的方法,在公有方法中可以使用这个私有的成员,从而达到间接使用私有成员。

3.在继承中,私有成员禁止被继承,也就是说在子类的开发中,拒绝直接使用私有成员的名字进行使用。
   
二、default(包访问权限):

如果类里的一个成员(包括成员变量、方法和构造器等)或者一个外部类不使用任何访控制符修饰,就称它是包访问权限的。

default: 访问控制的成员或外部类可以被相同包下的其他类访问

本类中:直接通过成员变量名访问

同包的子类中:直接通过成员变量名访问

同包的其他类:可以通过成员变量方式直接访问

不同包的类(包括子类)中:不能直接通过直接和对象.属性 任意一种访问

在这里插入图片描述

三、protected(子类访问权限):

如果一个成员(包括成员变量、方法和构造器等)使用protected访问控制符修饰,那么这个成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。

在通常情况下,如果使用protected来修饰一个方法,通常是希望其子类来重写这个方法。

本类中:直接通过成员变量名访问

同包的子类中:直接通过成员变量名访问

同包的其他类:可以通过成员变量方式访问

不同包的子类:直接通过成员变量名访问

不同包的类中:不能直接通过两种方式中的任意一种访问(1.对象.成员变量
2.成员变量)

在这里插入图片描述

在这里插入图片描述

四、public(公共访问权限):

这是一个最宽松的访问控制级别,如果一个成员(包括成员变量、方法和构造器等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系。

类的访问修饰权限就两种:public 和缺省。这里不包含内部类结构。

在这里插入图片描述
总结封装性:java提供了四种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值