• ベストアンサー

オブジェクトを格納するためのローカル変数のデータ型について

ずっとCOBOLユーザで、初めてJAVAを勉強しています。 初歩的なところで、早くも躓いています・・・。 オブジェクトを格納する為のローカル変数の「データ型」について、 私が使用している本に「格納するオブジェクトのクラスがデータ型と なります。」と書かれていますが、ピンと来ません。 クラス名がデータ型になるって、どういうことなんでしょう? どなたか、こんな私に判るように説明していただけませんか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

クラスについては、オブジェクト指向という考え方が生まれる以前のいくつかの方法論を 継承してできあがった概念ですので、一言で説明しようとすると、やや難しい部分が あります。(特に従来のプログラミングの経験を積んだ方には、なおのこと。) 出発点として、ファイルのレコードのようなものだと考えると分かりやすいかもしれません。 例えば、顧客情報のファイルがあったとします。個々の顧客の情報は一人一人違っていて 当然ですが、同じファイルの中のデータは、通常すべて同じ形式の情報でできています。 Aさんのデータは住所と氏名と・・・とを含みます。Bさんのデータも住所と氏名と・・・とを 含みます。Cさんのデータも・・・ということになっていたとしたら、一般的に 「住所と氏名と・・・とを含むもの」という概念を作ったら便利だと思いませんか? これがつまり「データ型」であり、Javaでは「クラス」と呼ばれるものです。 すると、例えば「Xさんのデータは顧客情報(クラス)のデータです。」と表現しただけで 「Xさんのデータは氏名と住所と・・・を含みます。」と言ったのと同じことになります。 Javaの文法で表現すると、こんなことになります。 class KokyakuJouhou { String Shimei; String Juusho; : } KokyakuJouhou Asan; とりあえず、こんな理解から始めてみて下さい。

ryujun
質問者

お礼

イメージが掴めてきました! どうしても、数値型、文字型・・・と考えてしまい勝ちなんですが、そうでは 無いのですね。 先に進むことが出来そうです。ありがとうございました!

その他の回答 (1)

回答No.1

例えば、Stringはクラス名でStringという型です。 Stringはオブジェクトであり、 例えば String str = new String(); int a= str.length() などのように使用しますよね。 クラス名がデータ型という言い方よりもクラス名が そのクラスの型(オブジェクトの型)と考えたほうがいいです。 その本に「クラス名がデータ型になる」と書いてあったということは、説明しているクラスがデータを格納するために作られた独自クラスだったからではないでしょうか。 例えば public class StudentData{ private name; private age; public getName(){ return name; } public setName(String str){ name = str; } : :(省略) } というような生徒の名前と年を格納するクラスを作成します。 public class StudentInformation{ StudentData studentData; public void setStudentData(name, age){ studentData.setNmae(name); studentData.setAge(age); } public StudentData getStudentData(){       ↑データ型   return studentData; } } このようなクラスがあったとするとgetStudentData()メソッドの型がStudentDataクラスがデータ型ということになります。 基本的には 「クラス名がそのクラスのオブジェクトの型である」 とおぼえたほうがいいと思います。 実際はこれだけではないですが。。。

ryujun
質問者

お礼

「オブジェクト指向」というものを理解しきれていない為、なかなか「型」というもののイメージが湧きませんが、ボンヤリと見えてきたような気がします。 (こんなに詳しく説明してくださっているのに「ボンヤリと」で、申し訳ありません。(汗)) ありがとうございました。

関連するQ&A