- Javaの名前空間を理解する
- なぜパソコンには名前空間が必要なのか理解する
どうも上達の研究家のワタタクです。
Javaを学んでいて、名前空間という言葉が分かりにくかったので、自分なりに調べました。
備忘録として残しておきます。
この記事を書いた人


上達の研究家 / アーティスト
「才能」ではなく「発見」で描く。文系・36歳からの上達ハック。
- ゼロから独学でクリエイティブコーディングに挑戦し、以下の実績を達成
- 開始1年8ヶ月目までに公募6つに挑戦し、3つ入選(勝率50%)
- KITTE大阪の18メートルあるAxCROSS大型スクリーン
- 虎ノ門ヒルズステーションタワーB2F TOKYO NODE エントランスサイネージで展示
- UN:O(東京大手町)にある会員限定のサテライトオフィスにて2作品常設展示
- 開始1年8ヶ月目までに公募6つに挑戦し、3つ入選(勝率50%)
- 開始1年9ヶ月目に、虎ノ門ヒルズ49階、地上250mのインフィニティプールへ作品提供・展示
- 実際の展示作品と動画、音楽やSEOでの実績はポートフォリオに載せております→https://my-portfolio-blue-three-63.vercel.app/works
「名前空間」って、一言でいうとナニ?
プログラミングを勉強していると、たまに出てくる難しい言葉、「名前空間(なまえくうかん)」
これ、漢字のせいで難しく見えますが、一言でいうと、 「名前がごちゃ混ぜになってケンカしないように分けた、透明な『お部屋(グループ)』のこと」です!
名前空間の英語
名前空間は、英語では Namespace(ネームスペース) と言います。
名前がName。空間がspace。
小学生でも一発で分かる「学校のクラス」の例え話


想像してみてください。 あなたの学校に、「たくや」くんという男の子がいたとします。
もし、学校全体に「1つの大きな教室」しかなくて、全校生徒が全員そこに集まっていたらどうなるでしょう?
先生が「たくやくーん!」と呼んだ瞬間……
- 1年生のたくやくん
- 3年生のたくやくん
- 6年生のたくやくん
全員が「はーい!」って返事をしてしまって、大混乱しちゃいますよね。
だから学校は「クラス」に分かれている!
この大混乱を防ぐために、学校は「1年1組の教室」「3年2組の教室」という風に、お部屋をカチッと分けています。
先生が「1年1組の、たくやくん!」と呼べば、1年1組の部屋にいるたくやくんだけがピンポイントで返事をして、他のたくやくんは静かにしていられます。
プログラミングの世界でいう、この「1年1組」というお部屋(グループ名)のことこそが、『名前空間』の正体です!
名前空間は、なぜパソコン(JavaやGoogle)の世界で必要なの?
さっきの学校の話を、プログラミング(Javaなど)に置き換えてみます。
パソコンの中(メモリ)では、たくさんのプログラムが同時に動いています。 もし、Googleのすごいエンジニアたちが作ったプログラムの中に、偶然あなたと同じ「Particle(つぶつぶ)」という名前のプログラムがあったらどうなるでしょう?
「名前空間(お部屋)」がない世界だと、パソコンが「どっちのつぶつぶのこと!? 意味が分かんない!」とパニックを起こして画面が真っ赤(エラー)になってしまいます。
住所をつけてお部屋を分ける!
そこで、プログラムの一番上に、こんな風に「お部屋の住所(名前空間)」を書いておきます。
- あなたのつぶつぶ:
net.takuya.artのお部屋のParticle - Googleのつぶつぶ:
com.google.searchのお部屋のParticle
こうやってお部屋の名前(名前空間)を最初に決めておけば、世界中にどれだけ同じ「たくやくん(同じ名前のプログラム)」がいても、絶対にケンカせずに仲良く同時に動くことができるのです!
Processingで表現してみた!視覚的に味わう名前空間の世界
この「名前空間がない大混乱の世界」と「名前空間で整理整頓された世界」のちがいを、もっと直感的に体感できるプログラムを作ってみました!
この学校の例え話をProcessing(Javaモード)のグラフィックコードで実際に表現しています。
画面をクリックするだけで、実行結果をデスクトップに画像保存できるおまけ機能付きです。 自分でコードを動かして「メモリの中に明確な壁ができる感覚」をパッと目で見てみたい方は、ぜひこちらの記事もあわせて覗いてみてくださいね!


まとめ:名前空間は「やさしい整理整頓」
最後に、テスト形式でのおさらいです!
名前空間とは?
名前が被ってケンカしないように分けた「お部屋」のこと。
名前空間のメリット
パソコンが同じ名前のプログラム名でも「どっち?」と迷わなくなるから、エラーが起きなくなる!
「名前空間」という難しい言葉の裏側には、「みんなが作ったプログラムを、ごちゃ混ぜにせず大切に整理整頓しよう」という、エンジニアたちのやさしい工夫が隠されているんですね!
名前空間「namespace」のリアルな英会話3つ
英会話の例文を3つ紹介します!
1 名前が被りそうなとき
- A: I want to use the class name “Particle” as well. Will it cause an error?
- 同じ「Particle」というクラス名を使いたいんだけど、エラーにならないかな?
- B: Don’t worry. As long as we keep them under different namespaces, there won’t be any name collisions.
- 大丈夫だよ。別々の名前空間に分けておけば、名前が衝突することはないからね。
2 コードがごちゃごちゃしてきたとき
- A: The project is getting huge, and managing names is becoming a mess.
- プログラムの規模が大きくなって、名前の管理が大変になってきたよ。
- B: It’s time to clean it up and organize it by functionality using namespaces.
- そろそろ名前空間を使って、機能ごとに整理整頓したほうがいいね。
3 住所が長すぎるとき
- A: This namespace is too long, it makes the code hard to read.
- この名前空間、住所が長すぎてコードが読みにくいです。
- B: In Java, you can use “import” to access it directly without typing the full path every time.
- Javaなら「import」を使えば、毎回長い住所を書かなくても一発で呼び出せるようになるよ
難しいカタカナ文字に見えますが、「部屋を分ける」「住所を整理する」というカジュアルな感覚で使っているフレーズです。
それでは今日もレッツワクワクコーディング。
関連記事
名前空間の後に読むと理解しやすい内容です。



