- ベストアンサー
配列について質問
僕はjava初心者です、ご回答は優しくお願いします! 質問1:配列の定義について、本質的には「配列要素の集合」のことでしょうか? 違ったら、その本質をご教示ください。 質問2:配列は、オブジェクトだとjavaの参考書には書かれていました。そして、オブジェクトとは、「データとそれを操作する機能(メソッド)がひとまとまりになったもの」とも書いてありました。 ここでいう「データ」とはなんですか?配列要素のことですか? 質問3:配列とは、ヒープ内にある「配列要素の集合を保管した箱」でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>質問1:配列の定義について、本質的には「配列要素の集合」のことでしょうか? そう思ってもかまわないと思います。正直、このあたりの話は、ほとんど「言葉遊び」になってしまうきらいがあります。 >ここでいう「データ」とはなんですか?配列要素のことですか? Javaにおける「オブジェクトのデータ」というのは「フィールド」のことです。Javaにおいては配列がクラスである以上、配列の要素は配列クラスに用意されているだろうフィールドに保管されているはずで、それを添字で指定し取り出しているはずですので。 >質問3:配列とは、ヒープ内にある「配列要素の集合を保管した箱」でしょうか? ヒープ内にあるかどうかは「本質」とは関係ありませんし、「配列要素の集合」と「配列要素の集合を保管した箱」が、あなたが同じニュアンスで考えているならそうでしょう。これも「言葉遊び」になってしまうと思います。「配列はオブジェクト」ということを重視すれば、「配列要素の集合を保管した箱じゃないよ。オブジェクトだから配列要素以外のものも含まれているし」という見方もできるでしょう。 今まで何度か質問を見ていますが、正直、どれも本質とは関係のない、言葉遊びに終始している気がします。Javaの初心者ということですが、個人的には「細々とした定義や本質は脇において、しばらくの間、ひたすらコードを書いてみなさい」とアドバイスします。昔から「読書百遍、意、自ずから通ず」といいます。プログラミングも同様で、「コード千行、意、自ずから通ず」と思います。言葉で定義など理解しなくとも千行のコードを書けばその本質は自ずからわかってくるはずですよ。 プログラミング言語の習得は、「知識の集積」ではありません。むしろ「習うより慣れよ」の世界です。「この機能の本質とは何か?」を思い悩む暇があったら1行でも多くコードを書くことを勧めます。英語を学ぶとき、英文法を机上で3年間学ぶより、実際に米国に1年住んでしまうほうがはるかに上達するでしょう?
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
> 僕はjava初心者です あなたのJavaについての質問をずいぶん前から見かけます。もう初心者ではないでしょう。 「まだ初心者」だと言うのなら、学習のしかたがよっぽどよくなかったのでしょう。 私には、「わざと難しい言葉を使って理解しようとして、自分で勝手に混乱して、理解できないでいる」ように見えます。 それとも、あなたは「Javaを使ったプログラミングをしたい」のではなく「Javaそのものを作りたい」のでしょうか? > ご回答は優しくお願いします 初心者だからといって、優しくはしてくれないのが世の中というものです。 間違いを犯させないために、初心者だからこそ厳しくする、ということもあるでしょう。 >質問1 「配列要素の集合」ではあります。 なにをもって「本質」とするかは、立場や視点によって変わるのではないでしょうか。 >質問2 配列に関するあらゆる物です。 要素はいうにおよばず、要素の型、配列の長さ等もそうですし、Java内部でのアドレス等もそうでしょう。 >質問3 ヒープだのなんだの、そういうのを意識しないで使えるようにするのがプログラミング言語の役目の一つです。 『本質的には「配列要素の集合」』と考えているのなら、それがヒープにあろうがなかろうが、そんなのは本質では無いでしょ?
お礼
ごめんなさい、、、 僕は変に難しく考えすぎてました、、、 僕は本当にばかです。。
お礼
ごめんなさい、、、 僕は自分の学習の仕方間違ってました 沢山コード書いてひたすら体で覚えます、、