質問編集履歴

1

指摘された点を修正

2020/06/02 03:57

投稿

Harune_0829
Harune_0829

スコア0

test CHANGED
@@ -1 +1 @@
1
- java抽象クラスについて
1
+ java クラスでの変数の扱いについて
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 大学課題であるプログラム実装したのですが、数の表示が思通りにいきません原因わかず困ってい
5
+ Animalという抽象クラスを作り、そクラスを継承したDogクラスとCatクラスを下記のコードのように実装しました。プログラム自体はエラーもなく動き、下の行結果のようになります。ただ、自分が実装したかったはWoofと表示した数だけMeowと表示しただけ、それぞれ一番下文(5 woofs and 5 meow)に表示したかったプログラムです。3 woofs and 2 Meow と表示したですおそらくAnimalクラスのcountDogクラスとCatクラスのどちにも反映されていると思ったのでがこの認識で正しいでしょうか?
6
6
 
7
7
 
8
8
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  5 woofs and 5 meow
24
24
 
25
- それぞれの数字を3と2にしたい
25
+
26
26
 
27
27
  ```ここに言語名を入力
28
28
 
@@ -92,7 +92,115 @@
92
92
 
93
93
 
94
94
 
95
+ class Dog extends Animal {
96
+
97
+ public Dog() {};
98
+
99
+ public void noise() {
100
+
101
+ System.out.println("Woof");
102
+
103
+ increment();
104
+
105
+ }
106
+
107
+ }
108
+
109
+
110
+
111
+ class Dog extends Animal {
112
+
113
+ public Dog() {};
114
+
115
+ public void noise() {
116
+
117
+ System.out.println("Woof");
118
+
119
+ this.increment();
120
+
121
+ }
122
+
123
+ }
124
+
125
+ としてみたが結果は変わらなかった。
126
+
127
+
128
+
129
+ 既存のプログラムのgetCountメソッド下記のようにabstractメソッドにして実装してみたが結果は同じ
130
+
131
+ abstract class Animal {
132
+
133
+ public static int count;
134
+
135
+ public static void increment() { count++; }
136
+
137
+ abstract int getCount();
138
+
139
+ abstract void noise();
140
+
141
+ }
142
+
143
+
144
+
145
+ class Dog extends Animal {
146
+
147
+ public Dog() {};
148
+
149
+ public void noise() {
150
+
151
+ System.out.println("Woof");
152
+
153
+ increment();
154
+
155
+ }
156
+
157
+ public int getCount() {
158
+
159
+ return this.count;
160
+
161
+ }
162
+
163
+ }
164
+
165
+
166
+
167
+ class Cat extends Animal {
168
+
169
+ public Cat() {};
170
+
171
+ public void noise() {
172
+
173
+ System.out.println("Meow");
174
+
175
+ increment();
176
+
177
+ }
178
+
179
+ public int getCount() {
180
+
181
+ return this.count;
182
+
183
+ }
184
+
185
+ }
186
+
187
+
188
+
189
+ public class Counter{
190
+
95
- static や this などでいじってみたがうまくいかず。
191
+ public static void main(String[] args) {
192
+
193
+ Animal[] a = {new Dog(), new Cat(), new Cat(), new Dog(), new Dog()};
194
+
195
+ for (int i = 0; i < a.length; i++)
196
+
197
+ a[i].noise();
198
+
199
+ System.out.println(Dog.getCount() + " woofs and " + Cat.getCount() + " meow");
200
+
201
+ }
202
+
203
+ }
96
204
 
97
205
 
98
206