2016-01-20 76 views
-5

我有一个关于引用变量的问题。java中的引用变量

我知道声明一个引用变量不会创建该对象。

但在Android的,如果我写:

Button button; 

//button.(methods are seen) 

button=(Button)findViewById(R.id.button1); //Does this instantiate the object? 

//button.(methods are seen) 

我怎么能够访问Button类的方法,而没有在任的首次明确创建对象和第二注释行?

例如,我可以这样做:

button.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View view) { 
     finish(); 
    } 
}); 

我不明白它是如何工作的。

+0

'(Button)findViewById(R.id.button1)'这里引用对象并且不创建。 没有引用或创建对象如何访问对象的功能?这是编程基础的重要部分。 – zIronManBox

+0

该代码不会编译!你甚至尝试过吗? – RAnders00

回答

2

当您在xml中使用<Button></Button>时,您正在创建一个Button对象(android会为您创建它)。当您使用方法findViewById时,您正在获取对创建的Button的引用。所以你可以访问Button类的公共方法。

+0

非常感谢你 – erhan

+0

你的欢迎。 但我认为你不应该在这里问这种类型的问题。尝试使用Google搜索之前问在stackoverflow。 :) –

+0

你说,当你使用findViewById你正在获取一个创建的引用Button是引用存储在按钮变量? – erhan