Java

ActionListener

ActionListenerは、ボタンやタイマーなどのイベントを受け取るインタフェース・・・。ActionListener (Java Platform SE 6)これでボタンが押された時に、ボタンに表示されているラベル名を"button"から"Clicked!"に変える・・・。button.addActionListenerに…

Button

ボタンを配置するにはButtonクラスを使う・・・。Button (Java Platform SE 6)これをフレームに配置していく・・・。ただし、FrameクラスのデフォルトレイアウトはBorderLayoutというもので、このままでは任意の位置とサイズでボタンを配置できない・・・。 …

WindowAdapter

WindowListenerインタフェースを実装したクラスは、WindowListenerに定義されているメソッドをすべて定義しないといけない・・・。 しかし、ウィンドウを閉じる処理だけなら、windowClosingとwindowClosedだけオーバーライドしておけば十分・・・。WindowAda…

WindowListener

WindowListenerは、ウィンドウに関するイベントを受け取るインタフェース・・・。WindowListener (Java Platform SE 6)Frameの項ではウィンドウを閉じることができなかったが、これの派生クラスを作ってFrameオブジェクトに登録することで、閉じてアプリケー…

匿名クラス

メソッド内で一時的に定義されたクラスの中でも、クラス名を持たないものを匿名クラスという・・・。このようなBaseClassを定義しておく・・・。BaseClassオブジェクトインスタンスbaseからmethodBaseClassを呼べば、"methodBaseClass"が出力されるだろう・…

ローカルクラス

クラスのメンバメソッド内で定義された一時的なクラスをローカルクラスという・・・。OuterClassのメンバフィールドouterInt、メンバメソッドmethodOuterClassを用意・・・。methodOuterClass内でローカルフィールドlocalIntと、ローカルクラスLocalClassを…

静的内部クラス

内部クラスにstaticを付けると、外部クラスのインスタンスから内部クラスにはアクセスできないが、外部クラスからスタティックメンバとして内部クラスにアクセスできる・・・。こうすると、OuterClassのインスタンス生成は要らなくなるので、OuterClass.Stat…

メンバ内部クラス

クラス内で定義できるクラスを内部クラスという・・・。 内部クラスはいろいろなカタチのものが定義できるが、今回はクラスのメンバとして定義できる内部クラスを扱う・・・。OuterClassには、メンバとしてmethodOuterClass、callInnerClassMethodの2つのメ…

Frame

Frameは、JavaのGUIコンポーネントAWTにあるウィンドウクラス・・・。Frame (Java Platform SE 6)これでウィンドウを表示してみる・・・。MainClass.javaを追加・・・。Frameを使うには、java.awt.Frameをインポートする必要がある・・・。mainメソッドでFra…

FileWriter

FileWriterは、ファイルへの文字出力ストリームクラス・・・。FileWriter (Java Platform SE 6)Writerクラスの派生で、writeで出力、コンストラクタにFileオブジェクトを指定できる・・・。FileWriterオブジェクトwriterだけ用意・・・。Fileのexistメソッド…

FileReader

FileReaderは、ファイルからの文字入力ストリームクラス・・・。FileReader (Java Platform SE 6)Readerクラスの派生クラスで、親クラス同様readメソッドで文字列を読み込める・・・。 FileReaderもFileオブジェクトを受け取ることができる・・・。charの配…

FileOutputStream

FileOutputStreamは、ファイルへのバイト出力ストリームクラス・・・。FileOutputStream (Java Platform SE 6)FileOutputStreamもFileオブジェクトを指定でき、writeで出力できる・・・。bufとFileOutputStreamのstreamを用意・・・。bufに'A'から'E'までの…

FileInputStream

FileInputStreamは、ファイルからのバイト入力ストリームクラス・・・。FileInputStream (Java Platform SE 6)親クラスのInputStreamでreadできるので、当然こちらでもreadできる・・・。 FileInputStreamはいくつかのコンストラクタがあり、ファイル名のみ…

Writer

Writerは、文字出力ストリームを扱う基底クラス・・・。Writer (Java Platform SE 6)OutputStreamがバイト出力ストリームなのに対し、こちらは文字出力ストリーム・・・。これを使って、ファイルへのテキスト書き込みをしていく・・・。Writer、その派生クラ…

Reader

Readerは、文字入力ストリームを扱う基底クラス・・・。Reader (Java Platform SE 6)これまではバイトストリームとしてファイルを開いていたが、ここでは文字ストリームとしてファイルを開く・・・。 Readerとその派生クラスで、文字列を読み込んで出力する…

OutputStream.write

