Java

静的内部クラス

内部クラスに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を持っ…

オーバーライド

オーバーライドについては、特にキーワード無く、クラスを継承して、メソッドを再定義するだけで有効になる・・・。BaseClassの、outputメソッドは、iとstrを出力する・・・。DerivedClassの、outputは、親クラスBaseClassのoutputでiとstrを出力した後、fと…

superキーワード

superは親クラスを指すキーワードで、これを使って親クラスのメンバを明示的に呼び出すことができる・・・。前回同様、BaseClassを用意し、BaseClassの派生クラスDerivedClassを定義・・・。superに引数を与えているが、このsuperは親クラスのコンストラクタ…

extendsによる継承

クラスの継承には、extendsを使う・・・。まずBaseClass.javaに、整数値iと文字列strを持つ基底クラスBaseClassを用意する・・・。次にDerivedClass.javaに、BaseClassの派生クラスDerivedClassを定義する・・・。継承するには、このように派生クラスの後に…

thisキーワード

クラス内でthisを使うと、それはそのクラスオブジェクトインスタンス自身の参照を指す・・・。 いろいろ使い方はあるが、例えば、メンバフィールドと引数を区別するのに使う・・・。Class1.javaで、メンバフィールドはint型のiとStringクラスのstrである・・…

オーバーロード

Javaでも、C++などと同様に、同じメソッド名で引数の違うオーバーロードメソッドを定義できる・・・。Class1.javaで、とコンストラクタが、引数なし、引数(int n, String s)、の2種類ある・・・。 すでにコンストラクタはオーバーロードされている・・・。そ…

配列

配列を使ってみる・・・。MainClass.javaにて、要素数5のint型配列を生成・・・。 ただ配列を宣言しただけでは、メモリは確保されないので、new int[5]と指定する・・・。 (aryNumbersはint[](intの配列型)の参照変数と考える・・・。)aryNumbersの要素に適…