回答編集履歴
2
一度編集途中で誤投稿したため、その修正。
answer
CHANGED
@@ -106,4 +106,13 @@
|
|
106
106
|
なぜ戻り値部分の記述ができないのかというと、おそらく、インスタンスを作るメソッドなので、戻り値を定義する必要性が無いからだと思います。
|
107
107
|
|
108
108
|
また、return文を内部で使うことはできます。
|
109
|
-
ですが、ほとんどの場合、コンストラクタでそこまで複雑な処理をする必要が無く、引数のメンバ変数への代入などだけで済ませるため、あまり内部でreturn文を見ることはないのだと思います。
|
109
|
+
ですが、ほとんどの場合、コンストラクタでそこまで複雑な処理をする必要が無く、引数のメンバ変数への代入などだけで済ませるため、あまり内部でreturn文を見ることはないのだと思います。
|
110
|
+
|
111
|
+
###よく、関数から値を返すのがreturnとありますが、「返す」とはなんでしょうか。println()処理やsetText()のような処理で引数に"hoge"を渡したらhogeと「返ってくる」という意味とはなぜ違うのですか。
|
112
|
+
|
113
|
+
あれは、値が返ってきているのではなく、出力されているだけです。
|
114
|
+
値が返されている場合、メソッドの戻り値の型はvoidではなく、メソッド内でreturn 〇〇; のように値が返されており、また、
|
115
|
+
```java
|
116
|
+
int i = Integer.parseInt(256);
|
117
|
+
```
|
118
|
+
のように、値を取得できます。setText()やprintln()ではこれができません。これらのメソッドでは、目に見える形に表示する処理を内部で行っていますが、戻り値はありません。
|
1
一度編集途中で誤投稿したため、その修正。
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
そんなに強いプログラマーではありませんが、自分の認識を共有させていただきます。
|
2
|
+
※一度編集途中で誤投稿してしまいました。すいません。
|
2
3
|
|
3
4
|
### パターン1, 2
|
4
5
|
|
@@ -35,15 +36,34 @@
|
|
35
36
|
これにより、場合によって以降の処理が不要になる場合、以降の処理をせずに値を返す、といったようなことが可能になります。
|
36
37
|
これを利用して、
|
37
38
|
```java
|
39
|
+
//漢字とひらがなの対応付け
|
40
|
+
private String[][] data = {
|
41
|
+
{
|
42
|
+
"法華",
|
43
|
+
"冨賀",
|
44
|
+
"秘誉"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"ほげ",
|
48
|
+
"ふが",
|
49
|
+
"ぴよ",
|
50
|
+
}
|
51
|
+
};
|
38
52
|
|
39
53
|
//該当する漢字があった場合、それに対応したひらがなの値を返す
|
40
54
|
public String getKana(String val){
|
41
|
-
|
55
|
+
//漢字を順番に見ていく
|
42
|
-
|
56
|
+
for(int i = 0; i < data[0].length; i++){
|
57
|
+
//valと同じなら
|
58
|
+
if(data[0][i].equals(val))
|
59
|
+
return data[1][i];//対応するひらがなを返す
|
60
|
+
}
|
61
|
+
return null;
|
43
62
|
}
|
44
63
|
```
|
64
|
+
のようなことができます。
|
45
65
|
|
46
|
-
|
66
|
+
また、returnの直後に何らかの処理をさせようとしても、メソッドの処理は終了しているため、**無意味な記述だ**としてコンパイルエラーを起こします。たぶん。
|
47
67
|
|
48
68
|
つまり、
|
49
69
|
```java
|