プロが教える店舗&オフィスのセキュリティ対策術

JAVAについて教えて下さい。


ServletContext application = getServletContext();

の成り立ちの意味なのですが、newがなぜないのか教えて下さい。

~自身の考え~
(1)サーブレットコンテキストというクラスをインスタンス化して
(サーブレットコンテキスト 変数A = new サーブレットコンテキスト();)
    ↑                         ↑
  クラス                       クラス

(2)変数Aドットメソッド()によって、代入変数Bを作り上げる
(サーブレットコンテキスト 代入変数B = 変数A . メソッド();)

(3)のはずが、上記の式にはnewがありません。

なんで??
~~


~疑問点~
もしかしたらHttpServletでimportしているからそこでnewインスタンス化宣言している?
だとするならどのような式になっているのでしょうか。



もしくはメソッドのF3キーとして上位をたどったときに出てきた
public abstract class GenericServlet
implements Servlet, ServletConfig, Serializable
{
public ServletContext getServletContext()
{
return getServletConfig().getServletContext();
}


として抽象クラスが出てきましたが、どこにもnew実体化していません。
よろしくお願いいたします。

A 回答 (2件)

どこかで作られたインスタンスを受け取っています。



getServletContext() の呼び出し先をたどったみたいですが、
さらにそこで別の呼び出しをしているので、そのもっと先です。
そもそも、呼び出し関係をたどっているだけでは見つかりません。
newしているところは簡単には見つからないでしょう。

こういうときは、インスタンスを受け取れることだけ理解すれば十分です。
それより、「インスタンスを受け取れることだけ理解すれば十分」を実現している仕掛けのような、
基本的なところを勉強する方が重要です。

自分でnewせず、他のどこかで作られたインスタンスを受け取ることもあります。
プログラムの書き方には、ずっと多様なパターンがあります。

なお、import とインスタンス化は関係ありません。
    • good
    • 0
この回答へのお礼

newしているところは簡単には見つからないものなのですね。
回答ありがとうございました。基本的な知識の補充に努めます。
ありがとうござました。

お礼日時:2014/10/18 18:17

staticについて調べてみよう。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
staticについえ学習を深めてみます。

お礼日時:2014/10/18 18:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A