OutputStreamのwriteには、指定の位置から指定の文字数だけ出力するオーバーロードメソッドがある・・・。OutputStream (Java Platform SE 6)これで0から数えて1番目から3文字出力してみる・・・。bufに'A', 'B', 'C', 'D', 'E'をそれぞれセット・・・。File…

OutputStream

OutputStreamは、バイト出力ストリームを扱う基底クラス・・・。OutputStream (Java Platform SE 6)OutputStreamとその派生クラスを使って、バイト列をファイルに書き込む・・・。バイト出力の基本クラスOutputStreamと、ファイル用派生クラスFileOutputStre…

File

Fileは、ファイルやディレクトリを扱うクラス・・・。File (Java Platform SE 6)指定されたファイルやディレクトリのさまざまな情報を取得、設定、操作できる・・・。今回はとあるディレクトリの下のとあるファイルが存在するかを確認する・・・。dirディレ…

System.in

Systemのinオブジェクトフィールドは、標準入力ストリームオブジェクトで、いくつかの標準入力機能を持っている・・・。System (Java Platform SE 6)ベースはInputStreamなので、readメソッドで入力を読み取る・・・。 (System.outに比べると、System.inはち…

InputStream.read

InputStreamのreadメソッドは、バイトストリームからデータを読み込むメソッド・・・。InputStream (Java Platform SE 6)いくつかオーバーロードメソッドがあり、前回のように1バイトずつではなく、byte配列にバイトデータを一気に読み込むこともできる・・…

InputStream

InputStreamは、バイト入力ストリームを扱う基底クラス・・・。InputStream (Java Platform SE 6)InputStreamとその派生クラスを使って、バイト値を読み込んで出力してみる・・・。InputStreamと、その派生クラスFileInputStream(ファイルのバイト入力ストリ…

System.out

Systemのoutオブジェクトフィールドは、標準出力ストリームオブジェクトで、さまざまな標準出力の機能を持っている・・・。System (Java Platform SE 6)out.printは、"ABC"を標準出力するが、改行はしない・・・。out.printlnは、"XYZ"を標準出力し、改行も…

PrintStream.println

PrintStreamのprintlnメソッドは、指定されたデータを末尾に改行を付けてストリームに出力するメソッド・・・。PrintStream (Java Platform SE 6)こちらは最後に改行を付けてくれるので、1行に繋がったりはせず、1行ごとに出力できる・・・。test.txtに、10,…

PrintStream.print

PrintStreamのprintメソッドは、指定されたデータをストリームに出力するメソッド・・・。PrintStream (Java Platform SE 6)printは指定されたさまざまな型のデータを出力できるよう、型ごとにオーバーロードされている・・・。 上記のようにbooleanでさえ受…

PrintStream

PrintStreamは、指定された他の出力ストリームにさまざまなデータの出力機能を付加するクラス・・・。PrintStream (Java Platform SE 6)System.outはこのクラスのフィールドオブジェクトなので、このクラスをまず使ってみよう・・・。今回はPrintStreamとは…

System

Systemクラスは、Javaシステムの基本的な機能を持っているクラス・・・。System (Java Platform SE 6)パッケージ名はjava.lang.Systemだが、デフォルトで参照されているのでimport構文は不要・・・。よく使うフィールドやメソッドをいくつか紹介・・・。とそ…

import構文

標準の言語仕様や、自作クラスに、使いたい機能がなければ、Javaのクラスライブラリを参照する必要がある・・・。 Javaのクラスライブラリを参照するには、プログラムの中でパッケージ名すべてを含めたクラス名を書くか、import構文であらかじめ使いたいパッ…

try-catchによる例外処理

C++と同じく、Javaもtry-catchで例外処理を記述できる・・・。例外が起きそうな場所をtryブロックで囲む・・・。 iは0÷0の値を受け取るつもりだが、そもそも0で除算は数学的な例外である・・・。例外が起きたらcatchブロックに飛ぶ・・・。 引数にはExceptio…

implementsによるインターフェイスの実装

Javaでは、2つ以上の親クラスから継承する多重継承という方法が使えない・・・。 そこで、インターフェイスというメソッドの宣言のみのクラスの様なものを使う・・・。インターフェイスはクラスとは違い、複数指定することができる・・・。 そして、インター…

抽象クラス

クラス定義の頭にabstractキーワードを付けることで、不完全な状態でクラスを定義できる・・・。 抽象クラスといって、クラスの概要(メソッドの宣言など)だけを定義して、派生クラスで具体的な実装を書く時などに使う・・・。こんな風に、outputとsetを持っ…