2007-02-01から1ヶ月間の記事一覧

java.lang.System

java.lang.Systemクラスはローレベルな入出力などを提供するユーティリティクラスです。 今までオマジナイとして使用してきたprintln()メソッドもSystemクラスから使用してきました。Systemクラスはインスタンスを作ることができず、メソッドは全てクラスメ…

java.util.Iterator

java.util.IteratorはArrayListなどのコレクションに対して繰り返し処理を行う為のインターフェイスです。 Iteratorを使うことで、様々な集合に対する繰り返し処理を共通のインターフェイスで実装できます。ArrayListに対してiterator()メソッドを呼び出すと…

java.util.ArrayList

ArrayListクラスはJavaで配列を扱う為のクラスです。 配列には任意のオブジェクトを含める事が可能で、ランダムアクセスや順次アクセスなどの様々な機能を提供します。 ArrayListクラスの最も便利な点の1つは、配列のサイズが自動的に拡張されていく為、作…

java.util.Date

Dateクラスは日時を表す基本的なクラスで、時間をミリ秒の精度で表す事ができます。 かつてはDateクラスで年月日などを解釈する機能を持っていましたが、現在はそれらの機能はCalendarクラスを使用することになっています。Dateクラスで持つlong型の値はエポ…

java.lang.StringBuffer

StringBufferクラスは可変文字列を扱うクラスで、様々な情報を元に文字列(String)を生成する時に使われます。 コンストラクタ StringBufferクラスの主なコンストラクタは次の通りです。 コンストラクタ 概要 StringBuffer() 文字を持たず、初期容量が 16 …

java.lang.String

Javaには文字列を扱うクラスが幾つかありますが、Stringクラスはその中でも最も基本的なクラスです。 アプリケーションを作成する場合の使用頻度も最も高いことも間違いありません。 Stringクラスは基本ですから充分に理解しておく必要があります。 Unicode…

クラスライブラリ

Javaにはクラスライブラリとは様々な機能を持ったプログラム(クラス)をまとめたクラスライブラリが用意されています。 文字列操作・ファイル入出力・GUIなど多肢におよび、その全容を理解することは到底できません。 それらは必要な時に見つけて使用するこ…

クラスメソッドとクラス変数

これまで、メソッドと変数は全てクラスに属し、インスタンスを生成してから使用するものと学んできました。 クラスメソッドとクラス変数はインスタンスを生成せずに使うことができます。 クラスメソッド クラスメソッドはstaticメソッド(静的メソッド)とも…

インターフェイス

抽象クラスは抽象メソッドと呼ばれる定義だけのメソッド(機能)を定義することが可能なクラスでした。 インターフェイスはこの抽象クラスをさらに抽象化し、publicな抽象メソッドのみで構成された抽象クラスと言えます。 また、インスタンスを作ることがで…

インターフェイス

んー、ちと苦しい。 インターフェイスをしっかりと説明するのって難しいですorz 後で修正する可能性大ということで仮版(コメント歓迎!)。

抽象クラス

これまで継承を使ってクラスを拡張していくことを学んできましたが、逆に考えれば共通する項目(インスタンス変数、メソッド)を抽出して行けば効率よくクラスを構成できると考える事ができます。 本・CDなど幾つかの種類の商品を扱うオンライン ストアを構…

コンストラクタ

コンストラクタとはクラスのインスタンスが生成される時に呼び出される特殊なメソッドでした。 JVMはコンストラクタが呼び出されるタイミングでヒープ領域にインスタンスを生成します。 この時、メソッド領域にあるクラス情報からどんなインスタンス変数があ…

オーバーロード

メソッドを定義していくと引数は異なりますが似たようなメソッドを作りたい状況が発生します。 プログラミング言語によっては同じ名前のメソッドを定義することは禁止されていたり推奨されていないこともあります。 ですが、Javaでは引数や戻り値が異なれば…

メソッド

これまで何気なく使ってきたメソッドに関して詳しく見ていきましょう。 関数 関数とは元は数学の用語であり、Wikipediaによれば次のように説明されています。 関数(かんすう、function)とは、ある変数に依存して決まる値あるいはその対応を表す式のことで…

オーバーライド

機能を拡張することはクラスを継承することで実現できましたが、既存のメソッドの振る舞いを変更したい場合もあります。 そのような時、メソッドのオーバーライド機能を使うことでスーパークラス(基底クラス)に変更を加えずにメソッドの振る舞いを変更する…

