Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Java入門 (3) - クラスとインスタンス

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/01/24 14:00

今回は、オブジェクト指向のもっとも重要となる要素である「クラス」について考えていきます。簡単なクラスを作りながら、Javaのプログラム作成がどういうものかを理解していきましょう。

目次

はじめに

 Javaのプログラミングは、一にも二にも「クラス」を作ることです。が、クラスを作るとはどういうことでしょう。そもそも、ごく普通の「あれをやって、これをやって、それをやっておしまい」というような処理を、どうやってクラスというものにすればいいんでしょうか。実際に簡単なクラスを作りながら、クラスによるプログラミングがどういうものか、体験していくことにしましょう。

対象読者

  • Javaに興味はある、けれどプログラミング経験がない、という人。
  • Javaに興味はある、けれど何から手をつければいいかわからない、という人。
  • Javaに興味はない、でも何でもいいからプログラミングをしたい、という人。

これまでの記事

クラスとは?

 前回、「クラスとインスタンス」について簡単に説明をしました。Javaでは、さまざまなプログラムは「クラス」という形で提供されており、それを元に「インスタンス」というものを作って利用するんだ、ということでした。

 これを、「Javaに用意されているライブラリなどについての説明だ」と理解された人もいるかも知れません。が、そういうわけではありません。Javaでは、皆さんが実際に書くプログラムも、クラスとして定義をしていきます。というより、Javaでは、「クラス以外のプログラムを書くことは不可能」なのです。どんなものであれ、常にクラスの形をしていなければいけないのです。

 では、このクラスというのはどのような形で定義すればよいのでしょう? これは、第1回のときに説明しましたが、こんな形で書けばよいのでした。

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

 メソッドは、クラスに用意する「機能」です。クラスではこの他に「フィールド」というものも用意することができました。これはメソッドに用意する「値」のことです。フィールドを持ったクラスは、大体以下のような感じになります。

class クラス名 {

    フィールドの宣言;
    
    メソッド (引数){
        ・・・実行する処理・・・
    }
}

 メソッドとフィールドがクラスの中に並んだ形をしています。ここではフィールドの後にメソッドを書いていますが、Javaではこれらの並び順は関係ありません。どういう順番で書いてもかまわないのです。先にメソッドを書き、最後にフィールドを書いても問題ありません。

 ただ、フィールドはメソッドの中で使われることが多いため、先に「こういうフィールドが定義してありますよ」ということがわかった方がソースコードを読みやすいでしょう。そこで、この連載では最初にフィールドをまとめて書くことにします。

クラスの仕様を考える

 では、簡単なプログラムを考えていきましょう。例として、「自分の資産を計算して表示する」といったものを作成することにします。昔ながらのプログラミング言語などでは、こういう場合、処理の流れを整理して書いていきます。例えば、

  1. 預貯金の金額を入力する。
  2. 証券債権があればその金額を入力する。
  3. 不動産の金額を入力する。
  4. すべてが揃ったら合計を計算する。

 こんな感じですね。ですがJavaの場合、というより「オブジェクト指向」の場合は違います。まずは「どういう要素がプログラムに必要か」を考え、その要素をクラスとして定義していくのです。例えばこの例では、

  • 預貯金という要素
  • 証券債権という要素
  • 不動産という要素

 こういった要素があります。これらを元にクラスを定義し、それらを組み合わせてプログラムを作成していくことになります。では、最も簡単なものとして「預金」のクラスを作ってみましょう。このクラスは、単に預金の金額を保管しているだけのクラスです。お金を預けたり引き出したりした際に金額が変更される機能を持っています。

class Yokin {
    int kingaku = 0;
    String name = "なし";
    
    public void azukeru(int n){
        kingaku += n;
    }
    
    public void hikidasu(int n){
        kingaku -= n;
        if (kingaku < 0) kingaku = 0;
    }
}

 ここでは、クラスは「public class ~」ではなく、ただの「class ~」となっています。「Javaでは、1つのソースコードにはpublicなクラスは1つしか書けない」ということを思い出してください。実際に、これらのクラスを呼び出して利用するクラスをpublicクラスとして作成する予定ですので、Yokinクラスはpublicではないものとして作成しておきます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

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

バックナンバー

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

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5