質問: new Person(); まず、ここの部分が良く分かっていません。 Class名 変数名; として変数を定義した後に 変数名= new Class名(); とすることです。 必ずnewなのかとか、 Class名の変数として定義したのに また変数名を定義?しないといけないのとか。 たぶん、認識違いなのかかもしれないのですが...
回答: クラス設計はオブジェクト指向の鍵ですからね。目的がわからないと存在意義が見いだせないでしょう。 Classはコンピュータ内で「オブジェクト」として扱うものの設計図・取扱説明書のようなもので、設計図をもとにオブジェクトを作成したり、説明書に従ってオブジェクトを操作したりします。 > > 1. クラス名をどうやって覚えているのか > > > 「クラス名を覚える」という感覚が間違いです。本棚や冷蔵庫、車などのように、その物をそう呼んでるだけです。 しいて言えば英語を覚える程度でしょうか。 例に挙がっているPersonも、和訳すれば「人」です。 > > 2. Package、Classをどういった場面で使うのが良いのか(使い道) > > > 提示されているPersonクラスで考えてみましょう。クラスを使わずに書くとします。 その場合、名前と年齢を別々の変数として使うことになります。 1人ならまだいいですが、10人、100人と管理する必要が出てきたとしたら... 100の名前の変数、100の年齢の変数、しかもどれが誰のものか、管理が大変ではないでしょうか。 さらに、人の情報として誕生日を加える必要が出たとなったら... 100人分の変数を新たに加える必要があり、ミスも生まれそうです。 こんな状況でも、クラスを作って管理すると簡単に処理できます。Personクラスから100人分のPersonオブジェクトを作成し、それぞれ名前、年齢を登録すれば名前と年齢がオブジェクト内で結びつきます。 誕生日を加える際も、クラスに新たに誕生日の変数を加えれば済みます。 packageについては省略。 > > 3. Classの中のVoid?まで把握しているものなのか > > > 自分で作ったクラスなら把握している必要がありますし、他人が作ったクラスで公開されているものなら、ドキュメントが存在することがほとんどです。例えばJavaの公開ライブラリの中で、文字列をあつかうStringというクラスのドキュメントはこのようなドキュメントがあります。これを読むと、このクラスがどういうもので、どういうメソッド・コンストラクタがあり、それぞれ何をするものなのかが書いてあります(初心者には難解ですが...)。 > > 4.こう使うと良いよ!という例題があればください。 > > > 2であらかた説明したので省略。 [追記部分への回答] ``` Person x; x = new Person(); ``` 1行目は変数の宣言です。Person型のオブジェクトを入れることができる「箱」のようなものをここで用意し、名前を付けています。 2行目はPerson型を入れる箱に、実際にPersonのオブジェクトをnewで生成し、代入しています。 このようにnewしてオブジェクトを生成して入れることもありますし、何らかのメソッドがPerson型を返すものなら、そのメソッドが右辺に来ることもあります。 また、この部分は連続しているのなら、次のように書くことがほとんどです。 ``` Person x = new Person(); ```