Java

Javaのインスタンスって?クラスとの違いについても分かりやすく解説!

Javaで必須となるのがインスタンスの概念です。Javaを学習しているとインスタンスと同時にクラスというのも出てきて分からなくなる人も多いのではないでしょうか。

この記事では、インスタンスとクラスについて意味と違いを分かりやすく解説していくので、つまずいている方はぜひ参考にしてください。

クラス・インスタンスについて

最初にインスタンスとは何かについて解説していきます。
クラスとインスタンスを利用するための基礎の部分になるので、クラスとインスタンスがよく分からない方はしっかりとチェックしておいてくださいね。

クラスとは?

まず、インスタンスと同時に学ぶことが多い「クラス」について解説していきます。

クラスはインスタンスの元になるオブジェクトで設計図の役割を持ちます。
Javaでオブジェクトを作る際は、クラスが必要になるので注意してくださいね。

インスタンスとは?

インスタンスとはクラスを元に作られるオブジェクトのことを指します。インスタンスは「実体」と表現されることもあります。

インスタンスはオブジェクト指向型のプログラミング言語で広く使われており、JavaだけでなくRubyやPythonなどでも利用されています。

クラスとインスタンスのまとめ

ここまで解説したことをまとめると、クラスはインスタンスを作るための設計図であり、
インスタンスはクラスから作られた実体であるということになります。

分かりにくい方は家を作る場合を想像してみてください。この場合、クラスは家を作るための設計図で、インスタンスは設計図から作られた家となります。

クラスとインスタンスはJavaプログラミングをする際には必須となる概念なので、ここでしっかりと理解しておいてくださいね。

オブジェクト指向とは?

ここまで、インスタンスとクラスの特徴や違いについて解説しました。

インスタンスとクラスはオブジェクト指向のプログラミング言語で利用されていることを解説したので、ここでオブジェクト指向についても簡単に解説しておきます。

オブジェクト指向について一言でまとめると、「プログラミングを簡単に行う手法の1つ」だと言えます。

オブジェクト指向は1つの完成物を作るために、たくさんのパーツを用意して、それぞれのパーツを独立に動かせるようにしていく手法です。

分かりにくい方は、車をイメージしてみてください。車はたくさんのパーツから作られており、動力源であるエンジン、進む方向を決めるハンドルなどたくさんのパーツが組み合わされています。
たくさんのパーツを組み合わせた結果、車となって動かすことができるのです。この意味で、車とオブジェクト指向型プログラミングは似ていると言えるでしょう。

まとめると、それぞれ独立したコードを記述して、1つのオブジェクトを作るのがオブジェクト指向プログラミングの手法です。

インスタンス化について

クラスとインスタンスを学んでいると出てくる用語の1つに「インスタンス化」があります。
初めてJavaプログラミングを学ぶ方には分かりくいと感じる人が多いので、詳しく解説していきますね。

インスタンス化とは?

インスタンス化とはクラスからインスタンスを作ることを意味します。
先ほどの家の例では、設計図から家を建築することがインスタンス化に相当します。

クラス化ではなくインスタンス化なので間違えないようにしましょうね。

インスタンス化の具体例

それでは実際にクラスからインスタンスを作るインスタンス化を解説していきます。

実際のコードを使って解説するので、実践できる環境をお持ちの方はコードを記述して実践してみると知識が定着しやすいですよ。

クラスの作成

インスタンスの作成には、まずクラスを作成する必要がありましたよね。
今回は人の情報をクラスに記述していき、インスタンスを作成していきます。

クラスの基本的な作り方は次の構文になります。

class クラス名 {
}

今回は「Person」というクラス名で解説していきますね。

class Person {
}

これだけでは設計図であるクラスが白紙のままなので、これに情報を付け加えていきます。

class Person {
String name ;
int age ;
}

ここでは、名前の情報「name」と年齢の情報「age」をクラスに設定しました。
このようにクラスに情報を複数設定することも可能です。

次にコンストラクタを設定します。コンストラクタはインスタンス作成時に使う関数なので、記述しておきます。

class Person {
String name ;
int age ;Person(String name,int age){
this.name = name;
this.age = age;
}
}

それでは、実際に作成したクラスを使用してインスタンスを作成していきましょう。

インスタンスの作成

インスタンス化の基本構文は次の通りです。

クラス名 インスタンス名 = new クラス名();

今回はインスタンス名を「sample」として、クラスは上記で作成した「Person」クラスを使います。

public static void main(String[] args) {
Person sample = new Person(“太郎”,15);
}

これでクラスからインスタンスを作成するインスタンス化が完了しました。
インスタンス化のときに引数を渡すことで「name」に「太郎」を、「age」に「15」を指定しています。

ここではインスタンスを1つしか作成していませんが、複数のインスタンスを作成することもできます。

public static void main(String[] args) {
Person sample1 = new Person(“太郎”,15);
Person sample2 = new Person(“二郎”,20);
}

先ほど作成したインスタンスは「sample」のみでしたが、今回のコードでは「sample1」「sample2」の2つを作成しています。

名前と年齢についてもそれぞれ設定しており、「sample1」では名前が「太郎」年齢が「15」、対する「sample2」では名前が「次郎」年齢を「20」と設定しています。

実際にコードを記述する際には複数設定することも多いので覚えておきましょう。

以上がクラスからインスタンスを作成するインスタンス化のやり方です。
基本となるやり方なので、ぜひ理解しておいてくださいね。

まとめ

この記事では、クラスとインスタンスの違い、インスタンス化について解説しました。
学習を始めたばかりの方は難しく感じるかもしれませんが、何度もコードを記述することで分かるようになるので、理解できるまで繰り返し練習してみてくださいね。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。