Javaは型(type)を重視した言語仕様となっています。 これは様々なクラスのインスタンスを上手に扱う為に必要な機能です。 変数の型 変数の型(type)はデータの種類を表しました。 例えば本(Book)というクラスがあるならば本(Book)という型の変数を定…

継承

継承はあるクラスを拡張して新たなクラスを作る機能です。 継承は主に既存クラスの拡張や変更などに用いられる機能ですが、オブジェクト指向プログラミングを学ぶ上で最も基本的な概念となります。クラスFooがある時、継承を利用してクラスBarを作るにはexte…

アクセスレベル

Javaの重要な仕組みの1つにアクセスレベルがあります。 アクセスレベルとは各クラスの独立性を高め再利用性と保守性を高める為に情報を可能な限りブラックボックス化する仕組みです。 メモリアクセスの功罪 C言語では常にメモリ上のデータを意識していまし…

JVMのメモリ管理

ここで頭の中を整理する為にJVMのメモリ構造に関して触れておきます。 JVMの管理するメモリ領域には大きく2つの区画があり、それぞれスタック・ヒープエリアと呼ばれます。 ヒープ ヒープエリアは主にインスタンスを管理するメモリ領域です。 ヒープエリア…

制御構文

全てのアルゴリズムは可読性はともかくとしても条件分岐文と繰り返し文を使うことで実装できます。 Javaでは条件分岐文としてはif文とswitch文を、繰り返し文としてはfor文とwhile文をサポートしています。ここでは今後の学習に必要な範囲で解説します。 こ…

プリミティブ型変数

C言語をはじめとするほとんどの言語で整数の四則演算や比較演算を行うことができるように、Javaでも整数等の四則演算や比較演算を行うことができます。 プリミティブ型 プリミティブ型(基本型)とは、整数型(int)や浮動小数型(float)などのように基本的な…

Javaの文法

それではJavaによるプログラミングを勉強していきますが、幾つかの基礎知識を学ぶところから始めます。 予約語 どのようなプログラミング言語でも予約語と呼ばれる特別な単語があります。 予約語とはシステムで予約されている単語のことで、言語仕様の中で特…

参照型変数

Javaでは全てのデータやメソッドはクラスに属し、原則としてインスタンスを生成して利用すると学びました。 では、インスタンスは作成された後はどうなるのでしょう? 参照 もし、同じメソッドを何度も使いたい場合でもその都度インスタンスを生成しなければ…

プログラムの実行

作成したプログラムを実行するには、クラスを右クリックして[実行]-[Java アプリケーション]を選択します。 実行結果は、コンソールビューに表示されます。 繰り返して同じプログラムを実行するには、メニュー下部の実行アイコンをクリックします。 尚、Java…

インスタンス

C言語ではmain関数ありきで、プログラムはmain関数から始まり、main関数の中で変数を宣言しながら様々な関数を呼び出しました。 つまり、プログラムは関数を中心に構成されていたと言えます。これに対してJavaは、クラスを中心にプログラムを構成します。 全…

コンパイル

ナビゲーターで確認していると、特にコンパイルを行っていないのにクラスファイルが作成されていると不思議に思ったかもしれません。 実はEclipseでは、ソースファイルのコンパイルは自動的に行ってくれます。 デフォルトの設定ではファイルを保存するたびに…

パッケージの作成

空のパッケージを作成するということは、ファイルシステム上ではフォルダを作成することに当たります。 実際のクラスファイル(ソースファイル)が置かれるまではフォルダとの違いはありません。Eclipseでパッケージを作成するには、ソースフォルダで右クリ…

クラス

Javaなどのオブジェクト指向言語で最も基本的な概念はクラスです。 これを一言で説明するのは難しいので、まずはクラスという概念が生まれた経緯から紐解いていきます。 クラス クラスはJavaを初めとするオブジェクト指向言語で、プログラムを構成する最小の…

パッケージエクスプローラーとナビゲータービュー

Eclipseでは幾つかのウィンドウが開いていますが、これらのウィンドウはビューと呼ばれます。 現在開いているビューで右端にあるビューはパッケージエクスプローラーと呼ばれるJavaを開発する時に最も使用頻度の高いビューです。 このビューは主にソースフォ…

クラスの作成

それでは、example01.Example01クラスを作成してみましょう。 ソースフォルダのexample01パッケージで右クリックしてメニューを表示し、[新規]-[クラス]を選択します。次に「新規Javaクラス」で名前にクラス名「Example01」を入力して、終了を押します。 こ…