SHOEISHA iD

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

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

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

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

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


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

今回は、オブジェクト指向のもっとも重要となる要素である「クラス」について考えていきます。簡単なクラスを作りながら、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ではないものとして作成しておきます。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
クラスの中身をチェックする

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

  • このエントリーをはてなブックマークに追加
作って覚えるJavaプログラミングのススメ連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2089 2008/03/10 17:39

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング