質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

3752閲覧

配列、多次元配列、メソッドの呼び出し、引数の簡単に解説してほしいです。

kkb

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2017/10/12 00:35

編集2017/10/12 08:31

全くのド素人なのですで、今javaをやっているのですがいまいち配列・多次元配列や引数やメソッドの呼び出しが理解できていません。(特に私自身理解力がないので)
ですので、馬鹿にでもわかるような簡単に解説してほしいです。
よろしくお願いいたします。

追記:
質問の仕方についてのアドバイスありがとうございます。
わからない所:配列全般・引数・メソッド・メソッドの呼び出し、等々
ほぼ独学で勉強しており配列の仕組みというか考え方など、根本的に理解できておらずコードもどういう風に書いていいかすらしっかりと理解できていません。
なので、配列とはこんな仕組みで・こういう風に考えて、など。
あと、私はプログラマーを目指しており出来ればプログラミングする上で「ここはしっかりと理解していた方がいい」などアドバイスくださると有難いです。

質問ばかりで申し訳ございません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/10/12 00:40

質問タグに「JAVA」を追加されてはいかがでしょうか。また、具体的なコードを元に質問されたほうが回答を得やすいと思います。
fiveHundred

2017/10/12 00:47

どこが分からないかをもう少し詳しく書いてください。また、「引数メソッド」とありますが、「引数のあるメソッド」のことでしょうか?
guest

回答2

0

自分もきちんと理解しているとは言い難いので、間違っていたらすみません。
「メソッド」というのは、幾つかの計算や処理を一纏めにして、名前を付けた物です。

数学の「関数」と似た様な物だと考えるのが早いかもしれません。


例えば、
z=2x+y
という関数の数式があるとします。
「xとyの値を入れると、zの値が求められる」のが、この関数の数式です。
例えば、x=2,y=3の場合、この数式を使うと、zの値が7だという結果が分かります。


これを似た様な物を、Javaで言う所の「メソッド」として作ると、こんな感じになるかと思います。

Java

1public int getZValue(int x,int y){ 2 int z=2*x+y; 3 return z; 4}

「getZValue」というのは、「zの値を求めるメソッド」だという事で、今適当に付けた名前です。
別に他の名前でも構いません。

括弧の中にある、「int x,int y」というのは、この「getZValue」というメソッドを使うには、変数xとyの値を入れる必要があるという意味です。
この変数xとyの数値が、質問にある「引数」です。
メソッドを使う為に、メソッドに渡す値の事です。
勿論、引数が一つもないメソッドも作れます。

「int z=2*x+y;」で、zの値を計算している事が分かるかと思います。

その後、「return z;」とあるのは、この「getZValue」というメソッドを使って最終的に求められる結果が、zの数値だという事です。
これは「返り値」と言います。
メソッドを使った結果、求められる値です。
言い換えれば、この「getZValue」というメソッドを使うのは、返り値であるzの値を求める為です。

メソッドの最初にある、「public int~」と言う部分の「int」は、返り値がint型だという意味です。
zが、この「getZValue」というメソッドの返り値なので、「int」と書きました。


こうして作った「getZValue」というメソッドを実際に使うとすると、

Java

1 z=getZValue(3,6);

といった書き方をする事になるかと思います。
「getZValue」に3、6という引数を渡して「getZValue」を使い、その結果求められた返り値を変数zに入れています。


結局の所、「予めメソッド「getZValue」を作っておく事で、getZValue(xの値,yの値)と書けば、zの値が求められる」という事です。
勿論、単に「int z=2*x+y;」と書いても、今回の例では大して手間は変わりません。

しかし例えば、もっと複雑な何行にも渡る計算だったり、その計算を色んな箇所で何回も使う事があったりすると、メソッドを使ってその計算を一纏めにしてしまった方が便利です。
例えば、2個の数値の平均を何回も求める必要があるプログラムを書いているなら、「2個の数値を渡すと、その平均値が求められるメソッド」を予め作って置いた方が良いです。
何回も同じ様なプログラムを書いたりする必要がなく、ミスも減り、ミスを直すのも簡単になります。

投稿2018/01/15 08:37

r201670110mr

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/01/15 10:01

数学の純粋な関数と対比するのであれば、staticメソッドにする必要があるのでは。
kkb

2018/01/16 01:03

ご丁寧にわかりやすく解説して頂きありがとうございます!少しは理解出来た気がします!
r201670110mr

2018/01/17 03:22

すみません。 確かにLouiS0616さんの仰る通りでした。 ただ、質問者さんは恐らくクラスの概念が分かっていらっしゃらない様なので、クラス変数やクラスメソッドの説明をされても分からないのではないかなと思うので、今のままにさせて下さい。
guest

0

ベストアンサー

「配列」
配列というのは、要素(値)を入れる場所を並べたようなイメージです。

1行に1つの値を記入するように(罫線のある)ノートのページを使うことにすると、そのページにはデータの列(並び)ができます。 このように、データが並んでいる集まりが配列です。

ノートのどこに要素(値)を記入するか、あるいはどの要素(値)を見るのかは、「何行目」で指定できます。このように配列の中でのデータの位置を指定する数値は、"インデックス"と呼ばれます。(インデックスが0から始まる(最初の要素のインデックスが0)プログラミング言語と、インデックスが1から始まるプログラミング言語があるので注意が必要です。Javaはインデックスが0から始まる言語です)

「多次元配列」
配列に入る要素は文字列や数値などの値に限られるものではありません。配列を要素とする配列というのも許されます。

ノートのページの例は値が縦方向に並んでいるだけなので、1次元(インデックスで指定できる次元(方向)が1つしかない)配列になります。

ノートの2ページ以降も、1行に1つの値を記入するように使うことにすると、ノートは配列(ノートの1つのページ)が並んだものになるので、2次元(インデックスで指定するのが、「何ページ目」と「何行目」の2つある)配列になります。

更に、同じようなノートが複数ある、そうしたノートは本棚の複数の棚に分けて置かれる、そんな本棚がたくさんある、というように次元を増やした配列を作ることができます。(この例だと、何番目の本棚の、何段目の棚の、何冊目のノートの、何ページ目の、何行目というように指定しないといけないので、5次元配列ですね)

多次元配列は、2次元以上の配列をひっくるめた名前です。

投稿2017/10/12 01:11

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkb

2017/10/12 01:20

わあああ!!!すごくわかりやすいです!!やっと理解できた気がします、ありがとうございます・・!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問