介绍类,对象的概念?

时间:2012-08-07 03:13:52

标签: android arrays string class listadapter

我是新来的,所以在这里还有一些非常模糊的东西 &安培;我对以下代码感到有些困惑。

public class SmsActivity extends ListActivity { 
private String[] mSmsReceiver; 
public SmsActivity(){
mSmsReceiver = new SmsReceived();

setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));

我的理解:(应该是错的)

第1行:超类SmsActivity下的班级ListActivity
第2行:我引入一个字符串数组术语名称:mSmReceiver
第3行:调用方法SmsActivity()
第4行:在SmsActivity方法内,mSmsReceiver(一个字符串数组)调用方法SmsReceived
第5行:ArrayAdapter(以字符串形式,加载了mSmsReceiver的信息)加载到setListAdapter

我的问题:

  1. 请纠正我对上述代码的理解。
  2. 第5行,this是指什么? (我查看了互联网和书籍,它总是说上下文。但我完全不知道上下文究竟意味着什么,任何人都可以在这里解释什么是上下文?)
  3. 完整代码:

        import...
        ....   
    
        public class SmsActivity extends ListActivity {
        private String[] mSmsReceiver;
        public SmsActivity(){
        mSmsReceiver = new SmsReceived();
    
        setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));
    
        ListView listView = getListView();
        listView.setTextFilterEnabled(true);
    
        //---method is call when listitem is clicked---
        listView.setOnItemClickListener(new OnItemClickListener() {edit later});
        }
    
    
        private class SmsReceived extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) 
        {..... }
        }
    
        }
    

2 个答案:

答案 0 :(得分:2)

基本上这是一个名为SmsActivity的类的定义。

第1行和第2行是对的。更确切地说,mSmReceiver是类SmsActivity的私有数字。

第3行应该是我不确定的构造函数,因为我不是Android开发人员,我听说它在onCreate中使用Activity。但无论如何,calling the method只是定义它。构造函数将用于初始化类。

第4行mSmsReceiver(a string array) call method SmsReceived。不是这样,它将是initialize mSmsReceiver with an object, which is an instance of class SmsReceived

第5行this指的是班级SmsActivity。在课程this中几乎总是引用它所在的类。这提供了一个上下文,以便您可以使用this.someMumberthis.someFunction

答案 1 :(得分:1)

Java中的关键字“this”基本上是对其所在类的引用。例如:

public class MyClass {
    MyClass myVar = this;
}

这会将MyClass类的一个实例放在该变量中。它为您提供了您所在类的实例。如果您通过方法调用它:

public void myMethod() {
    MyClass m = this;
}

这将为您提供调用myMethod的任何类的实例。将其作为MyClass的实例或MyClass的子类的实例。用于调用方法的任何实例都将放在m变量中。

因此,当您在Activity中调用“this”时,它会为您提供该Activity的实例。