是否将参数传递给与创建对象相同的方法?

时间:2010-02-15 22:18:33

标签: java

我正在学习Servlets和JSP。我想知道“doGet”和其他可能被覆盖的方法。 “doGet”需要2个参数 - HTTPServletRequest请求和HTTPServletResponse响应。这是我的问题:请求和响应对象在方法体中使用,但我没有看到任何对象创建,例如request = new HTTPServletRequest。这些对象是否在别处创建,在超类?这只是一个Java问题,因为我经常对Applet也有疑问,即Graphics g对象被传递给“paint”方法,但我没有看到它在任何地方创建?

GF

5 个答案:

答案 0 :(得分:2)

通常,在任何编程语言中,当使用对象的实例(或任何参数)调用方法时,是的,那些对象是在某处创建的

在大多数情况下,您不必担心 ,只是他们在您的功能中处理它们时。

尽管回到你的问题,虽然某些情况可能是某个对象是通过非传统方式创建的(取决于技术堆栈),但如果你有参考的话,你可以放心。一个在你编写的方法中传递给你的对象,然后它是在调用堆栈中的某个地方使用传统方式创建的(如果你有多个线程,则使用另一个方法创建)。

对于Java,这意味着有人在某个时刻调用了new ...,并将其提供给方法的调用站点,以便将其作为参数传递。

答案 1 :(得分:2)

在您给出的两个示例中,servlet和applet中,代码在容器内运行。 Tomcat是servlet的容器​​,这意味着容器提供了某些功能。在这种情况下,容器将创建请求和响应对象,并将它传递给您的servlet。

如果您编写一个单独运行的普通Java程序,那么您负责创建所有对象。

答案 2 :(得分:1)

它由Web服务器(例如tomcat)创建,并使用此参数调用您的servlet

答案 3 :(得分:0)

在呼叫站点创建对象。即调用该方法的人负责创建他/她作为参数传递给方法的对象(当然,除非他传递已经存在的对象,但这些对象之前也曾在某处创建过。)

答案 4 :(得分:0)

servlet中的所有方法都由servlet容器调用,例如tomcat