トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Javaの基本:クラスとオブジェクト

 基本的な用語

オブジェクト
オブジェクト指向言語におけるオブジェクトとは属性(データ)、動作(振舞い、操作)、他のオブジェクトとの関係(継承など)を持つ、プログラミングにおける基本的な単位である。現実世界の"もの"を抽象化し、ソフトウェア開発に応用したものといえる。
クラス
クラスはオブジェクトの設計図のようなもの。インスタンスはクラスに基づいて作成される
インスタンス
インスタンスはクラスに基づいてプログラム実行時に作成されるオブジェクトのこと。
メソッド
クラスにおいてオブジェクトがどのように動作するのか、どのように操作可能かを定義している部分。

 クラスとは

プログラム実行時には、指定したクラスの定義に基づいて、mainメソッドが実行される。mainメソッドだけで終わるようなプログラムではインスタンス(実行時に作成されたクラス定義に基づくオブジェクト)は必ずしも作成されずに、実行される。

  • クラスの基本的な記述方法
<修飾子> class <クラス名> {
}
  • classキーワード
    • クラスであることを示すキーワード。
  • クラス名
    • クラス名は基本的に単語の最初の一文字を大文字にそれ以降を小文字にし、単語間のスペースをとった形にする
    • 例)最初のサンプル → First sample → FirstSample=クラス名
  • 1ファイル1クラス
    • インナークラスなどを除いて原則は1ファイルに1クラスとなっている。
    • ファイル名は"<クラス名>.java"となる

最低限のクラス

  • コンパイルはできるが、mainメソッド(public static void main(String[] args)なメソッド)がないため、単体での実行はできない。
class Minimal{
}
  • Javaのプログラムには原則的に一つ以上のmainメソッドが存在し、Java仮想マシンに渡されたクラスのmainメソッドが自動的に実行される。

 ソースコードの記述(法)

命令の記述(法)

  • Javaでは以下のように<命令>;(セミコロン)の形で命令を記述する。セミコロンで区切られていれば、改行せずに一行に複数の命令を書くこともできるが、読みやすさのため、1行1命令とする
<命令>;
  • 例)ハローと表示する場合
System.out.println("ハロー");

プログラムのインデント

  • プログラムの読みやすさのためにブロック("{"から"}"まで)内はインデント(字下げ)を行うことが一般的である。テキストエディタ等でインデントを行う場合にはTABキーやスペースキーで行うことになるが、Eclipseではブロック内は自動的にインデントされる。
  • Eclipseでインデントがおかしくなった場合にはSHIFT+CTRL+Fを押すと自動フォーマットされる。

最低限のクラスをインスタンス化

  • 最低限のクラスをJava仮想マシン内でインスタンス化する
newキーワード
クラスをインスタンス化するための命令
  • クラスをインスタンス化するだけのプログラム。クラスをインスタンス化するが、表面上は何もしないまま終わる。
1
2
3
4
5
6
package sample;
class Minimal {
    public static void main(String[] args) {
        new Minimal();
    }
}

クラスのコンストラクタ

コンストラクタ
クラスがインスタンス化されるときに実行されるコードのこと。Javaのクラスの場合にはクラス名と同じ名前となる

1
2
3
4
5
6
7
8
9
package sample;
class Minimal {
    Minimal() {
        System.out.println("コンストラクタが実行されました");
    }
    public static void main(String[] args) {
        Minimal minimal = new Minimal();
    }
}

 課題

  1. ロボットの「アラレちゃん(ArareChan)」クラスを作成し、挨拶をしたら(hello)、「んちゃ!」と返すプログラムを作成しなさい。
  2. いままでに紹介されたプログラムを一部、わざと間違った形で入力し、開発環境が間違っている部分を強調表示することを確認しなさい。

[プログラミング言語]

最終更新時間:2009年05月06日 23時23分50秒