Java の new キーワードとは?オブジェクトを作る仕組み
新人
「先輩、Javaでよく出てくるnewって何ですか?いろんなコードに出てきて気になります…」
先輩
「いい質問だね。newは、Javaでオブジェクトを作るときに必ず使うキーワードなんだ。インスタンスを作る仕組みの中心になるんだよ。」
新人
「インスタンス…って、つまり何かの実物ってことでしたよね?」
先輩
「そのとおり!クラスという設計図から、実際に動かせる“オブジェクト”を作るときに、newを使うんだ。詳しく説明していくね!」
1. Javaのnewキーワードとは?(基本的な意味をやさしく解説)
Javaのnewキーワードは、クラスからオブジェクト(インスタンス)を作るための特別な命令です。「新しいものを作る」という意味があり、クラスという“型”から実際に使えるモノを作るときに使います。
たとえば、「Person」というクラス(設計図)を作ったあと、それを使って「たろう」や「はなこ」という人のオブジェクトを作りたいときに、newを使います。
具体的には、次のようなコードになります。
public class Person {
String name;
int age;
}
このPersonクラスからオブジェクトを作るには、次のように書きます。
Person p = new Person();
この1行で、「Personという設計図から、実際にpという名前のオブジェクトを作ります」という意味になります。
Personの部分はクラスの名前、pは作ったオブジェクトに付ける変数名、そしてnew Person()が「オブジェクトを作る部分」です。
このnewがないと、実物を作ることができないため、Javaではとても大切なキーワードになります。
2. newを使う理由とは?(なぜ必要なのかを日常の例えで説明)
初心者の方にとって「なぜnewが必要なのか?」という疑問はよくあるものです。これを日常の例えで考えてみましょう。
たとえば、あなたが「椅子」を作りたいとします。そのとき、まずは「椅子の設計図」を用意しますよね。でも、その設計図だけでは座れません。木材や道具を使って、実際に椅子を作って初めて使えるようになります。
このときの「設計図」がクラス、「作られた椅子」がオブジェクト(インスタンス)です。そして「椅子を作る」という作業がnewの役目です。
つまり、クラスだけでは使えないので、実際に使える形に変えるためにnewが必要なのです。
以下のコードを見てください。
public class Car {
String color;
int speed;
void run() {
System.out.println("車が走ります");
}
}
この「Car」というクラス(設計図)から、実際の車を作るには、次のようにnewを使います。
Car myCar = new Car();
myCar.color = "赤";
myCar.speed = 60;
myCar.run();
車が走ります
このように、newを使うことで「myCar」という車のオブジェクトが作られ、色やスピードなどの情報を持たせたり、run()という動きを実行することができるようになります。
もしnewを使わなければ、そもそもこの「myCar」というオブジェクトは作られないので、情報も動きも扱うことができません。
初心者のうちは、「newは設計図から実物を作る魔法の言葉」と覚えておくと、とてもイメージしやすくなります。
Pleiadesの開発環境を使えば、このコードを簡単に書いて実行できます。Javaの基本を学ぶときには、必ず出てくるキーワードなので、まずは実際に試してみることをおすすめします。
3. newを使ってオブジェクトを作ってみよう(基本の書き方)
ここからは、実際にJavaでnewを使ってオブジェクトを作る方法を見ていきましょう。クラスを定義したら、newを使ってそのクラスからインスタンス(実物)を作ることができます。
たとえば、次のように「Dog」というクラスを作ってみます。
public class Dog {
String name;
int age;
void bark() {
System.out.println(name + "がワンワンと鳴きます");
}
}
このDogクラスから、newを使ってオブジェクトを作ってみましょう。
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.name = "ポチ";
myDog.age = 3;
myDog.bark();
}
}
ポチがワンワンと鳴きます
このコードでは、まずnew Dog()でDogクラスからオブジェクトを作っています。次に、nameやageに情報を入れて、最後にbark()メソッドを呼び出しています。
このように、newを使えばクラスから実物を作ることができ、そのオブジェクトに対して情報を入れたり、動かしたりすることができるようになります。
この流れを理解しておけば、Javaでのオブジェクト作成はスムーズに行えるようになります。初心者向けの学習でも必ず出てくる内容なので、まずはPleiadesで書いて試してみてください。
4. newを使って複数のオブジェクトを作る(それぞれに違う情報を入れる)
Javaでは、同じクラスから何個でもオブジェクトを作ることができます。そして、それぞれのオブジェクトに違う情報を入れることで、まったく別の実体として扱うことができます。
さきほど作ったDogクラスを使って、複数の犬のオブジェクトを作ってみましょう。
public class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.name = "ポチ";
dog1.age = 3;
Dog dog2 = new Dog();
dog2.name = "コロ";
dog2.age = 5;
Dog dog3 = new Dog();
dog3.name = "チビ";
dog3.age = 1;
dog1.bark();
dog2.bark();
dog3.bark();
}
}
ポチがワンワンと鳴きます
コロがワンワンと鳴きます
チビがワンワンと鳴きます
このように、newを使って複数のオブジェクトを作ると、それぞれが独立した情報を持ち、それぞれの動きをすることができます。
「dog1」「dog2」「dog3」はすべてDogクラスから作られていますが、名前や年齢が異なるため、出力結果もちゃんとそれぞれの内容になります。
これはまさに、同じ「設計図」から違う特徴を持った「実物」を作るということです。newキーワードはこの仕組みを実現するために必要不可欠です。
この考え方は、Javaのオブジェクト指向を理解するうえでとても重要です。プログラムを作るときに、登場人物や道具をすべてオブジェクトとして表現できるようになると、複雑な処理も整理して書けるようになります。
初心者のうちは、たくさんのオブジェクトを作って、それぞれに情報を入れて動かしてみることがとても大切です。Pleiadesを使って、このコードを入力しながら学んでいくと、自然と理解できるようになります。
5. newを使わないとどうなる?(エラーになる例を紹介)
Javaでは、オブジェクトを作るときにnewを使わないと、エラーが発生してしまいます。これはとても重要なポイントです。
たとえば、newを使わずにオブジェクトを使おうとすると、次のようなコードになります。
public class Main {
public static void main(String[] args) {
Dog dog;
dog.name = "ポチ"; // エラーになる
dog.age = 3;
dog.bark();
}
}
このコードでは、dogという変数を用意しているのに、newで実物を作っていません。そのため、「まだ中身がない状態なのに使おうとしている」と判断されて、エラーが出ます。
実際にPleiadesでこのコードを実行しようとすると、次のようなエラーメッセージが表示されるでしょう。
Exception in thread "main" java.lang.NullPointerException
これは、まだオブジェクトが作られていない(nullのまま)なのに、中身を使おうとしたために起きるエラーです。
こうならないためには、オブジェクトを使う前に必ずnewでインスタンスを作る必要があります。
つまり、「入れ物を作ったけど中身を入れていない状態」で動かそうとすると失敗してしまうということです。
Javaでは、このようなエラーがよく出るので、「オブジェクトを使う前にはnewを忘れずに」ということをしっかり覚えておきましょう。
6. 自分でクラスを作ってnewで使ってみよう
ここまで読んでくれた方は、newの役割や使い方がなんとなくわかってきたと思います。ここでは、最初から自分でクラスを作って、それをnewで使う流れを練習してみましょう。
たとえば、「Book」というクラスを作って、本のタイトルとページ数を管理するようなプログラムを作ります。
public class Book {
String title;
int pages;
void showInfo() {
System.out.println("タイトル:" + title);
System.out.println("ページ数:" + pages);
}
}
このクラスをPleiadesで保存したあと、次のようにnewを使ってオブジェクトを作りましょう。
public class Main {
public static void main(String[] args) {
Book b1 = new Book();
b1.title = "Java入門";
b1.pages = 300;
Book b2 = new Book();
b2.title = "やさしいオブジェクト指向";
b2.pages = 200;
b1.showInfo();
b2.showInfo();
}
}
タイトル:Java入門
ページ数:300
タイトル:やさしいオブジェクト指向
ページ数:200
このコードでは、Bookという自作のクラスから2つのオブジェクト(本)を作り、それぞれに違う情報を入れて、showInfo()メソッドで表示させています。
こうして、自分でクラスを作ってnewで動かすことで、「クラス → インスタンス → 実行」という一連の流れを学ぶことができます。
初心者向けの練習としてはとても良い題材なので、ぜひPleiadesを使って自分でも試してみてください。
7. 振り返りと初心者へのメッセージ
ここまで、「Javaのnewキーワードとは何か?」「どうやって使うのか?」ということについて、やさしく説明してきました。
最初に覚えておいてほしいのは、Javaでは「クラス」だけでは動かないということです。クラスは設計図であり、実際に使うためにはnewで作った「オブジェクト(インスタンス)」が必要になります。
newは、まさに「実物を作る命令」です。この1つのキーワードがあることで、クラスを使っていろいろなモノを動かしたり、情報を持たせたりできるようになります。
今回の内容では、「Dog」や「Book」といったクラスを例にして、newの使い方や意味を具体的に見てきました。これらはどれも初心者向けの練習としておすすめのものです。
もしエラーが出てしまっても、あわてずに「newを忘れていないか」「クラスをちゃんと作っているか」などを見直してみましょう。
Pleiadesを使えば、Javaのコードをすぐに実行して確認できます。たくさんコードを書いて、どんどん自信をつけていきましょう。
Javaの「newキーワード」は、これからの学習でも何度も出てきます。今回の記事で基本がしっかり身につけば、今後の学習もぐっと楽になりますよ。
まずは、簡単なクラスとnewを使って、オリジナルのオブジェクトを作るところから始めてみましょう。学びながら、少しずつJavaが楽しくなっていくはずです。