SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作って覚えるJavaプログラミングのススメ

Java入門 (1) - まずはここから始めよう

作って覚えるJavaプログラミングのススメ 第1回


Javaのプログラムはどうやって動かす?

 では、作成したプログラム(「Sample.class」というファイル)を実行してみましょう。今いったように、プログラムの実行は、Java仮想マシンを動かして、その中で実行させなければいけません。この仮想マシンのプログラムは、コマンドプロンプト(MS-DOSプロンプト)から実行します。コマンドプロンプトは、スタートメニューの「すべてのプログラム」内にある「アクセサリ」の中に用意されています。ここから「コマンドプロンプト」(または「MS-DOSプロンプト」)メニューを選んで起動しましょう。

ディレクトリの移動

 コマンドプロンプトのウインドウが現れたら、まずはデスクトップに移動しましょう。通常は、起動したときにはホームディレクトリ(ユーザ名のフォルダ)が開かれているはずですから、この中のDesktopディレクトリに移動すればいいはずです。

cd 《Desktopのパス》

 このようにタイプすれば、Desktopに移動できます。Vistaの場合、「Users」フォルダの中に利用者名のフォルダ(ホームディレクトリ)があり、その中に「Desktop」というフォルダがありますから、

Windows Vistaの場合
cd c:\Users\《利用者名》\Desktop

 このようにタイプして[Enter]キーを押せば、現在開かれているディレクトリ(カレントディレクトリといいます)がDesktopディレクトリに移動します。《利用者名》の部分には、それぞれの名前を当てはめてください。XPの場合には、Usersがなく、代りに「Documents and Settings」フォルダの中に利用者名のフォルダが作られますから、

Windows XPの場合
cd c:\Documents and Settings\《利用者名》\Desktop

 このようになるでしょう。これで、作成した「Sample.class」ファイルがある場所(Desktopフォルダ)に移動できますね。それ以外の場所にファイルが置かれている場合には、それぞれの環境にあわせて、cdで保存先のフォルダのパスを指定し移動してください。

プログラムの実行

 では、Java仮想マシンを使ってSample.classを実行しましょう。次のように入力してEnterキーを押してください。

java Sample

 この最初の「java」というのが仮想マシンでプログラムを実行するためのコマンド、その後の「Sample」というのが実行するプログラム名です。注意してほしいのは、「Sample.class」ではない、という点でしょう。ここで指定するのは、プログラムの「ファイル名」ではありません。プログラムの名前(正確には、「クラス」の名前)で指定をします。

 これを実行すると、「Sample.class」のプログラムが実行され、プロンプト画面に「My First Java Program!」と表示されます。これが、今実行したプログラムの内容です。つまり、こういうテキストを表示させるプログラムだった、というわけです。

図3 javaコマンドを使ってプログラムを実行する。ファイル名に.classはつけないようにする。
図3 javaコマンドを使ってプログラムを実行する。ファイル名に.classはつけないようにする。

プログラムとは「クラス」のこと?

 さて、とりあえずプログラムを書き、コンパイルし、実行する、という基本操作はできるようになりました。では、作成したプログラムがどんなことを行っていたのか、ソースコードの内容をチェックしてみることにしましょう。

 ここで作成したプログラムのソースコードは、とりあえず省略できるものをすべて省略して、最も基本的な形に整理すると、次のような形をしていました。

class クラス名 {
    
    メソッド (引数){
        …… 実行する処理 ……
    }
}

 これだけだと、なんだかわからないかも知れませんね。ここでは「クラス」と「メソッド」という2つのものがポイントとなります。これらは、それぞれ名前の後に { } 記号を使って中身を記述する、という形をしています。要するに、以下のような形ですね。

クラス { …… 具体的な内容 …… }
メソッド { …… 具体的な内容 …… }

 実際には、メソッドというものはクラスの中、つまり{}の中に記述されますが、この2つの要素で先のプログラムはできていた、といってよいでしょう。Javaのプログラムは、この2つと、もう1つ「フィールド」と呼ばれるものを併せたの3つで構成されていると言えます。

 では、これらはそれぞれどういう役割を果たしているのでしょうか。ざっと整理をしてみましょう。

  • クラス
  • Javaのプログラムの最も基本となるものです。Javaのプログラムを構成する基本的な要素がクラスです。クラスは、最も小さな「プログラムのかたまり」です。Javaでは、プログラムはそれぞれの機能ごとに「クラス」というかたまりとして定義されます。これは、どんな巨大なプログラムでも同じです。大きなプログラムになれば、たくさんのクラスを定義して、それらを呼び出しあいながら動くようになります。
  • メソッド
  • クラスの中に用意することのできる「処理」を記述するためのものです。クラスでは、すべての処理(実行する命令類)は、この「メソッド」として定義をします。そして、必要に応じてメソッドを呼び出し、その中身を実行させます。メソッドはクラスの中にいくつでも用意しておくことができます。
  • フィールド
  • クラスの中に用意する「値」を記述するためのものです。クラスの中に、いつでも利用でいる値を用意しておきたい場合、この「フィールド」として定義をします。フィールドは、クラス内にあるすべてのメソッドから利用できます。また、別のクラスから利用できるようにすることも可能です。

 整理すれば、Javaのプログラミングというのは、「クラス」を用意し、その中に「メソッド」と「フィールド」を作って、実行したい処理を作成していく作業だ、と言えます。小さなプログラムであれば1つのクラスだけで完結しますが、規模の大きなものとなれば、まず「プログラムがどのような機能の組み合わせでできているか」を考え、それを元に「どういうクラスを用意して組み合わせればいいか」を設計していくことになるでしょう。

