私有和公共java访问修饰符基础

时间:2012-05-24 19:44:50

标签: java

我是java的新手,我做了一些有关私有和公共访问修饰符的阅读。我想在这个主题中消除任何混乱,因为我觉得我对它没有最好的掌握。

访问变量中的修饰符

如果我错了,请纠正我,默认情况下变量是公开的。如果访问修饰符设置为public或者根本没有设置,则来自同一项目的其他类可以访问整数和/或修改它。如果它是私有的,那么它对外部是不可见的,并且不能被创建它之外的类访问。

访问类中的修饰符

在类中访问修饰符,我似乎并不完全理解。据我所知,如果我从不在同一个类中的方法调用私有方法,那么它将无法工作。如果是公开的话呢?

我有什么遗漏或不正确的理解吗?

我很感谢这方面的帮助。

8 个答案:

答案 0 :(得分:3)

  

如果我错了,请纠正我,默认情况下变量是公开的。

你错了。假设您指的是字段,默认情况下,它们具有“包”访问权限,无法明确表达。 本地变量没有访问控制的概念 - 它们只存在于方法的上下文中,因此不能从其他任何地方引用。

  

如果访问修饰符设置为public或者根本没有设置,则来自同一项目的其他类可以访问整数和/或修改它。

如果设置为公开,那么任何代码都可以访问它。

如果是默认(包)访问,则同一包中的任何代码都可以访问它。

  

在类中访问修饰符,我似乎并不完全理解。据我所知,如果我从不在同一个类中的方法调用私有方法,那么它将无法工作。如果是公开的话呢?

这是非常正确的,是的。

我建议您阅读Java tutorial on all of this,并参阅language spec section 6.6了解详情。

答案 1 :(得分:3)

Here's这是一个关于这个主题的好文档。

有四种访问级别:

  1. private:只有那个类(甚至不是后代)才能访问。
  2. protected:只有该类及其后代和同一个包中的类才能访问。
  3. package-private(无说明符) - 只允许同一个包中的类访问 - 即使不在同一个包中的子类也不能访问。
  4. public:一切都可以访问。
  5. 对于类成员变量和方法,默认访问权限是包私有。

答案 2 :(得分:1)

您可以在Oracles网站上找到有关4个修饰符here的信息。

如果你没有指定修饰符,则说它是默认的,这意味着只有同一个包中的任何代码都可以访问它。

如果设置为公开,则任何包中的任何代码都可以访问它。

答案 3 :(得分:1)

实际上在Java中有四种不同的访问修饰符,私有,公共,受保护和特定于包。 “如果我错了,请纠正我,默认情况下变量是公开的” - 这里你错了一个变量,如果没有声明不同,则有与包相关的访问权限。如果将其设置为public,则即使在原始包之外,也可以由其他类修改。这个网站 - http://javapapers.com/core-java/access-modifiers-in-java-explain/ - 可以为您提供有用的提示。实际上,一旦你在封装等OO概念上阅读了更多内容,就会非常容易。然后,您将了解访问修饰符的用途(以确保数据整数)。

答案 4 :(得分:0)

访问修饰符:

  • 公开 - {可以访问项目中的任何位置}

    私人 - {只能在班级内访问}

    受保护 - {可以在包和子类中访问}

    默认 - {可以在包中访问}

非访问修饰符:

  • 静态 - {用于创建类变量和方法}

    最终 - {用于创建最终的类,变量和方法}

    摘要 - {用于创建抽象方法和类}

    已同步 - {for threads}

要了解详情,请按照此link

进行操作

答案 5 :(得分:0)

Java提供了许多访问修饰符来设置类,变量,方法和构造函数的访问级别。四个访问级别是:

默认值:对包可见。不需要修饰符。

私人:仅对班级可见。

公众:对世界可见。所有课程和包。

受保护:对包和所有子类可见。

如果程序员没有指定访问修饰符,则使用默认访问修饰符。

答案 6 :(得分:0)

私有和公共java访问说明符。在java中,私有访问说明符它指定access.private就像自己的族属性,它只能使用哪个族所属。这意味着可以使用类,方法和变量。 公共就像政府财产,意味着每个人都可以在不需要令牌的情况下访问这些财产

答案 7 :(得分:0)

私有和公共java访问说明符 in java ,私有访问说明符,它指定访问权限。

  

私人就像自己的家庭财产,只能使用哪个家庭   belongs.that意味着在类中,方法和变量可以使用

  

公众就像政府财产,意味着每个人都可以访问   不需要令牌的属性