• Webワークショップ
 

 HOME > WEBワークショップ > 初心者のためのJava講座 > 【第11回】プログラムの3大要素の1つである処理を扱ってみる

【第11回】プログラムの3大要素の1つである処理を扱ってみる

このところ、毎回のように新しい概念が出てきたかと思いますが、
今回はちょっと基本に立ち返ってみましょう。

基本とは何か?
すでに何度も登場していますが、プログラムの3大要素である、入力、処理、出力のことです。

今回はその中の処理について注目します。

前提1: 第4回の講座を理解し、プログラムの3大要素について押さえている。

前提2: 第8回の講座を理解し、メソッドについての理解が深まっている。

第4回の講座で扱ったのは主に出力でしたね。「出力をする前に行われるもの」が、処理です。
今回は実例を挙げていくとわかりやすいかな。

例:自動販売機に120円を入れて、缶ジュースを購入する。

上の何とも味気ない文章の中から、入力、処理、出力を洗い出してみてください。

...どうですか?

多分、入力と出力についてはすぐに思いつくのではないかと思います。

入力:120円
出力:缶ジュース

では、処理は一体何になるかわかりますか?「感覚的には分かるのだけど、
一言で表すのはちょっと難しい」と思う人もいるかもしれませんね。
120円(入力)を缶ジュース(出力)にするまでに、自動販売機の中で
こっそり働いていた機能が処理を行っているのです。

自動販売機に限らず、世の中にある機械は、何かしら処理を行ってくれています。
テレビは画面を映してくれますし、ミニコンポはCDやMDを再生して音を出してくれます。
電子レンジの「あたため」ボタンを押すと、適当に温めてくれます。
ありとあらゆる機械の動きの仕組みを分かっている人は、いないでしょう。
いちいち知らなくても使えるのですから。

Javaのメソッドの役割も同じようなものです。
利用者からすれば、面倒な処理の実現を肩代わりしてくれるわけです。
とはいっても、新しく作る場合は、自分で書かなければならないのですけど。

大切なのは、「適度なまとまりごとにメソッドとして区分けがなされている」という点です。
例えば、最初に出した自動販売機の例でも、ジュース購入という1つの処理は
いくつかの小さな処理から成り立っているのです。

・投入された金額のチェック処理
・押下されたボタンのチェック処理
・おつりのチェック処理
・ジュースの搬出処理

実際の自動販売機が行っている処理は、当然ながら、もっと多いですが、
上記に書き出した処理の流れを、簡単にプログラムで表現してみることにしましょう。

以下のプログラムを打ち込み、実行してみてください。

public class VendingMachine
{
    public VendingMachine()
    {
        System.out.println(
            "自動販売機オブジェクトが生成されました。");
    }
    public void payCheck()
    {
        System.out.println("投入金額チェック処理。");
    }

    public void buttonCheck()
    {
        System.out.println("押下されたボタンのチェック処理。");
    }

    public void changeCheck()
    {
        System.out.println("お釣りの金額チェック処理。");
    }
    public void getCan()
    {
        System.out.println("缶ジュース取得。");
    }

    public static void main(String[] args)
    {
        // オブジェクト生成。
        VendingMachine machine = new VendingMachine();
        // 1. 投入された金額のチェックをする。
        machine.payCheck();
        // 2. 押下されたボタンのチェックをする。
        machine.buttonCheck();
        // 3. お釣りのチェックをする。
        machine.changeCheck();
        // 4. ジュースを取得する。
        machine.getCan();
    }
}

実行結果:

C:\work>java VendingMachine
自動販売機オブジェクトが生成されました。
投入金額チェック処理。
押下されたボタンのチェック処理。
お釣りの金額チェック処理。
缶ジュース取得。

C:\work>  

この例で、注目してもらいたいのは、それぞれの処理をメソッドごとに分けている点です。
それにより、全体の流れを把握しやすくなり、結果的に効率が良くなります。
例えば、ボタンチェック処理を修正したいと思ったときには、
buttonCheck()に注目すればよいのです。
逆に、main()メソッドに全てを詰め込んでしまうと、大変ですね。

〜 まとめ 〜

1.「クラス」に定義する性質には「フィールド」と「メソッド」がある。
2.「フィールド」は「クラス」自身の属性である。
3.「メソッド」は「インスタンス」を操作する方法を提供する。


今回の講座で、処理についての理解が深まってくれたならば幸いです。
→ 次へ(第12回:クラスパスについて理解する)

アンケート

読者の皆さん、Java講座はお役に立っていますか?
今後の改良の為、以下のアンケートに是非お答えください。

※個人情報の取り扱いについてはAcroquestでの個人情報保護に関する基本方針をご覧下さい。

年代 

職業  Java歴  
1)このページの内容についてどう思いますか?
  • とても分かりやすい説明
  • 説明がピンと来なかった
  • 聞きたい事が書いてあった
  • 分かりにくい
    (よろしければご意見をお寄せください)

2)Java講座で、今後どのような内容を取り上げてもらいたいですか?(複数回答可)
  • Javaの詳しい文法
  • オブジェクト指向の基礎
  • ゲームプログラミング
  • 学習の為のお勧め書籍
    (→当社の技術書紹介をご参照ください)

3)ご感想を是非お寄せ下さい。

尚、ご記入いただいた『質問内容』を、匿名にてホームページ上に掲載させて頂くことがありますのでご了承ください。

◇記入欄

氏名 
メールアドレス 
会社名/大学名 
部署/学部/学科 
学年 
ご住所 
電話番号