赞
踩
定义: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提供了四种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性大小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。