質問編集履歴

4

Square、Circleクラスの追加

2020/12/01 15:11

投稿

Grimro
Grimro

スコア1

test CHANGED
File without changes
test CHANGED
@@ -501,3 +501,133 @@
501
501
  }
502
502
 
503
503
  ```
504
+
505
+ ```package objects;
506
+
507
+
508
+
509
+ public class Square extends Rectangle {
510
+
511
+ private double area;
512
+
513
+ Square() {
514
+
515
+ super();
516
+
517
+ super.setSize(10, 10);
518
+
519
+ computeArea();
520
+
521
+ }
522
+
523
+ Square(double w) {
524
+
525
+ super();
526
+
527
+ super.setSize(w, w);
528
+
529
+ computeArea();
530
+
531
+ }
532
+
533
+ void computeArea() {
534
+
535
+ area = super.getWidth() * super.getHeight();
536
+
537
+ }
538
+
539
+ @Override
540
+
541
+ public double getArea() {
542
+
543
+ return area;
544
+
545
+ }
546
+
547
+
548
+
549
+ @Override
550
+
551
+ public void identify() {
552
+
553
+ System.out.println("私は面積が" + getArea() + "の正方形です。" );
554
+
555
+ }
556
+
557
+ }
558
+
559
+ ```
560
+
561
+ ```
562
+
563
+ package objects;
564
+
565
+
566
+
567
+ public class Circle extends Figure {
568
+
569
+ private double radius = 0;
570
+
571
+ private double area;
572
+
573
+
574
+
575
+ Circle() {
576
+
577
+ this.radius = 20;
578
+
579
+ area = this.radius * this.radius * Math.PI;
580
+
581
+ }
582
+
583
+
584
+
585
+ public Circle(double r) {
586
+
587
+ this.radius = r;
588
+
589
+ area = this.radius * this.radius * Math.PI;
590
+
591
+ }
592
+
593
+
594
+
595
+ void setRadius(double r){
596
+
597
+ this.radius = r;
598
+
599
+ area = this.radius * this.radius * Math.PI;
600
+
601
+ }
602
+
603
+
604
+
605
+ double getHeight() {
606
+
607
+ return this.radius;
608
+
609
+ }
610
+
611
+
612
+
613
+ @Override
614
+
615
+ public double getArea() {
616
+
617
+ return area;
618
+
619
+ }
620
+
621
+
622
+
623
+ @Override
624
+
625
+ public void identify() {
626
+
627
+ System.out.println("私は面積が" + getArea() + "の円です。" );
628
+
629
+ }
630
+
631
+ }
632
+
633
+ ```

3

配列の表示のやり方を変更し、進捗が進んだ。

2020/12/01 15:11

投稿

Grimro
Grimro

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,11 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- コンソールにて表示さスタックキュー出力結果ハッシュコード記になっているらしくちゃんとした文字列でしたいですの箇所をどのように修正すればか小さいことも構いませんので、何か分かる方がいらっゃいましたら、どうかご教授頂ければ幸いです
12
-
13
-
14
-
15
-
11
+ これまでpushとgetを用いて表示さやり方をずっ模索していたです、Queueの示はうまくいたようです。しかし、Stackの表示が「私は面積が1600.0の正方形です。」で止まっしまい、その後ArrayIndexOutOfBoundsExceptionエラーがまいました。最後エラー箇所として、Stackでは図形8つ表示させれば良いのですが、これはどのように修正すればいでしうか。
16
12
 
17
13
  ### 該当のソースコード
18
14
 
@@ -46,13 +42,33 @@
46
42
 
47
43
  <Queueの図形>
48
44
 
45
+ 私は面積が200.0の四角形です。
46
+
47
+ 私は面積が200.0の四角形です。
48
+
49
+ 私は面積が600.0の四角形です。
50
+
49
- objects.Rectangle@762efe5d
51
+ 私は面積が1256.6370614359173の円です。
52
+
53
+ 私は面積が1256.6370614359173の円です。
54
+
55
+ 私は面積が2827.4333882308138の円です。
56
+
57
+ 私は面積が100.0の正方形です。
50
58
 
51
59
 
52
60
 
53
61
  <Stackの図形>
54
62
 
63
+ 私は面積が2500.0の正方形です。
64
+
65
+ 私は面積が1600.0の正方形です。
66
+
67
+ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 8
68
+
55
- objects.Square@41a4555e
69
+ at objects.MyStack.pop(MyStack.java:35)
70
+
71
+ at objects.StackAndQueue.main(StackAndQueue.java:61)
56
72
 
57
73
 
58
74
 
@@ -154,7 +170,11 @@
154
170
 
155
171
  System.out.println("<Queueの図形>");
156
172
 
173
+ for(int j = 0; j<7; j++) {
174
+
157
- System.out.println(queue.get());
175
+ queue.get().identify();
176
+
177
+ }
158
178
 
159
179
  System.out.println();
160
180
 
@@ -176,14 +196,20 @@
176
196
 
177
197
  }
178
198
 
179
- System.out.println("<Stackの図形>");
199
+ System.out.println("<Stackの図形>");
200
+
180
-
201
+ for(int j = 0; j<8; j++) {
202
+
181
- System.out.println(stack.pop());
203
+ stack.pop().identify();
204
+
205
+ }
182
206
 
183
207
  }
184
208
 
185
209
  }
186
210
 
211
+
212
+
187
213
  ```
