2

我对android开发完全陌生。事实上,我正在按照本教程构建我的第一个应用程序 hello world 应用程序:http: //developer.android.com/training/basics/firstapp/starting-activity.html

我第一次遇到上下文这个词。我已经打开了该类的 API,但是给出的描述(如下所示)对我来说根本无法理解。

“关于应用程序环境的全局信息的接口。这是一个抽象类,其实现由 Android 系统提供。它允许访问特定于应用程序的资源和类,以及对应用程序级操作的向上调用,例如启动活动、广播和接收意图等"

1. 有人能用最简单的术语告诉我上下文是什么吗?请告诉一个完整的菜鸟和初学者可以理解的东西。

  1. 我在构建意图的语句的解释(在教程中我给出了链接)中遇到了这个术语,即 Intent intent= new intent(this, SecondActivity.class);

并且解释说“this”用于需要上下文的地方,因为 Activity 是 Context 的子类。

据我对 java 编程语言的了解,this 用于引用当前对象。这里的当前对象是一个Activity的对象。

现在,既然 Activity 是 Context 的子类,那么他们是否使用 Activity 的对象(这里由 this 关键字引用)来代替超类 Context 的对象的对象?但是不就是不能将子类对象隐式转换为超类对象吗?

简而言之,我的问题(如果上述问题让您感到困惑)是他们为什么使用此关键字代替上下文(即此 Activity 类的超类)对象?

4

1 回答 1

1

但是不就是不能将子类对象隐式转换为超类对象吗?

有一次我在阅读Bruce Eckel 的Thinking in Java。他描述了双向铸造的概念、它们的用途和要求。与其他作者(其中许多人)相比,他的书中的不同之处在于他将概念与现实世界联系起来,而不是冗长。以下是他在这种情况下所说的话:

从子类到超类的转换是安全的,因为子类至少具有超类提供的扩展接口(当然这是公共的)。因此,在从子类转换为超类时,您可以安全地调用它们共有的所有方法,但反过来(从超到子)为您提供了调用父类不可用的所有额外方法的不安全句柄,如果有的。

你的这个更正的概念将回答你的第二个问题,

他们为什么使用这个关键字代替上下文

PS:请勿使用大写字体发布正常单词。我们足够健全和耐心,可以正常阅读并想出一些明智的答案。

于 2015-05-28T06:14:31.240 回答