【Java】初心者必見!クラスについてわかりやすく解説。
  • facebookページ
  • twitterページ
  • 2019.10.17

    【Java】初心者必見!クラスについてわかりやすく解説。

    何度も使いまわすようなスクリプトは、クラス化することにより簡単に呼び出すことが出来ます。

    今回はこのクラス化について学習してみましょう。

    カプセル化とは

    カプセル化とはブロックで囲むことだと覚えてください。

    ブロックとは{}であり、このブロックで囲まれた内部の変数やメソッドは決められた一定の範囲で使いまわすことが出来ます。

    ブロックで囲む事自体はJavaでは当たり前の作業ですが、単純にブロックで囲んだだけではカプセル化とは言えません。

    カプセル化とはあくまでも使いまわしの出来るように成形されたクラス群だと思ってください。

    またカプセル化をマスターすることでプログラムを再編する場合にも非常に管理しやすくなります。

    クラスの書き方

    Javaにおけるクラスとはプログラムをまとめたインスタンスを指します。

    このクラスの中でメンバ変数を定義したり処理を実行させるメソッドを定義し、これらをいくつも組み合わせることでプログラムを実行させるというのが一般的な使い方です。

    クラスは以下のように記述します。

    ポテパンダの一言メモ

    メンバ変数とはクラス内で使用する変数のことです。
    メンバ変数を定義する場合には、必ずメソッドの外に記述するというルールがあります。

    クラスの呼び出し

    基本となる呼び出し方

    クラスを呼び出すためには、呼び出すクラスのインスタンスを生成する必要が有ります。

    インスタンスを生成することで、そのクラス内に記述されたメンバ変数やメソッドを呼び出すことが出来るようになります。

    それでは実際にコードを見てみましょう。

    実行結果

    上のコードでは外部ファイルのSampleClass.javaに記述してあるSampleClassをMain.javaでインスタンス化し、クラス内メソッドである”SampleMethod”を呼び出しています。

    staticを使った呼び出し方

    上記の一般的な呼び出し方では、クラスを呼び出す際にはインスタンスを生成すると説明しました。

    しかしstatic修飾子を使うことでインスタンスを生成することなくメンバ変数やメソッドの呼び出しが出来るようになります。

    staticクラスを用いたコードを見てみましょう。

    実行結果

    Main.javaでインスタンス化していた部分を削除し、スッキリとしたコードになっています。

    ポテパンダの一言メモ

    staticを使ったコードの中で、メンバ変数にもstaticがついていることに気づきましたか?
    static修飾子を使用したメソッドを利用する場合には、その中で使われる変数にもstaticを割り当てる必要が有りますので忘れないようにしましょう。

    インナークラス

    内部クラスと呼ばれるもので、簡単に言うとクラスの中でネストされたクラスを指します。

    別段変わったことはありませんが、注意点としてはstaticを使用したインナークラスからは非staticな外部クラスにアクセス出来ません。もっとわかりやすく言い換えるなら実質的に通常クラスと同等の扱いということになります。

    結果として内部クラスを使うメリットがまるでなくなってしまいますので、staticを使うことは極力避けましょう。

    クラスの継承

    クラスの継承をすることで、継承元クラス内で定義しているメンバをそのまま他のクラスで使えるようになります。

    継承元クラスは「スーパークラス」「親クラス」などと呼ばれ、逆に継承先クラスは「サブクラス」「子クラス」と呼ばれます。

    継承する場合には”extends”で継承元を指定して使用します。

    ポテパンダの一言メモ

    メンバとは?
    メンバとは、クラスで宣言されたフィールドとメソッドを指します。
    コンストラクタもメソッドと似たような作りですがこちらはメンバには含まれません。

    final修飾子

    クラスに”final”修飾子を使用すると、そのクラスは継承不可となります。

    final修飾子はスーパークラスのフィールドやメソッドを変更されたくない場合に用いることで安全性を高める効果があります。

    抽象クラス

    “abstract”修飾子がつくクラスを抽象クラスと呼びます。抽象クラスには一つ以上の中小メソッドを保持させる必要が有ります。

    抽象クラスを使う利点は、オーバーライドを強制させることが出来る点です。抽象クラスを継承した子クラスは抽象メソッドをオーバーライドした上で処理させる内容を記述しなければなりません。

    抽象クラスのコード記述については以下の通りとなります。

    また抽象クラスは”extends”で継承させる必要が有る為、実際のコードは以下のように記述します。

    コンストラクタ

    抽象クラスのコンストラクタは子クラスで”super”を使って継承する必要があります。

    抽象クラスは直接インスタンス化することはできませんが子クラスはインスタンス化出来るため、この法則を使って子クラスをインスタンス化し抽象クラスのコンストラクタを利用しましょう。

    まとめ

    いかがでしたか?今回はClassについて具体的に解説しました。

    クラスは大規模開発に限らず、Javaを扱うためには必ず必要となってくる基本的な部分でもありますので必ずマスターするようにしましょう



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE