公有还是私有,它对Android变量真的很重要吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

在单个活动内部,以下定义之间的真正区别是什么:

Button  btnPower = null;
//or
private Button btnPower = null;
//or
public Button btnPower = null;

public void somethingUsingTheButton(){
  btnPower = (Button)findViewById(R.id.btnpower_id);
}
提问于
用户回答回答于

在某些情况下,某些类型的访问会影响性能,但它们可能比这个问题的主题稍高一些。

一个这样的情况与内部类访问外部类字段有关:

class MyOuterClass
{
    private String h = "hello";

    // because no access modifier is specified here 
    // the default level of "package" is used
    String w = "world"; 

    class MyInnerClass
    {
        MyInnerClass()
        {
            // this works and is legal but the compiler creates a hidden method, 
            // those $access200() methods you sometimes see in a stack trace
            System.out.println( h ); 

            // this needs no extra method to access the parent class "w" field
            // because "w" is accessible from any class in the package
            // this results in cleaner code and improved performance
            // but opens the "w" field up to accidental modification
            System.out.println( w ); 
        }
    }
}
用户回答回答于

直接调用对象的变量对于其他可能读取你的代码的人来说至少会显得很陌生。

另外如果你并不孤单编写一个项目,总是一个很好的做法,以限制对类实现关键的属性的可见性,以避免奇怪的工作,可能会让其他开发人员提出。

扫码关注云+社区

领取腾讯云代金券