188
214
 
189
215
 
@@ -475,13 +501,3 @@
475
501
  }
476
502
 
477
503
  ```
478
-
479
-
480
-
481
-
482
-
483
- ### 試したこと
484
-
485
-
486
-
487
- ハッシュコードを文字列に入力し直すやり方としてArrays.toString()メソッドがあると調べているうちに見つけましたが、引数Figure[]に対して適用できないというエラーが表示されたところで解決できていない状況です。

2

ソースコードを```で囲いました。

2020/12/01 15:04

投稿

Grimro
Grimro

スコア1

test CHANGED
File without changes
test CHANGED
@@ -62,6 +62,8 @@
62
62
 
63
63
  {StackAndQueueクラス(メインクラス)}
64
64
 
65
+ ```
66
+
65
67
  package objects;
66
68
 
67
69
 
@@ -182,10 +184,16 @@
182
184
 
183
185
  }
184
186
 
187
+ ```
188
+
189
+
190
+
185
191
 
186
192
 
187
193
  {MyQueueクラス(キュークラス)}
188
194
 
195
+ ```
196
+
189
197
  package objects;
190
198
 
191
199
 
@@ -266,7 +274,7 @@
266
274
 
267
275
  }
268
276
 
269
-
277
+ ```
270
278
 
271
279
 
272
280
 
@@ -274,6 +282,8 @@
274
282
 
275
283
  {MyStackクラス(スタッククラス)}
276
284
 
285
+ ```
286
+
277
287
  package objects;
278
288
 
279
289
 
@@ -352,11 +362,13 @@
352
362
 
353
363
  }
354
364
 
355
-
365
+ ```
356
-
357
-
358
-
366
+
367
+
368
+
359
- //以上のクラスとは別のRectangleクラスで定義したidentifyメソッドを以下のように定義しました。SquareクラスとCircleクラスも同様です。
369
+ 以上のクラスとは別のRectangleクラスで定義したidentifyメソッドを以下のように定義しました。SquareクラスとCircleクラスも同様です。
370
+
371
+ ```
360
372
 
361
373
  package objects;
362
374
 
@@ -462,7 +474,7 @@
462
474
 
463
475
  }
464
476
 
465
-
477
+ ```
466
478
 
467
479
 
468
480
 

1

不必要な表記の修正

2020/12/01 14:10

投稿

Grimro
Grimro

スコア1

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- こに質問の内容をく書いてください。
6
-
7
- (例)Javaで図形の配列をスタックとキューの配列に格納して表示するプログラムをEclipseを用いて作成しています。メインクラスであるStackAndQueueクラスとは別にMyStackクラスとMyQueueクラスをそれぞれ作成し、そこで定義したメソッドを用いて配列の内容を表示したいです。前提条件として、格納される図形配列をfigure1(要素数;9)とし、その配列の要素数よりも要素数が小さいスタック(要素数;8)とキュー(要素数;7)の配列を定義します。
5
+ Javaで図形の配列をスタックとキューの配列に格納して表示するプログラムをEclipseを用いて作成しています。メインクラスであるStackAndQueueクラスとは別にMyStackクラスとMyQueueクラスをそれぞれ作成し、そで定義したメソッドを用いて配列の内容を表示です。前提条件とし、格納れる図形配列をfigure1(要素数;9)とし、その配列の要素数よりも要素数が小さスタック(要素数;8)とキュー(要素数;7)の配列を定義します
8
6
 
9
7
  ### 発生している問題・エラーメッセージ
10
8