Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在servlet中使用公共修饰符_Java_Servlets - Fatal编程技术网

Java 为什么在servlet中使用公共修饰符

Java 为什么在servlet中使用公共修饰符,java,servlets,Java,Servlets,我想要一些信息来准备第一个servlet程序 有人能告诉我为什么我们在servlet中将userdefined类声明为public,以及将init()、service()和destroy()也声明为public 我们可以使用其他访问修饰符吗?它们是什么?为什么只使用公共修饰符?我们必须将servlet类和方法init、service和destroy声明为公共的,因为服务器应该能够访问它们。这与使用访问修饰符public声明主方法非常相似 另一个原因是在HttpServlet和GenericSer

我想要一些信息来准备第一个servlet程序

有人能告诉我为什么我们在servlet中将userdefined类声明为public,以及将
init()
service()
destroy()也声明为public


我们可以使用其他访问修饰符吗?它们是什么?为什么只使用公共修饰符?

我们必须将servlet类和方法init、service和destroy声明为公共的,因为服务器应该能够访问它们。这与使用访问修饰符public声明主方法非常相似


另一个原因是在
HttpServlet
GenericServlet
类中,这三种方法是公共的,在继承类中不能降低它们的访问级别。

它们也可以得到保护。看看
HttpServlet
——所有这些方法都在那里受到保护。servlet的入口点是
服务(…)
方法-它是唯一可能需要公开的方法(但我不知道有这样的要求-容器可以通过反射调用服务方法)

只有公开成员才能被外部世界访问。受保护的成员只能在子类中访问。@DwB您说得对。只有服务方法是公共的。我们可以保护其他方法。在这个问题中,只询问了init、service和destroy三个应该是公共的方法。请再次检查。但是如果您使用反射,那么范围实际上并不重要。对吗?是的。所以他们可以得到保护。它们通常不是,因为你通常不需要它们。