職業訓練 43日目 JAVA
スターバックの開店時刻直後ぐらいに入店するのですが、
新商品、グッズの発売日には 結構な行列になります。
注文待ちしなくてよいように調整しているのだけど。
みなさんタンブラーリボンを買ってたみたい。
まだあったので買えばよかったかな。

スターバックス福袋は落選だった。

職業訓練 JAVA
例外処理
生成AI課題
課題内容:図形管理システム
要件
- 抽象クラス
Shape - フィールド:
name(図形名) - コンストラクタ:引数1つで初期化
- 抽象メソッド:
area()(面積を返す),perimeter()(周囲長を返す) - 共通メソッド:
printInfo()→ 図形の情報を表示 - サブクラス
Circle(円):半径を持ち、面積と周囲長を計算Rectangle(長方形):幅と高さを持ち、面積と周囲長を計算Triangle(三角形):底辺と高さを持ち、面積を計算(周囲長は仮に底辺×3とする簡易版)- ArrayList の利用
ShapeManagerクラスでArrayListを保持addShape(Shape s)で追加showAllShapes()で全図形の情報を表示totalArea()で全図形の面積合計を計算- Main クラス
- 複数の図形を作成し、
ShapeManagerに追加 - 全図形の情報を表示し、面積合計を出力
import java.util.ArrayList;
public abstract class Shape {
private String name;
public Shape(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract double area() ;
public abstract double perimeter();
public void printInfo() {
System.out.println("図形:" + name + ",面積:" + area() + ",周囲長:" + perimeter());
}
}
class Circle extends Shape {
private double radius;
public Circle(String name,double radius) {
super(name);
this.radius = radius;
}
public double area() {
return Math.PI * radius * radius;
}
public double perimeter() {
return 2 * Math.PI * radius;
}
}
class Rectangle extends Shape{
private double width;
private double height;
public Rectangle(String name,double width,double height) {
super(name);
this.width = width;
this.height = height;
}
public double area() {
return width * height;
}
public double perimeter() {
return 2 * ( width + height);
}
}
class Triangle extends Shape{
private double base;
private double height;
public Triangle(String name , double base , double height) {
super(name);
this.base = base;
this.height = height;
}
public double area() {
return (base * height)/2;
}
public double perimeter() {
return base * 3 ; //便宜的に正三角形
}
}
class ShapeManager{
private ArrayList<Shape> shapes = new ArrayList<>();
public void addShape(Shape s) {
shapes.add(s);
}
public void showAllShape() {
System.out.println("===登録された図形一覧===");
for (Shape s : shapes) {
s.printInfo();
}
}
public double totalArea() {
double sum = 0;
for (Shape s : shapes) {
sum += s.area();
}
return sum;
}
}
public class Main{
public static void main(String[] args) {
ShapeManager manager = new ShapeManager();
manager.addShape(new Circle("円1",5));
manager.addShape(new Rectangle("長方形1",4,6));
manager.addShape(new Triangle("三角形1",3,4));
manager.showAllShape();
System.out.println();
System.out.println("全図形の面積合計:" + manager.totalArea());
}
}
43日目/113日間
このブログへのコメントは muragonにログインするか、
SNSアカウントを使用してください。