質問内容は質問するほどのものでなかったようです。
ご迷惑をおかけしました。
回答ありがとうございました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/20 23:57
2020/05/21 05:09 編集
退会済みユーザー
2020/05/21 05:28
2020/05/21 05:30
退会済みユーザー
2020/05/21 05:32
2020/05/21 05:33
退会済みユーザー
2020/05/21 05:35
2020/05/21 05:39 編集
2020/05/21 05:39
退会済みユーザー
2020/05/21 06:53
2020/05/21 19:10
回答5件
0
Dateはクラス名であり、クラスはオブジェクトを生成するためのテンプレートと覚えていたので、戻り値にクラスを指定して何がどうなるのか全くイメージがつきません。
クラスもデータ型です。引数にしたり返り値にしたりできます。
オブジェクトが生成されるのは
クラス名 変数名 = new クラス名
の時ではないのですか?
(最終的には)メソッド内部でそれを行っています。
クラスは参照型であり、クラス型変数が持つのはオブジェクトではなく、オブジェクトの場所を参照する情報ではないのですか?
「だから返り値にできない」という理由にはなりません。
投稿2020/05/20 14:32
総合スコア146018
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/20 14:33
退会済みユーザー
2020/05/20 15:11
2020/05/20 23:12
退会済みユーザー
2020/05/20 23:32
2020/05/20 23:54
退会済みユーザー
2020/05/21 03:17
2020/05/21 03:26
退会済みユーザー
2020/05/21 04:00
2020/05/21 04:13
退会済みユーザー
2020/05/21 04:37
2020/05/21 04:42
2020/05/21 04:45
2020/05/21 05:35
0
参照型だろうがプリミティブ型だろうが同じで戻り値の型を意味する情報で、それ自体は実体と関係がありません。
java
1int getNum(){ 2 return 10; 3}
に近い例で、クラスやインターフェースを使うなら以下のようになります。
java
1Integer getNum() { 2 return Integer.valueOf(10); 3} 4 5String getStr(){ 6 return "10"; 7} 8 9List<String> getList() { 10 return new ArrayList<>(); 11}
これらgetNumとほぼ同じだと思いますが、違いを感じるのでしょうか?
ちなみに、戻り値は実装しだいなので以下のようにしてもコンパイルエ¥ラーにはなりません。
※戻り値の型を意味する情報と戻り値自体の実体は関係ありません。
java
1Integer getNum() { 2 return null; 3} 4 5String getStr(){ 6 return null; 7} 8 9List<String> getList() { 10 return null; 11}
ただ、これだけの話なのですが。
クラスの理解がインスタンスのテンプレートというのがすごい違和感があって
テンプレートという考え方自体は、完全に間違ってるとはいいませんが、
それはクラスとインスタンスとの比較をするさいの例えの話であって
単純に型の話をするときにテンプレートというのがでてくることが、なぜ?という感じです。
追記 ここから
getTimeメソッドの定義にDateオブジェクトを返す、とあるのでDateが戻り値として指定されたのかと思ったのですが、そうすると何故メソッド定義にDateが出てきたのか分からなくなってしまいました。
Dateオブジェクトを返すメソッド定義には、Dateが出るのですが、どこが不思議ですか?
再度、メソッドの定義方法を学習されてみては、どうでしょうか?
java
1Date getHoge() { // Dateオブジェクト(インスタンス)を返すgetHogeというメソッドの定義 2 return new Date(); // Dateのインスタンスを返している 3}
Dateオブジェクトを返すメソッドを定義した意味、意図についての質問は誰も答えられません。
とはいえ、プリミティブ型の配列{5, 21, 2020}みたいに返されても使いにくいでしょ?
投稿2020/05/21 02:35
編集2020/05/21 06:04総合スコア4826
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/21 03:42
2020/05/21 03:47
退会済みユーザー
2020/05/21 03:52
2020/05/21 03:55
2020/05/21 05:22 編集
退会済みユーザー
2020/05/21 05:26
2020/05/21 05:37 編集
2020/05/21 05:50
退会済みユーザー
2020/05/21 06:38
0
ベストアンサー
自分の勉強不足により疑問に思ってしまいましたが、掘り下げること事態が意味のない話のようでした。
下らない質問ですみません。
ご迷惑をおかけしました。
投稿2020/05/21 06:44
退会済みユーザー
総合スコア0
0
DateクラスとCalenderクラス以外にもこのように他クラスを戻り値とするメソッドがあるのでしょうか...
次のコードを見てください。
Mainクラスのメソッド getHello は Stringクラスを返します。
Java
1class Main { 2 public static void main(String[] args) { 3 String str = "Java"; 4 String hello = getHello(str); 5 System.out.println(hello); 6 } 7 8 static String getHello(String name) { 9 String str = "Hello, " + name + "."; 10 return str; 11 } 12}
getHello の中の "Hello, " + name + "." という式の評価結果である
"Hello, Java." は String型のオブジェクトであり、String str で宣言された
変数 str は String型のオブジェクトを参照する参照型です。
return str; で返すのは参照値であり、オブジェクトの実体をメソッドの呼び出し元に
コピーするのではありません。
投稿2020/05/20 20:13
総合スコア8224
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。