在Java編程中,經(jīng)常會用到this和context這兩個(gè)關(guān)鍵詞。但是很多初學(xué)者可能不明白它們的具體含義和用法,下面就來詳細(xì)解釋一下。
首先,this指的是當(dāng)前對象或者當(dāng)前類。在一個(gè)對象的方法里面,this表示當(dāng)前對象,可以用于調(diào)用該對象的其他方法或者成員變量。在一個(gè)類內(nèi)部,this表示當(dāng)前類。下面看一個(gè)簡單的例子:
class Person { private String name; public Person(String name) { this.name = name; } public void sayHello() { System.out.println("Hello, " + this.name + "!"); } } Person p = new Person("Tom"); p.sayHello(); // 輸出:Hello, Tom!
可以看到,在Person類中,this.name表示成員變量name,而p.sayHello()中的this表示實(shí)例對象p。
另外一個(gè)關(guān)鍵詞是context,它指的是當(dāng)前上下文。在Android開發(fā)中,context是一個(gè)非常重要的概念,它用于表示一個(gè)應(yīng)用程序環(huán)境或者一個(gè)Activity的上下文信息。比如,我們可以通過context來獲取應(yīng)用程序的資源、啟動一個(gè)Activity等等。下面是一個(gè)簡單的例子:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Hello!", Toast.LENGTH_SHORT).show(); } }); } }
在這個(gè)例子中,MainActivity.this就是當(dāng)前Activity的上下文,可以在里面調(diào)用Toast.makeText()等方法來獲取當(dāng)前Activity的相關(guān)信息。
總之,this和context在Java編程中都是非常重要的關(guān)鍵詞,掌握了它們的用法,就可以更好地理解和編寫Java程序。