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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

3535閲覧

【Java】波括弧の意味

t.z

総合スコア21

Java

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2020/02/28 15:34

編集2020/02/29 03:41

{1,1,1}とはなんですか。

EmbossMaskFilter  |  Android デベロッパー  |  Android Developers

Java

1 2public EmbossMaskFilter (float[] direction, 3 float ambient, 4 float specular, 5 float blurRadius)

を使用したコードで、引数のdirectionの部分が、float[] {1, 1, 1},となっているものを見たのですが、この波括弧の意味はなんですか。配列[]なのに波括弧{}が後に来る理由もわかりません。[1,1,1]ではダメなのですか。

ご教授願います。

##追記1

元々タイトルが【Java】山括弧の意味 本文も山括弧{} となっていましたが、山括弧は<>で、質問しているのは波括弧{}でしたので修正しました。

##追記2

[1,1,1]がなぜダメなのかはリンクのリファレンス先に

float: array of 3 scalars [x, y, z] specifying the direction of the light source

とあったためですが、こちらはJavaの構文とは関係ないとコメントいただき解決しました。

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

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

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

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

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

jimbe

2020/02/28 17:42

「山括弧の意味」が分からないのに「[1,1,1]ではダメなのですか」と言えるのはなぜでしょう.
t.z

2020/02/28 17:53

リンク先のリファレンスに > float: array of 3 scalars [x, y, z] specifying the direction of the light source とあったので、急に山括弧{}が出てきて疑問に思いました。
jimbe

2020/02/28 18:01 編集

それは説明として配列内の各値が何であるかを表しているだけで, java (の構文)とは関係ありません.
t.z

2020/02/28 18:21

そうだったのですね。山括弧を使わない書き方はあるのでしょうか。
jimbe

2020/02/28 18:38

swordone さんが回答されています通り, 其の箇所で配列を生成・初期化している書き方でしょう. ですので, 他の方法で値を設定した配列をそこに指定すれば良いだけです.
xebme

2020/02/29 00:57

不等記号<>を山括弧と言います。質問の括弧{}は波括弧と呼ばれます。 https://ja.wikipedia.org/wiki/%E6%8B%AC%E5%BC%A7 質問をじかに訂正すると、コメントと整合性がなくなるので、追記訂正してください。
t.z

2020/02/29 03:41

jimbe さん、このコメントは追記・修正欄でした。teratailはじめたばかりで、不慣れですみません。ご回答ありがとうございます。 xebme さん、ご指摘ありがとうございます。追記訂正になっているかわかりませんが、編集しました。ありがとうございます。
xebme

2020/02/29 10:30

>float[] {1, 1, 1},となっているもの new がfloatの左についていませんか。だとしたら配列のインスタンスを生成していると考えられませんか。
t.z

2020/02/29 12:41 編集

ここのコメントでも質問・回答のやりとりがあっていいのですね。 > new がfloatの左についていませんか。 ついています! 配列なのでfloat型の配列変数を宣言しただけでは参照が空なので使用できず、どこかで配列の値を格納しなければならず、すでに初期値がx,y,zとも決まっている。このnewは配列```float[] direction```に対するnewと考えて、newする配列がx,y,z(複数)の要素を含むので配列初期化子{}を使うことになる。という理解でどうでしょうか。 上記(2020/02/29 03:21)の山括弧を使わない書き方に関しては、例えば ```Java float[] direction = new float[3]; direction[0] = 1; direction[1] = 1; direction[2] = 1; ``` と設定し、引数にdirectionを指定する方法でしょうか??? ``` [x, y, z]``` がそのまま使えることはないですよね?
jimbe

2020/02/29 14:02

コメント欄では ``` 等は使えません. > float[] direction = new float[3]; > direction[0] = 1; > direction[1] = 1; > direction[2] = 1; あっていると思います. "[x, y, z]" という記述での配列の表現方法は java にはありません.
xebme

2020/02/29 18:41

float[] direction = null; direction = new float[]{1,1,1}; これも同じですね。
t.z

2020/03/02 04:32

jimbeさん、xebmeさん、理解が深まりました。 ありがとうございます。
guest

回答1

0

ベストアンサー

**配列初期化子**です。

投稿2020/02/28 15:42

swordone

総合スコア20675

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

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

t.z

2020/03/02 04:35

簡潔にありがとうございます。 わかりやすいリンクもありがとうございます。 理解を進めながら振り返りたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問