
ちょっとした疑問なんですが、
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class test extends HttpServlet{
HttpServletクラスを継承していて、
上ではjavax.servlet.http.*;をインポートしていますが、HttpServletクラスは、javax.servlet.http.HttpServletですよね?
importでクラスを使うのと、extendsでクラスを扱うのとはどう違うのでしょうか?
その違いがわかなくてどうも納得いきません。
どなたか教えていただけないでしょうか?
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.1の補足ですが
kintaro987さんはimportとextendが一緒だと思われているませんか?
importっていうのはNo.1で書きましたが使用クラスの宣言ですので、importで宣言されたクラスを使用するにはインスタンス生成しなければなりません。
extend(継承)ですが親クラスのメソッドをインスタンス生成無しで使用できる(厳密には違いますがわかりやすく言うと)ということですね。
java.io.FileWriter fw = new java.io.FileWriter("C:\test.text");
のことですがimportでjava.ioパッケージを指定しないときの方法ですね。
///importあり///////////////////////////////////////////
import java.io.*;
public class Sample1{
…
public void fileWrite{
FileWriter fw = new FileWriter("C:\test.text");
}
}
///importなし////////////////////////////////////////////
public class Sample1{
…
public void fileWrite{
java.io.FileWriter fw = new java.io.FileWriter("C:\test.text");
}
}
上と下が一緒の意味ってことで。
参考URL:http://park.ruru.ne.jp/ando/work/who/html/cc.html
No.2
- 回答日時:
「ちょっとした疑問」と言われていますが、Javaの根幹に関わることですね。
それが分かっていないというのは、他人事ながら少々心配です。
まず、importはそのクラス(種類)を使いますよという宣言です。例えば
import myclass.Kanrengaisha;
class Eigyoubuin {
・・・
}
となっていたら、Eigyoubuinという種類に関するアクションに関して、
myclass.Kanrengaishaという種類を使いますということです。
ここでKanrengaishaクラスと言ったら、それは、myclass.Kanrengaishaクラスを意味します。
ただし、Eigyoubuinという種類とKanrengaishaという種類はあくまで別物ですので、
Eigyoubuinという種類ではKanrengaishaという種類に属する道具(メソッド)をそのまま使うことはできません。
Kanrengaishaという種類の人(インスタンス)にお願いしてやってもらうことになります。
これに対し、extendsはクラス(種類)を拡張することを意味します。
class Eigyoubuin extends Shain {
・・・
}
となっていたら、Eigyoubuinという種類はShainという種類を拡張したものです。
言い換えると、Shainの一種なのです。
ですので、Shainという種類に属する道具(メソッド)は、許可されていれば(private宣言されていなければ)
そのまま使うことができます。
・・・あまり分かりやすい例えじゃなかったかな。
No.1
- 回答日時:
importとextendはまったく別物です。
importではクラスを使うのではなくパッケージ(クラス)指定の際に使用します。
この場合のHttpServletをextendしている際に
import javax.servlet.http.*;の記述がないとすると
public class test extends javax.servlet.http.HttpServlet
というように[パッケージ名.クラス名]という指定をしなければなりません。
またインポートの記述がないとクラスを使用する際にパッケージ名の指定までしなければいけません。
例:java.io.FileWriter fw = new java.io.FileWriter("C:\test.text");
java.langパッケージは省略可能です。(StringとかObjectクラスですね。)
この回答への補足
どうもありがとうございます。
すみません、okure_donchanの例で、
java.io.FileWriter fw = new java.io.FileWriter("C:\test.text");
とありますが、ioパッケージは継承しないでimportだけで、FilWriterと使えるのはなぜでしょう?
HttpServletの話でいけば継承しないとインポートだけではjava.io.FileWriterとなってしまうということになりますよね?
こんなバカな私ですが、もう一度教えていただければ幸いです。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
- IT・エンジニアリング プログラマの仕事内容 4 2022/08/13 00:34
- その他(プログラミング・Web制作) tkinterのimport文の書き方 2 2022/10/14 21:17
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
範囲外の数値を代入したらエラ...
-
クラス間でのデータ参照
-
C#でほかのファイルにある自作...
-
関数内の変数に<summary>コメン...
-
違うクラスからの変数の共有化
-
型Containerのメソッドadd(S...
-
ClassLoader.getSystemResource...
-
C#にて別クラスの関数を使いたい
-
アップキャスト、ダウンキャス...
-
継承したクラス側のクラス名の取得
-
C++でfriendクラスにしているの...
-
c++,ある関数のクラスから別の...
-
a href="..." とServlet
-
dllエクスポート時のdeclspec(d...
-
ひとつのファイルにクラスは1つ?
-
import と extends について
-
Tomcatのpropertiesファイルの...
-
フォームBeanのメソッド内で変...
-
java-別クラスの変数の使い方を...
-
無名パッケージからのインポート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#でほかのファイルにある自作...
-
C#にて別クラスの関数を使いたい
-
クラス間でのデータ参照
-
import と extends について
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#のクラスライブラリでメッセ...
-
C++でfriendクラスにしているの...
-
ひとつのファイルにクラスは1つ?
-
無名パッケージからのインポート
-
継承したクラス側のクラス名の取得
-
visual studioのデザイナ画面で...
-
a href="..." とServlet
-
Java リフレクションについて
-
構造 他のクラスの構造体を別...
-
ASP Pageの孫継承のPage_Load
-
別ファイルのclassの読み込みに...
-
オーバーロードしたメンバ関数...
-
実行可能jarファイルのファイル...
おすすめ情報