回答編集履歴

2

追加

2020/09/08 06:50

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -118,4 +118,26 @@
118
118
 
119
119
 
120
120
 
121
+ たとえば、こんな感じに。
122
+
123
+ ```Java
124
+
125
+ @Override
126
+
127
+ public String toString() {
128
+
129
+ return "返したい文字列";
130
+
131
+ }
132
+
133
+ ```
134
+
135
+ (よく見たらNetクラスの定義滅茶苦茶なのね^^;
136
+
137
+ 実例あげようとしたら無理だった)
138
+
139
+
140
+
141
+
142
+
121
143
  それをやって初めて、`String.valueOf(Nom01)`が期待通りの動作になります。

1

追加

2020/09/08 06:50

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -98,4 +98,24 @@
98
98
 
99
99
  しかし、Javaでは、全てのクラスがObjectクラスを祖とするクラスツリーに含まれていることになっています。
100
100
 
101
- クラスの継承を何も指定しなかった場合、Object
101
+ クラスの継承を何も指定しなかった場合、Objectクラスを自動的に継承します。
102
+
103
+ これはそういう仕様です。
104
+
105
+
106
+
107
+ そして、toStringメソッドは、Objectクラスが持っています。
108
+
109
+ つまり、Objectクラスを継承したNetクラスも、toStringメソッドを持っているのです。
110
+
111
+
112
+
113
+ しかし、その実装はおそらくあなたの期待するものではないと思います。
114
+
115
+ なので、自分の思い通りの動きにするには、NetクラスでtoStringメソッドをオーバーライドする必要があります。
116
+
117
+ オーバーライドする事で、好きな値を、インスタンスの文字列として設定することができます。
118
+
119
+
120
+
121
+ それをやって初めて、`String.valueOf(Nom01)`が期待通りの動作になります。