🟢 はじめに
Javaの勉強、お疲れ様です!
Java Silverの勉強をしていると、引っかかりやすい「罠」があります。
それは…… 「配列の長さを測る時は length なのに、文字列の長さを測る時は length() になる問題」 です!
「えっ、どっちにカッコ () がつくんだっけ!?」と試験中に迷子になった経験はありませんか?
今回は、この紛らわしい違いをRPGの勇者の冒険に例えて解説します!
📦 まずはコードで確認!
勇者のアイテム袋をチェックする、簡単なプログラムを見てみましょう。
public class HeroInventory {
public static void main(String[] args) {
// 勇者のアイテム袋(配列)
String[] items = {"やくそう", "こんぼう", "まほうのかぎ"};
// ① アイテム袋に入っているアイテムの「数」を調べる
System.out.println("アイテムの数は: " + items.length + "個");
// ② 最初のアイテムの名前の「文字数」を調べる
String firstItem = items[0];
System.out.println("最初のアイテムの文字数は: " + firstItem.length() + "文字");
}
}
💡 なぜ () があるものと、ないものがあるの?
同じ「長さを測る」機能なのに、なぜ違いがあるのでしょうか?
実は、Javaの世界では「もともと持っている特徴(ステータス)」なのか、「行動(魔法)」なのかという明確な違いがあります。
1. 配列の length (カッコなし)= アイテム袋の「タグ」🏷️
配列(items)の長さを調べる length には () がつきません。
これは、アイテム袋に最初から「容量:3個」というタグが縫い付けられているようなイメージです。
袋を見ただけでパッと数が分かる「ただの特徴(フィールド)」なので、わざわざ魔法を唱える必要がありません。
だから () は不要です!
2. 文字列の length() (カッコあり)= 文字数を数える「魔法」🪄
一方、文字列(firstItem)の長さを調べる length() には () がつきます。
Javaの世界で () は「行動しろ!魔法を唱えろ!」という合図(メソッド)です。
文字列が書かれた巻物("やくそう")を取り出して、「文字数を数える魔法(length())」を唱えて、初めて「4文字」だと分かります。
行動を起こす必要があるから、() が必要になります!
🗺️ まとめ
-
配列.length➡️ 袋のタグを見るだけ!魔法の杖(カッコ)はいらない -
文字列.length()➡️ 文字数を測る魔法を唱える!魔法の杖(カッコ)が必要
Java学習中の方の参考になれば幸いです🙌