java的servlet为什么不需要实例化就可以直接调用方法?

如图,为什么可以直接调用,而不需要实例化,他又不是静态方法

java的servlet的实例化与销毁都是由web容器控制的.
一般在你第一次访问这个servlet会被创建.
另外你图片中写的是静态方法里调私有方法, 自然报错, 因为静态方法执行时, 不一定创建了类.
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-04
这个performTask方法是当前类内部定义的成员方法,是可以直接调用的,相当于
this.performTask(....)
this是可以省略不写的追问

为什么我这样写却不行

追答

你是在main方法里调用啊,这就不行了啊
因为main方法是static的static的方法里只能直接调用static的方法,不能直接调用非static修饰的方法
你的test()方法不是static的,所以报错

本回答被提问者和网友采纳

java的servlet为什么不需要实例化就可以直接调用方法?
java的servlet的实例化与销毁都是由web容器控制的.一般在你第一次访问这个servlet会被创建.另外你图片中写的是静态方法里调私有方法, 自然报错, 因为静态方法执行时, 不一定创建了类.

Java中,类不实例化就能调用方法吗?
Java中,类不实例化是可以调用方法的,这种方法叫做静态方法,也叫做类方法。类的静态方法不属于类的对象,而属于类本身,在该类首次使用的时候加载到系统的方法区中,一般可以使用类名直接调用类的静态方法,而不需要实例化对象。由于静态方法并不属于对象,因此在静态方法中无法操作类的普通成员变量,只能...

java中的动态方法是需要实例化才能调用的。那为什么,变量也能调用方法...
修正下你说的问题,首先,一个对下没有实实例化时,可以调用其静态方法或静态变量(也叫类变量),所谓静态变量或静态方法就是使用static修士过后的变量或方法。否则编译器都通不过的。但是对于实例变量或实例方法,则必须实例化对象之后才能通过对象调用。String a=null,告诉解析器字符串a是null的,JVM...

servlet是单例的吗?
所以,告诉你的是Servlet并不是单例,只是容器让它只实例化一次,变现出来的是单例的效果而已。但需要注意的是,Servlet是web容器来控制实例化的,并不是你自己用你编写的代码来实例化,即使你自己编写代码实例化你的servlet,Web服务器也不会直接调用你的实例化的Servlet对象的。

java。既然接口中的方法是未实现的,为何调用时直接传参数就能用。_百度...
collection不可以实例化啊。某个类实现了collection接口,当然就可以实例化,然后调用方法add了。实现添加的过程,在实现类里啊。你是说的这种?Collection mycoll=new HashSet();mycoll.add("China");这个是向上转型的问题,实际调用的还是hashset的方法。

为什么java中public的方法不能被调用而static可以?
你的方法是在一个类里面的,要调用需要实例化对象,再通过对象调用方法,而static是静态意思,所以方法生成不受类实例影响,直接初始化,就可以直接调用了,简单理解就是,方法在类里面必须要先new一下生成这类,里面的方法才会激活,这样才能调用,static修饰后代码会先运行静态修饰的,所以方法就已经提前...

java 为什么不能手动new servlet
servlet是单例的。不能new是因为不需要。这个对象的创建是在服务器如tomcat中完成的。在人的眼里他是被动等待请求的所以不用new。所以可以创建servlet的服务器又叫servlet容器

java对象先调用其方法后再实例化和先实例化后在调用方法的区别?求网友...
对象要先实例化才能调用其中的方法,不然引用值是空的,里面没有任何方法,报空指针异常是理所当然的.打个比方, 你管凳子叫a, 但是你没有说明a是那张凳子, 你想坐凳子a, 就不知道坐哪, 就报空指针异常了

Java中 fields 和method如何区分?
zaza()是方法,lala是属性,区别有没有(),仅此而已,,static是静态方法的编制,用法就是类不用实例化直接调用这个这个类里面的方法,譬如,Bar.zaza(),就是因为zaza是静态方法,直接调用,而如果zaza不是静态方法,你说的这些先实例化,就是Bar x=new Bar();x.zaza();...

java一个类怎么调用另外一个类的主方法
1、与一般调用没什么差别,直接new 出来另一个类的对象,调用方法即可。B里面代码 public class B {public static void main (String args[]) {System.out.println("this is B");} } A里面代码 public static void main(String args[]){ B b=new B(); b.main(args);}运行A效果:...

相似回答