【问题标题】:Can you access a private variable of an instance if it is in the same class? (copyOf)如果它在同一个类中,您可以访问实例的私有变量吗? (备份)
【发布时间】:2013-04-18 17:46:52
【问题描述】:

举个例子,

public class SwapNumbers {

private int aNumber = 0; ///////////////////////////////////

    public SwapNumbers(){

    }

    public void changeNumber(int changed){
    aNumber = changed;

    }
    public void swap(SwapNumbers otherNumber){ ///////////

    aNumber = otherNumber.aNumber; //Can we access aNumber?
    }


}

在这项工作中交换会起作用吗?我的第一直觉是它不起作用,因为它试图访问私有值。

【问题讨论】:

    标签: java scope private


    【解决方案1】:

    是的。创建成员 private 意味着它可用于当前类及其任何内部类,但受静态限定符的约束。

    包私有(或默认值,没有任何访问修饰符)意味着它可用于同一包中的任何类。

    public 修饰符使其可用于任何地方的任何包中的任何类。小心这些:)

    【讨论】:

    • 谢谢,出于某种原因,我认为它仅限于当前类和当前实例。当它允许我时,我会接受这个答案。
    【解决方案2】:

    如果您在同一个类中,则访问该类中的任何变量(私有、受保护或公共)都不会出现问题。

    您将无法从外部访问私有变量

    public class SwapNumber {
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2013-04-22
      • 2010-10-03
      • 2014-04-21
      • 2018-04-04
      • 1970-01-01
      • 2017-03-04
      • 2016-06-08
      相关资源
      最近更新 更多