製作物の概要
コンソールで入力した値に合わせて、インスタンスを作成するコードを書いています。
例えばコンソールにて「A」と入力すれば、「item1」というインスタンスを作成して「item1」のメソッドを実行、という流れです。
問題箇所の概要
コンソールで値を入力しても、何も表示されずに終わってしまいます。
問題箇所の説明
期待している動きとしては、コンソールにて①「A」または「B」と、②数字を入力すると、 抽象クラスで設定しているコンストラクタ内のtaxと入力した②の数字をかけ合わせて表示する、というものです。
「インスタンスを作成、値をセットするクラス」内でif文分岐を記述した後、コンソールに①②を入力しても結果が返って来なくなりました。
お聞きしたいこと
入力した値に応じてインスタンスを作成して、結果を表示するためにはどのようにコードを書けばよいのでしょうか。
お手数おかけいたしますが、ご教示のほど何卒よろしくお願いいたします。
結果を表示するクラスです public class display { public static void main(String[] args) { new set(); set.main(args); } }
インスタンスを作成、値をセットするクラスです。 import java.util.Scanner; public class set { public static void main(String[] args) { // スキャナー前準備 Scanner scanner = new Scanner(System.in); // コンソールにて製品分類と金額を入力 String inputString = scanner.next(); int inputInt = scanner.nextInt(); // インスタンスを作成、そして作成したインスタンスに合わせてメソッドを実行 if(inputString == "A") { products item1 = new grocery(1.05); item1.taxCalc(inputString, inputInt); } else if (inputString == "B"){ products item2 = new grocery(1.05); item2.taxCalc(inputString, inputInt); } } }
抽象クラスです。 abstract class products { double tax; String product; public products(double tax) { this.tax = tax; } // 単価の計算を行うメソッド abstract double calc(String product, int price); // 税込単価の表示を行うメソッド public void taxCalc(String product, int price) { // 結果が整数になるようにintへキャストしています System.out.println("税抜き金額は" + price + "です"); System.out.println("税込単価は" + (int) calc(product, price) + "です"); } }
具象クラスです。 public class grocery extends products{ public grocery(double tax) { super(1.05); } @Override double calc(String product, int price) { if(product == "A") { return price * this.tax; } else if (product == "B") { return price * this.tax; } else { } return price * this.tax; } }
回答2件
あなたの回答
tips
プレビュー