访问修饰符的用途是什么

是否需要在编程语言中使用访问修饰符? 如果我们选择所有成员和方法作为私人,那么输出会是什么?

请参阅: 封装 (维基百科)

当然你可以将所有成员和方法声明为私有,但是你自己就是一个非常无用的类,因为你不能从另一个类访问它们中的任何一个。

您需要访问修饰符才能控制方法/成员的可访问性。 道德是你应该尽可能地限制私人的可访问性,但你仍然不能将所有这些都私有化。

假设您有一个实用程序类,它对所有类执行有用的操作(例如:日志记录)。 在这种情况下,所有类都应该“看到”实用程序类及其成员。无限期,您无法将所有内容设为私有。 这只是数百个中的一个例子。

private修饰符指定只能在其自己的类中访问该成员。

如果您使用的是所有成员且成员是私有的,则您无法在课堂外访问。

检查一下: http : //download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

访问修饰符用于封装:它们允许您在包和类中安排代码,并且只有外部可见的“官方”公共界面,同时隐藏实现细节(您想要执行的操作,以便以后可以使用)改变它而不告诉任何人)。

当您将代码作为库发布以供其他程序员使用时,这尤其(仅?)很重要。 即使代码仅用于您自己的程序,它也有助于将更大的程序组织成几个包。

除非你的程序只包含一个类,否则将所有内容设为私有都没有意义。 这是一个合理的默认值,但是:在您认为其他类需要调用它之前,请将该方法设为私有。

Java中的默认修饰符(如果未指定任何内容)受包保护。 这允许从您自己的相关代码(即同一包中的代码)访问方法或字段,同时仍然将其隐藏在其他任何人之外。 它也是一个合理的默认值,或者是私有的自然升级路径:直到包外部的代码需要调用它,使方法受包保护。

更可见的级别受到保护(子类可以看到它)和公共(每个人都可以看到它)。 在制作公开或受保护的内容之前,请仔细考虑界面,因为以后很难对其进行更改。

访问修饰符用于控制字段和方法的可见性。 通常我们有充分的理由不允许对其他类的对象使用方法或字段。

如果您刚刚开始用Java编码并将所有自己的代码保存在一个类中,那么您最终可能不需要不同的访问修饰符(除了必须public的main方法)。 一旦您的设计变为面向对象(=一旦您实现了多个类),访问修饰符就会变得重要。

这是一个指向官方Java教程中相应articel的指针 。

我同意, private对于成员领域来说是一个很好的经验法则。 但是, private修饰符禁止子类访问字段和方法。 如果所有方法和字段都是private ,那么除了类型之外,子类与它们的超类没有任何共同之处。

如果所有方法都不可用,那么一个Object对另一个对象也很困难。 如果所有方法(包括构造函数)都是私有的,那么甚至很难编写实例化Object

讨论的一个更好的问题是:在privatepublic ,为什么有protecteddefault访问修饰符。

您可以使用默认访问权限,这将使该类在包中可用。 它你private没有人可以使用它。

这是关于您的类方法或属性的可访问性我绘制了一个表,以使其易于理解。

 +----------------------+----------------+-----------------+----------------------+ |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 | | | | | | +----------------------+----------------+-----------------+----------------------+ 

当然需要访问修饰符,否则就不会添加它们。

面向对象编程和重用代码的最重要特性之一。 如果您将所有内容都设为私有,则无法执行此操作,您必须反复编写代码! 使用公共或默认访问修饰符可以让您使用其他类中的代码。

使用访问修饰符来调节对类,构造函数,方法和字段的访问,即类可以控制其他类可以访问哪些信息或数据。 访问修饰符的主要贡献是封装,这是OOP概念之一。

如果您将所有成员和方法设为私有,则使您的代码无法被其他类访问。 通常,您将无法重用已有的function和代码。

private修饰符指定只能在其自己的类中访问该成员。 包内的默认修饰符使用。 protected修饰符指定成员可以在包内访问,也可以在任何级别inheritance。

所有方法和字段都只在类中访问,即使您使用该类的对象inheritance或访问,也不会访问外部类。

Java包含四个访问说明符,

 Public Private Protected Default 

Java有五个非访问修饰符

 static final abstract syncronised volatile 

来源: 教程数据 – Java修改器