クラス定義を再チェックする

 プログラムの大体のイメージがつかめたところで、先ほど作成したソースコードを元に、クラスとメソッドについてもう少ししっかりと理解していくことにしましょう。まずは、クラスについてです。

public class Sample {・・・}

 先ほどのサンプルでは、このような形でクラスが定義されていました。クラスの定義は、必ず「classクラス名」という形で書かれます。ということは、先のサンプルは「Sample」という名前のクラスを定義するものだったわけです。

 が、よく見ると、classの前に「public」というものがありますね? これは一体、何でしょうか? これは、「アクセス修飾子」と呼ばれるものの1つです。と言うとなんだか難しそうですが、このクラスが「利用可能な範囲」を指定するためのものなのです。

 クラスやメソッド、フィールドといったものは、「どこからでもすべて利用できる」というわけではありません。場合によっては、外部から利用されると困るようなこともあります。そこで、Javaには「これはこういう範囲内のものからしか利用できませんよ」ということを指定できるようになっているのです。このpublicというのも、そうしたものの1つです。

 publicは、もっとも範囲の広いアクセス修飾子で、「すべてのものから利用可能」であることを示します。つまり、publicがつけられたクラスは、どこからでも利用できるということです。――まぁ、「publicとはどういう働きをするものか」というのは、とりあえず今はあまり深く考えなくてかまいません。単純に「Javaでは、プログラムはpublic class クラス~という形で書くのだ」ということだけわかれば十分です。

publicなクラスとソースコードファイル名

 この「publicなクラス」というのは、もう一つ別の意味合いも持っています。それは、ソースコードのファイル名との関係です。Javaでは、ソースコードのファイル名は、「そこに記述されているpublicなクラス名」と同じものでなければいけません。ここでは、Sampleというpublicなクラスが定義されていますから、ファイル名はこれに.java拡張子をつけて「Sample.java」でなければいけないのです。

 「それじゃあ、もしpublicなクラスが2つ書かれていたら?」――いえいえ、その心配はありません。Javaでは、1つのソースコードファイルに記述できるpublicなクラスは、1つだけなのです。2つ以上のpublicなクラスを同じファイルの中に書くことはできません(publicでないクラスであれば、複数個記述することができます)。

 まぁ、今の段階では「プログラムを作るときは、publicというのをつけてクラスの定義を書くんだ」とだけ覚えておけばいいでしょう。publicの働きなどは、実際にもっとJavaを使い込んで言ってから理解すれば十分です。

メソッド定義を再チェックする

 続いて、クラスの中に書かれていた「メソッド」について確認してみましょう。メソッドは、クラスに比べると、もう少し定義の仕方が複雑です。先ほどのサンプルを見てみると、

public static void main(String[] args){・・・}

 こんな形になっていました。これは一体、どういう意味なのか、ざっと解読してみましょう。――これは、いくつかの要素が組み合わせられています。こんな感じです。

各種の修飾子 戻り値 名前 (引数){・・・}
  • 修飾子: public static
  • そのメソッドの性質などを設定するもの。
  • 戻り値(もどりち): void
  • メソッドの実行後、呼び出し元に送り返す値の種類を指定する。voidというのは「何の値も返さない」ことを示すもの。
  • 名前: main
  • メソッドの名前。
  • 引数(ひきすう): String[] args
  • 引数とは、メソッドを呼び出すときに同時に値を渡すのに用いられるもの。ここでは「String配列」という値が渡されることを示す。

 このように、メソッドを宣言している部分にはさまざまな要素が記述されています。クラスのように、単に名前だけ書けば終わり、というものではないのです。

 とりあえず「戻り値」と「引数」というものについては、どういう役割なのか理解しておきましょう。修飾子については、あまり深く考えないで「そういうものがあるらしい」程度でかまいません。……とはいえ、これだけの説明じゃ、「String[] argsだのString配列だのって何のことかさっぱりわからない!」と思ってしまうでしょうね。

 まだ「変数」とか「値の種類」といったものを説明していませんから、具体的にどんな書き方をするかといったことまでイメージできないことでしょう。今の段階では「こういう役割をするものがある」ということだけ頭に入れておけば十分です。メソッドは、実際に自分で書くようになれば、少しずつわかってきますから心配は要りません。今の段階では、あまり頭の中だけで「知識として完璧に理解する」ということばかり考えないでおきましょう。

次のページ
mainメソッドとprintlnについて

修正履歴

この記事は参考になりましたか?

作って覚えるJavaプログラミングのススメ連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1922 2009/06/05 08:30

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー