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

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

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

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

キャスト

キャストとは、オブジェクトの型の変換が許可された場合に、明白に別の型への変換を行うプロセスのことです。

Q&A

解決済

3回答

1049閲覧

これは暗黙の型変換ですか?

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

キャスト

キャストとは、オブジェクトの型の変換が許可された場合に、明白に別の型への変換を行うプロセスのことです。

0グッド

0クリップ

投稿2021/07/07 03:57

編集2021/07/07 04:38
1.public class Main { 2. public static void main(String[ ]args) { 3. int[]ary=new int[3]; 4. ary[0]='a'; 5. ary[1]=1.0F; 6. ary[2]=2.0; 7. } 8. }

これは正解が5行目と6行目がコンパイルエラーになるとテキストにのっていますが、それについて質問です。
解説は5行目はfloat型→int型、及び
6行目はdouble型→int型の代入を試みており、かつ、キャストを使用してない為コンパイルエラーとなる。

とありますが、
float型→int型、及び
double型→int型はキャストを使用しないと型変換出来ないので、コンパイルエラーになる。ということでしょうか?

宜しくお願いします。

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

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

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

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

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

y_waiwai

2021/07/07 04:03

このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
Zuishin

2021/07/07 04:13

何が聞きたいのかわかりません。 「解説は」から始まる説明と「とありますが」から始まる説明の違いを説明してください。 このままでは書いてあることをオウム返しにしたようにしか見えず、「そう書いてありますよね」くらいしか言えません。
m.ts10806

2021/07/07 04:14

行数の意味がわかりませんが、手元のコードをそのままコピペすればよいのでは?
K_3578

2021/07/07 04:33

行数表示されてる辺り、本当にエディタ使ってるのかなぁ、という感想。 多分どっかの教材か何かのソースをそのまま持ってきたのではと予想。 別に行番号ぐらい手打ちで外してコードブロックに入れればいいと思いますけどね
Zuishin

2021/07/07 04:43

編集されたけど、結局どこが違うんだろう。 言葉は通じるんだろうか。
K_3578

2021/07/07 04:43

質問の意図が不明。このキャストが暗黙の型変換であるかと言うことを聞きたいのですか?
m.ts10806

2021/07/07 04:50

実際に手元に環境作って動かしてみるのが一番確実。 理論だけ把握したところで身につきません
K_3578

2021/07/07 05:21

https://paiza.io/ja とかだったら環境構築しなくても試せますけどとりあえず書いて動かしてみたらどうですか。
guest

回答3

0

投稿2021/07/07 09:00

shiketa

総合スコア4061

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

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

0

ベストアンサー

このケースほ場合暗黙の型変換は行われません。にも関わらず、int型配列にfloat型やdouble型を入れようとしているのでコンパイルエラーになります。
明示的にキャストすれば、int型に変換されるので問題なくコンパイルできます。

投稿2021/07/07 08:43

Crimson_Tide

総合スコア509

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

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

Zuishin

2021/07/13 04:55

質問に書いてあることと同じですよね?
Crimson_Tide

2021/07/13 07:54

実質は同じと思います。 何か問題や疑問がありますでしょうか?
Zuishin

2021/07/13 07:58

もしかして質問者本人ですか? それとも、最近はそれで通じるんですか?
Crimson_Tide

2021/07/13 08:02

質問者本人ではありません。 何か疑ってらっしゃるのであれば、teratailに問い合わせみてはいかがでしょうか。 別にやましいことはしていませんので、私は一向にかまいません。 最近はそれで通じるんですか? の質問の意図がよくわかりません。
Zuishin

2021/07/13 08:31

質問をオウム返しして回答として成り立つというのはなかなか考えにくいため、それがベストアンサーに選ばれていることに驚いています。 私にはこの質問と回答は「バケラッタ?」「バケラッタ!」のように見えています。
maisumakun

2021/07/13 08:34

うーん、時折「質問に書いたとおり」で回答が成り立ってしまうことがあるので、それほど奇異なこととは思えないです。
Zuishin

2021/07/13 08:47 編集

確かに「これはペンですか?」「はいそれはペンです」なら成り立ちますね。 しかし質問が「これはペンだということはペンはこれだということでしょうか?」だと、質問者が何を聞いているのかがわからないので、「これはペンです」という言葉自体がわからず、その解釈を聞いているものと思われ、見る角度を変えたりエビデンスを示したりせず「これはペンです」というオウム返しで成り立つとは思いませんでした。 いや、言葉の上では成り立つからこそベストアンサーなのか。
Crimson_Tide

2021/07/13 12:04

