Java 为什么widgets';构造函数需要上下文吗?

Java 为什么widgets';构造函数需要上下文吗?,java,android,Java,Android,我刚刚开始学习Android编程,我有一个疑问。如果我有一个活动和一个小部件(在其中),为什么我必须在小部件的构造函数中声明一个上下文?难道它不应该理解我所处的环境吗?在Java中,如果我创建一个框架,我只需要键入: JFrame frame = new Frame(); 我不明白为什么我需要用Android写这个: LinearLayout ll = new LinearLayout(this); 上下文类详细信息: 与有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Androi

我刚刚开始学习Android编程,我有一个疑问。如果我有一个活动和一个小部件(在其中),为什么我必须在小部件的构造函数中声明一个上下文?难道它不应该理解我所处的环境吗?在Java中,如果我创建一个框架,我只需要键入:

JFrame frame = new Frame();
我不明白为什么我需要用Android写这个:

LinearLayout ll = new LinearLayout(this);

上下文类详细信息:

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

假设您的应用程序没有此
,它允许访问特定于应用程序的资源
。
现在您将如何在LinearLayout->Child(ImageView)中添加图像为此,您需要一些参考,通过这些参考,您可以访问在项目的drawable文件夹中声明的图像

编辑部分:

这是android中
上下文的超集

(我不能说这是准确的,但我试着这样理解)

new Frame(),new LinearLayout(this)
除了
这个
参数外,其他的表示形式都是相同的,现在尝试从代码中避免使用
new
关键字,现在我们只有
Frame(),LinearLayout(此)

现在调用两个构造函数
Frame()和LinearLayout(this)

需要注意的一点:在每个构造函数或每个方法中,都有一个为方法或构造函数自动创建的堆栈。堆栈被创建为临时存储 (范围相关)&在每个堆栈的第一个位置,这是调用函数的
this
。所以,你是否发送这个并不重要
对于android,我认为brilliant minds(android Api的创建者)已经添加了它(
context
),以提高用户的可读性,用户可以正确理解它。

context类详细信息:

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

假设您的应用程序没有此
,它允许访问特定于应用程序的资源
。
现在您将如何在LinearLayout->Child(ImageView)中添加图像为此,您需要一些参考,通过这些参考,您可以访问在项目的drawable文件夹中声明的图像

编辑部分:

这是android中
上下文的超集

(我不能说这是准确的,但我试着这样理解)

new Frame(),new LinearLayout(this)
除了
这个
参数外,其他的表示形式都是相同的,现在尝试从代码中避免使用
new
关键字,现在我们只有
Frame(),LinearLayout(此)

现在调用两个构造函数
Frame()和LinearLayout(this)

需要注意的一点:在每个构造函数或每个方法中,都有一个为方法或构造函数自动创建的堆栈。堆栈被创建为临时存储 (范围相关)&在每个堆栈的第一个位置,这是调用函数的
this
。所以,你是否发送这个并不重要
对于android,我认为brilliant minds(android Api的创建者)已经添加了它(
context
),以便用户能够更好地理解它。android中的
视图
需要从
资源
中检索某些属性,例如尺寸、颜色、,等。要检索这些,它需要
上下文
(例如
上下文.getResources()
)。

Android中的
视图
需要从
资源
中检索某些属性,例如维度、颜色等。要检索这些,它需要
上下文
(例如
上下文.getResources()
).

你认为它会怎么做?一个被创造的物体对它的创造者一无所知。我更新了我的问题,也许我的怀疑现在更清楚了,你认为它会怎么做?创建的对象对其创建者一无所知。我更新了我的问题,也许我的疑问现在更清楚了,但为什么我可以在java中编写JButton button=new JButton();在android编程中,我不能只键入Button=new Button();?但是为什么我可以用java编写JButton button=newjbutton();在android编程中,我不能只键入Button=new Button();?