2012-02-02 66 views
1

我想要一些信息來準備第一個servlet程序。爲什麼要在servlet中使用public修飾符

任何人都可以讓我知道爲什麼我們聲明用戶定義的類在servlet的公共以及init()service()destroy()也爲公衆。

我們可以使用其他訪問修飾符,那麼它們是哪些?爲什麼只使用公共修飾符?

回答

2

我們必須聲明servlet類和方法init,service和destroy是公有的,因爲服務器應該能夠訪問它們。這與使用訪問修飾符public聲明的主要方法非常相似。

另一個原因是在HttpServletGenericServlet類中,這三種方法是公共的,它們的訪問級別在繼承類中不能減少。

+1

謝謝。 ..但爲什麼只有公衆和它不能得到保護.. – user460920 2012-02-02 19:02:32

+0

只有公共成員可以被外界訪問。受保護的成員只能在子類中訪問。 – 2012-02-02 19:06:13

+0

@DwB你說得對。只有服務方式是公開的。我們可以保護其他方法。在這個問題中,只有三個方法被問到應該公開的init,service和destroy。請再檢查一次。 – 2012-02-02 19:32:11

1

它們也可以被保護。看看HttpServlet - 所有這些方法在那裏都受到保護。這個servlet的入口點是service(..)方法 - 它是唯一一個可能需要公開的方法(但我不知道這樣的要求 - 容器可以用反射調用服務方法)

+0

但是,如果你使用反射,那麼作用域並不重要。右? – Cratylus 2012-02-02 19:09:55

+0

是的。所以他們可以得到保護。他們通常不是,因爲你通常不需要他們。 – Bozho 2012-02-02 19:10:49

相關問題