想像するに、「こんなことでBAはおかしい、自作自演のポイント稼ぎなんじゃないか」と疑っているのでしょう。 先にも言いましたが、疑念があるのであれば運営に問い合わせてはいかがでしょうか。 いくら私が説明したとしても、また質問者さんが質問者さんと私は別人だとコメントしたとしても、何の証明にもなりませんし疑念は晴れないでしょう。 ですがあらぬ疑いをかけられた身として、回答について説明することに致します。 まず、私はBAを頂いたりポイントが上がることを嬉しいと感じますが、それを目的とはしていませんし、ランキングに乗りたいとも思いません。ランキングが上がることで他サイトでの評価に影響するかも、みたいなことをちらっとどこかで見たような気もしますが、具体的にどんなメリットがあるのか知りません。 私は質問者の疑問解消の役に立てればと思い回答しています。もっと言えば私自身が役に立ったと実感したいのが本音です。自作自演では役に立ったと実感などできるはずがありません。 それに仮に自作自演をするとしても、簡単に疑いをかけられるようなことはしないつもりです。 さてこのような回答に至った理由を説明します。 タイトルに 「暗黙の型変換ですか」と聞いていることから「暗黙の型変換が何であるかはわかっている」と判断。 質問内容に 「キャストを使用しないと型変換出来ないので、コンパイルエラーになる。ということでしょうか?」 とあるので、「キャストをすることで型変換ができる」ということが分かっている。「キャスト」「型変換」というキーワードについても知識を少なくとも最低限は有していると判断。 その為、他の方が回答しているようなキャストや暗黙の型変換についての説明は不要と判断しました。 また、質問内容に 「解説は5行目はfloat型→int型、及び (質問文中略) 型変換出来ないので、コンパイルエラーになる。ということでしょうか?」 とありました。 これを読んだ際、同じことを言っているだけで違いがないじゃないか、なぜこのようなことを聞いているのか、微妙な言い換えは何を意味しているのか、と始めは思いました。 何度も見返し、分解してみると(横着な理解かもしれませんが)、以下のようになりました。 解説 「5行目はfloat型→int型、及び6行目はdouble型→int型の代入を試みている」 & 「キャストを使用してない 」 故に 「コンパイルエラーになる」 質問者さんの認識 「float型→int型、及びdouble型→int型はキャストを使用しないと型変換出来ない(=暗黙の型変換されない)」 故に「コンパイルエラーになる」 ここで聞きたいことは、『解説の説明文(の文面)は、 質問者さんの認識で正しいのか』どうかという点、 そして (文面まま受け取れば) 『「型変換できないこと(暗黙の型変換されないこと)」が「コンパイルエラーの原因」』と質問者さんは認識している、と判断しました。 「(暗黙の型変換されないこと」や「キャストを使用しないと型変換できない」ことは、結果的にはコンパイルエラーではあるが直接要因ではなく、コンパイルエラーの要因はこれ(入れられない型への代入)だと明確に説明が必要と判断。 以上を踏まえ、以下のように回答しました。 タイトルに「これは暗黙の型変換ですか?」とあるので「暗黙の型変換かどうかを知りたい」のだと感じ、 まず『このケースほ場合暗黙の型変換は行われません。』と回答しました。 (※「ケースほ」ではなく「ケースの」の誤まりでした) そして「コンパイルエラーになる要因について」改めて私なりに「~でコンパイルエラーになる」という形で回答しました。内容は回答記載の通りです。 結果的には解説文と"内容"は同じことになり、質問者さんの認識を肯定しただけではあります。 そもそも質問の真意はなんだったかは私の想像でしかありませんし、私の回答の意図が正確に伝わったうえでのBAかわかりません。 BAにした理由は、勿論質問者さんにしかわかりません。 私は質問者さんの疑問の真意や考えを想像し、伝わりやすい言葉を意識して端的に回答したつもりです。 結果、質問に対して本当に欲していた内容だったため、ベストアンサーにして頂いたのではないかと想像しています。 説明は以上です。 説明内容に論理的におかしな点があったとしても、(明確な誤りでない限り)相手が納得するのが目的です。 私がこれ以上言えることはありません。 ここに返答することで、アクティブタブに上がってしまいますし、質問者さんにも通知がいくでしょう。 これ以上質問と関係ない話を続け、質問者さんや他の利用者さんに迷惑をかけるのは本意ではありません。そのため、これ以上は返答致しませんので悪しからず。 長文失礼しました。
K_3578

2021/07/14 00:07

迷惑だったら申し訳ないのですが、自分の考えをコメントにしたかったのでコメント失礼します。 自分の回答をBAにしろという傲慢ではありませんが、これがBAになるんだと思ってたので Crimson_Tideさんの回答理由が聞けたのは個人的には有難かったです。 私自身は語句を覚えただけで「暗黙の型変換」「キャスト」を正しく理解されていないと思って あの回答をしましたが、そういう理由があったのならばこの回答は正しい回答だと思います。 (なので高評価しておきます。) 恐らくBAにした理由ですが 質問者さんの過去質問を見る限り、恐らくJava Silver辺りの勉強をしてるんだと思うんですが、 どうも書くだけで覚えようとしてるみたいなので実行環境を用意してないように思いました。 ドキュメントを参照しろという回答が個人的には1番正だとは思うのですが、 勉強中の人はドキュメントを読めない、読むのを敬遠される傾向があるので、 質問内容に対してそのまま回答した回答がBAになったのかと予想しています。 長文失礼しました。 (蛇足ですが、回答は修正出来るので誤字は修正してはどうでしょうか。)
guest

0

何が聞きたいのかよく分かりませんが、

Java

1public class Main{ 2 public static void main(String[] args){ 3 int[]ary=new int[3]; 4 ary[0]='a'; 5 ary[1]=1.0F; 6 ary[2]=2.0; 7 } 8}

というコードに関しては自分がキャストをしてあげないとコンパイルエラーになります。


暗黙の型変換、というのはbyte型の変数xとint型の変数yがあるとして、
小さいサイズのデータ型(byte型)の変数の値を、それより大きいサイズのデータ型の変数に代入する際は
自動的に型の変換が行われます。これを暗黙の型変換と言います。

Java

1public class Main{ 2 public static void main(String[] args){ 3 byte x = 1; 4 int y; //yの値が使用されていないためここで警告は出る 5 y = x; 6 } 7}

投稿2021/07/07 05:00

K_3578

総合スコア1282

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問