バナー画像

Javaプログラミングを行う上で、必ず理解しておく必要があるのが「クラス」です。

本記事では、Javaの「クラス」について考え方と使い方をサンプルコードを交えながらご紹介していきます。

Javaのクラスとは?

クラスは「設計図」とよく例えられますが、クラス単体で利用するのではなく、クラスから「インスタンス」と呼ばれる実体を作成して利用します。

クラスには何が記述されているの?

では設計図であるクラスには何が記述されているのでしょうか?

大きく分けて「フィールド」と「メソッド」の2つが定義されます。

フィールドはクラスで利用するデータを保管する変数が定義されます。

メソッドでは、クラスで行う処理内容が記述され、データの変換などを行います。

クラスとインスタンスの違いって何?

クラスとインスタンスは「設計図」と「実体」の違いとなります。

よく例えられるものとして「家の設計図(クラス)」と「実物の家(インスタンス)」の違いがあげられます。

「家の設計図(クラス)」だけでは実際に住んだり、利用することは出来ませんが「実物の家(インスタンス)」を生成することで利用することが可能になります。

また同じ「家の設計図(クラス)」から「実物の家(インスタンス)」を複数作った場合、出来上がるものは全く同じですが、実体としては複数出来上がり全く別ものとなります。

ポテパンダの一言メモ

この考えはプログラムをする際に非常に大事な概念になりますのでしっかりと理解しておきましょう。

Javaでのクラスの使い方を把握しよう!

ここからは基本的なJavaクラスの使い方についてサンプルコードを交えながらご紹介していきたいと思います。

クラスの基本構文

まずは基本的なクラスの記述方法について理解していきましょう。

下記のサンプルコードをご確認頂き順に説明していきたいと思います。

class Sample1 { // ※1
  public String name; // ※2
  public int    age;  // ※2

  // ※3
  public Sample1(String str, int age) {
    this.name  = str;
    this.age   = age;
  }

  // ※4
  public void execute() {
    System.out.println("ユーザーの名前は " + this.name + "です。");
    System.out.println("ユーザーの年齢は " + this.age + "です。");
  }
}

クラス名

まず※1に定義している「Sample1」がクラス名となります。

class クラス名 {}

{}の間にクラスに定義するフィールドやメソッドなどを記述していく形となります。

フィールド

※2に定義しているのが「フィールド」でデータを保管する変数となります。

サンプルコードではname(名前)とage(年齢)を保管するようの変数を定義しました。

コンストラクタ

※3はコンストラクタと呼ばれるインスタンスを生成する際に呼び出されるものです。

コンストラクタは特に処理が必要ない場合、定義しなくても問題ありません。

サンプルコードの場合は引数を2つ受け取り、名前と年齢情報をインスタンスのフィールドに格納するようなコンストラクタを作成しています。

コンストラクタは「クラス名と同じ」である必要があるため、サンプルの場合には「Sample1」というメソッドがコンストラクタとなります。

メソッド

最後に※4で定義しているのが「メソッド」となり処理内容を記述しています。

サンプルコードの場合はフィールドに設定された名前と年齢を出力するコードを記述しています。

インスタンスの生成方法

上述しているようにクラスで「フィールド」や「メソッド」を定義しただけでは、実際に利用することは出来ません。

実際に利用するための実体「インスタンス」の生成方法をご紹介していきます。

クラス名 変数 = new クラス名(引数);

上記のようにnew演算子を利用してクラス名を指定し、同じクラス名の変数に格納するだけです。
実際に上記サンプルコードの「Sample1」をインスタンス化すると下記のようになります。

Sample1 sample = new Sample1("ポテパン", 20);

「Sample1」クラスではコンストラクタの引数に「名前」と「年齢」を設定するように作成しましたので、「名前=”ポテパン”」と「年齢=20」を設定しています。

作成されたインスタンスは「sample」と名付けた変数に格納されることになります。
また、実際に作成されたインスタンスの「フィールド」や「メソッド」にアクセスしたい場合は下記のように記述します。

インスタンスの変数名.フィールド名;
インスタンスの変数名.メソッド名();

実際のJavaサンプルコードで確認してみよう

上記でクラスの定義とインスタンスの作成方法を学習したので、実際に動くコードはどのようになるのか確認していきましょう。

まずはサンプルコードをご確認ください。

public class Main {

  public static void main(String[] args) {
      Sample1 userA = new Sample1("ポテパン", 20);
      Sample1 userB = new Sample1("テスト", 26);

      System.out.println("userAの出力結果です。");
      userA.execute();
      System.out.println("userBの出力結果です。");
      userB.execute();
  }

}

class Sample1 {
  public String name;
  public int    age;

  public Sample1(String str, int age) {
    this.name  = str;
    this.age   = age;
  }

  public void execute() {
    System.out.println("ユーザーの名前は " + this.name + "です。");
    System.out.println("ユーザーの年齢は " + this.age + "です。");
  }
}

上記のサンプルコードを実行した結果が下記の通りとなります。

userAの出力結果です。
ユーザーの名前は ポテパンです。
ユーザーの年齢は 20です。
userBの出力結果です。
ユーザーの名前は テストです。
ユーザーの年齢は 26です。
ポテパンダの一言メモ

Javaではまず最初に呼び出されるメソッドとして、MainクラスのMainメソッドという決まりがあります。

サンプルコードではMainメソッドの中で、作成した「Sample1」クラスのインスタンスを作成し、「execute」メソッドを実行しています。
インスタンス生成時に指定した名前と年齢がしっかりと表示されていることがご確認頂けます。
また、インスタンスによって出力されている内容が異なることにも注目してください。
同じクラスから生成されたインスタンスですが、インスタンス生成時の引数を変えているため、出力結果として表示される内容は異なることがご確認頂けます。

さいごに:Java以外のプログラムでもクラスの理解は役に立つ

本記事では、Javaの必須知識として「クラス」の基本的な考え方と使い方をご紹介してきました。

「クラス」の概念はJavaだけに限らず、オブジェクト指向と呼ばれるプログラミング言語を利用する際に共通して利用出来る知識となります。

基本的な部分の説明だけをなるべく分かりやすくご紹介していますので、しっかりと理解した上でご自身のプログラムに応用出来るよう挑戦してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。