Javaのnew演算子の使い方【初心者向け】
初心者向けにJavaのnew演算子の使い方について解説しています。new演算子はインスタンス化を行う際に使われるもので、Javaのプログラミングにおいて重要な基本要素のひとつになります。サンプルコードを使い、実行結果を見ながらインスタンスの生成について学習していきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaのnew演算子の使い方について解説します。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
new演算子の使い方について詳しく説明していくね!
お願いします!
new演算子とは
new演算子は、Javaのクラスをインスタンス化するために利用されます。
「クラス」という用語や考え方についてまだ理解が十分でないと感じる場合は、この記事を読む前に参考書やインターネットなどで軽く復習しておきましょう。
new演算子の使い方
new演算子の使い方は以下のとおりです。
new コンストラクタ;
new演算子に続けて、クラスのコンストラクタを呼び出して実行するコードを記述すると、クラスのインスタンスが生成されます。これを「インスタンス化」「クラスのインスタンス化」といいます。
また実際のシステム開発の現場では、インスタンスを生成することを「newする」と言ったりもします。もしあなたがお仕事でJavaを書くことを目標にしているなら、覚えておくとよいですね。
さて、参考書や他のサイトなどを見ると、new演算子の使い方として以下のように書かれているものがあります。
new クラス名();
「new コンストラクタ」と「new クラス名( )」、違いは何でしょうか?
実は、これらは同じことを表しています。
例えばクラス名がCatだとすると、そのコンストラクタには必ずCatという、クラスと同じ名前を付ける決まりになっています。
つまり、Catクラスをインスタンス化する場合は以下のようになり、これを「new コンストラクタ」「new クラス名( )」とそれぞれ別の言い方で表しているにすぎません。
new Cat();
まずは、あなたが理解しやすい方で覚えていただいて大丈夫です。
実際に書いてみよう
例として、猫を表すクラスCatを、new演算子を使ってインスタンス化してみましょう。
サンプルコード
Cat.java
class Cat { /** 猫の名前 */ private String name; /** * このクラスをインスタンス化する */ Cat() { } /** * このクラスに名前を付けてインスタンス化する * @param name 猫の名前 */ Cat(String name) { this.name = name; } /** * 鳴く */ void meow() { System.out.print("吾輩は猫である。"); if (name == null) { System.out.println("名前はまだ無い。"); } else { System.out.println("名前は" + name + "だ。"); } } }
Application.java
class Application { public static void main(String[] args) { Cat cat = new Cat(); cat.meow(); Cat dora = new Cat("ドラ"); dora.meow(); Cat tama = new Cat("タマ"); tama.meow(); } }
実行結果
Applicationを実行すると次の出力が得られるでしょう。
<吾輩は猫である。名前はまだ無い。 吾輩は猫である。名前はドラだ。 吾輩は猫である。名前はタマだ。
解説
名前を持たないインスタンス(cat)と名前を持つインスタンス(dora、tama)の鳴き声が出力されましたね。
このように、ひとつのクラス(Cat)から、new演算子を使って異なるインスタンスを何個でも作ることができます。
また、この例ではインスタンスを生成するためのコンストラクタを2つ定義しています。あなたがクラスを作るときには、目的に応じて必要な数のコンストラクタを定義しnew演算子で呼び分けられるようにしましょう。
監修してくれたメンター
青柳哲夫
独立系SIerやベンチャーを経て、現在はフリーランスエンジニアとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。