【问题标题】:Can a object be private and public?对象可以是私有的还是公共的?
【发布时间】:2014-06-24 05:58:41
【问题描述】:

对一个对象的引用可以在类中是私有的,而其他对象可以对同一个类有一个公共引用(后脚本:java的新手+请举一个简单的例子)。 我在某处读到这个问题与混叠有关? 抱歉,我的标题可能没有意义!

【问题讨论】:

  • 你说的是同一个对象引用,是的,这是可能的。
  • 所有对象实际上都是公共的,因为所有 Object 方法都是公共的。如果您可以通过任何方式获得对它的引用,则您可以访问该对象。

标签: java class private public


【解决方案1】:

对象不是私有的或公共的。 字段 可以是私有的或公共的。字段可以保存对对象的引用。一个对象可以同时被私有和公共字段引用:

public class Example {
    public static Object a;
    private static Object b;

    public static void main(String... args) {
        Object foo = new Object();
        a = foo;
        b = foo;
        // Now our Object is referred to by the public field a, the private
        // field b, and the local variable foo (which is not considered either
        // private or public).
    }
}

【讨论】:

  • 但是如果我有私有静态示例 e= new Example(); --这里 e 是私有的。我说的对吗?
  • @user3762742:e 字段是私有的。它所指的对象不是。
【解决方案2】:

public 和 private 是访问修饰符。它们是可选的修饰符,它们决定变量、方法或类的可访问性。如果使用 use private 修饰符,则意味着相关成员只能在同一个类中访问。如果它是公共的,您可以在同一个类、同一个包和不同的包中访问该成员;简直无处不在。 OOAD 建议我们应该封装变化的内容。因此,我们将所有实例变量设为私有并声明公共 getter/setter 方法以从任何地方访问这些变量。 public 和 private 只是修饰符。

【讨论】:

    【解决方案3】:

    public 和 private 是访问修饰符。如果使用 use private 修饰符,则意味着相关成员只能在同一个类中访问。如果它是公共的,您可以在同一个类、同一个包和不同的包中访问该成员;简直无处不在。 OOAD 建议我们应该封装变化的内容。因此,我们将所有实例变量设为私有并声明公共 getter/setter 方法以从任何地方访问这些变量。 public 和 private 只是修饰符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-12
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多