【Java】クラスの構造

テーマ:

  

 

 

どうも、kumaです。

 

 

今回はJavaで最も重要と言っても

過言ではない「クラス」について書

いていきます。

 

 

クラスとは、「データ」と「処理」をひと

まとまりにしたものです。

 


オブジェクト指向言語であるJavaでは

クラスが非常に重要な働きするので、

しっかり学んでいきましょう。

 

 

クラスの書き方

 

クラスの書き方は問題ないですよね?

 

class クラス名 {
    // ここに「データ」と「処理」を書く
}

 

この通り、「class クラス名」でクラスを

定義し、括弧{}の中にクラスを構成する

データと処理を書いていきます。

 

 

クラス名は基本的には先頭大文字の

英単語にします。(Car、Bird)など。

 

 

また、日本語で書いても大丈夫です。

 

 

システム開発ではシステム内のクラス名

に日本語をつけることはありませんが、

テストモジュールクラス等は何をする

モジュールなのか一目でわかるように

日本語で書く場合もあります。

 

 

クラスの構造

 

上でクラスとは「データ」と「処理」をひと

まとまりにしたものと書きましたが、もう

少し詳しく見ていきましょう。

 

 

「データ」と「処理」はそれぞれ以下の

要素から構成されます。

 

 

データ ・・・ メンバ変数

 

処理 ・・・ コンストラクタ、メソッド

 

 

メンバ変数、コンストラクタ、メソッドは

一つのクラスの中で何個でも書くこと

ができます。

(名前が被っちゃだめとかはあります。)

 

 

メンバ変数はクラスの中に定義する変数

のことを言います。

 

 

ちなみにメソッドの中に定義する変数を

ローカル変数と言います。

 

 

メソッドはクラスの中に用意する

処理の単位です。

 

 

コンストラクタメソッドの1種ですが、

オブジェクトを生成したときに自動的に

呼び出されるという特徴を持ちます。

 

 

クラスを呼び出した一番最初のタイミング

で呼び出されるため、ここには初期処理

を記載します。

 

 

なお、コンストラクタは省略可能で、省略

した場合内部で自動的に生成されます。

 

 

つまりクラスの中にコンストラクタは必ず

1つ以上必要だが書くときは省略もできる

ということです。

 

 

また、コンストラクタは引数を持たせること

ができたりとさまざまな用途があり複雑な

ため、コンストラクタの説明用に記事を書

こうかなと思います。

 

 

さて、これらを用いてクラスを一つ

書いてみます。

 

 

[Car.java]

class Car {
    
    // メンバ変数
    int speed;
    
    // コンストラクタ
    Car() {
        // メンバ変数を初期化
        speed = 60;
    }
    
    // メソッド
    void run() {
        System.out.println("車は時速" + speed + "kmで走ります。");
    }
    
}

 

 

お気づきかもしれませんが、メソッドと

コンストラクタの違いとして、メソッドは

「void」がついていますがコンストラクタ

はついていません。

 

 

voidは戻り値がないことを示すのですが、

コンストラクタは戻り値を返すことはない

ため、「void」の記載は不要という考え方

になっています。

 

 

また、通常1つのJavaファイルに1つの

クラスを書きます。例外はありますが、

基本的にはこの考え方で大丈夫です。

 

クラスの呼び出し

 

このCarクラスを呼び出す場合、

Carクラスのオブジェクトを生成

します。

 

 

オブジェクトの生成は以下の書き方

になります。

 

 

[型] オブジェクト名 = new [コンストラクタ];

 

// オブジェクトの生成
Car car = new Car();

 

さらに、このCarクラスが持つRunメソッド

を呼び出すには以下のように書きます。

 

 

オブジェクト名.メソッド名

 

// runメソッドの呼び出し
car.run();

 

Carクラスを呼び出す処理をまとめてみます。

 

 

[Main.java]

class Main {
    public static void main(String[] args) {
        // オブジェクトを生成
        Car car = new Car();
        
        // runメソッドの呼び出し
        car.run();
    }
}

 

Car.java、Main.javaともにコンパイルして、

Main.javaを実行してみましょう。

 

 

[実行結果]

車は時速60kmで走ります。

 

この場合、Carクラスのオブジェクトを

生成したタイミングでCarクラスのコン

ストラクタが呼び出され、メンバ変数

speedに60が代入されます。

 

 

するとspeed=60が保持され、このオブ

ジェクトのrunメソッドを呼び出すとspeed

に60が入った状態で処理が実行されます。

 

 

以上、今日の内容をまとめます。

  • クラスは「データ」と「処理」で構成される
  • クラスのオブジェクトを生成すると初めにコンストラクタが呼び出される
  • 「処理」を呼び出すときはクラス名.メソッド名と書く

 

 

今回の内容だけに限ればそれほど

難しくはないのですが、先にも書いた

コンストラクタの特性やメンバ変数や

メソッドのスコープを考えると非常に

複雑になってきます。

 

 

Javaの複雑さをこのブログで少しでも

シンプルに理解できるよう書いていき

たいと思います!

 

 

ではまた!!

 

 

 

 

 

Javaを勉強中の方必見!!

 

プログラミング学習教材を20名残り5名限定で無料配布中!!

 

 

「プログラミングの基礎の基礎習得術 ~Java編~」

 

詳細は★こちら★

 

 

↓↓今すぐ無料プレゼントを受け取る↓↓

 

プレゼント無料プレゼントを受け取るプレゼント

 

60ページに及ぶPDFファイルと動画、サンプルプログラム付きの超豪華な内容となっています驚きびっくり

 

 

無料配布分が終了後は有料となるため、お早めにお求めください!!

 

 

 

AD