在编程语言中有必要使用访问修饰符吗?如果我们将所有成员和方法都设为私有,那么输出会是什么?
私有(Private)用于封装(面向对象编程),以隐藏实现细节。 公共(Public)声明的方法提供类的接口。
如果您将所有内容都声明为私有,就无法使用其他类中的方法。 这将使具有此类方法的类变得相当无用。
private
作为成员字段的规则是很好的。然而,private
修饰符禁止子类访问字段和方法。如果所有的方法和字段都是 private
的,那么子类除了类型外将与其父类没有共同之处。Object
都会很困难。private
和 public
之外,为什么需要 protected
和 default
访问修饰符。这是关于您的类方法或属性的可访问性问题,我画了一张表格,试图使其易于理解。
+----------------------+----------------+-----------------+----------------------+
|Access Modifiers | Same Package | Subclass | Other packages |
|----------------------|----------------|-----------------|----------------------|
|public | Y | Y | Y |
| | | | |
|protected | Y | Y | N |
| | | | |
|no access modifier | Y | N | N |
| | | | |
|private | Y | N | N |
| | | | |
+----------------------+----------------+-----------------+----------------------+
您可以使用默认访问权限,使类在包中可用。如果您将其设置为private
,则没有人可以使用它。
所有的方法和字段只能在类内部访问,即使您继承或使用该类的对象访问也不能在类外部访问。
Java包含四种访问修饰符,
Public
Private
Protected
Default
Java 有五个非访问修饰符
static
final
abstract
syncronised
volatile
来源:Java修饰符教程数据