- ベストアンサー
ある問についてアドバイスを頂けますか
最近、ここを良く使っているものです。 例えば、ある商品名と金額を入力して、その消費税と賞味期限(1ヶ月)を出すプログラムについてです。 クラスは全部で3つ。それぞれ目的があります。 1つ目をSyohinクラスとします。 ここには、消費税を表すTAX=0.05という変数があります。 それとここで消費税を算出するメソッドを作ります。 第2のクラスをSyohin2とします。 これはSyouhinクラスをスーパークラスとしています。 そして、ここで賞味期限を算出するメソッドを作ります。 第3はmainメソッドがある大元のSampleクラスがあります。 最終的にどのようになるかは、こんな感じです。 売り上げた商品名と金額を入力して下さい。 Javaケーキ(手動入力) 1000(手動入力) 商品名=Javaケーキの消費税は50.0円です。 商品名=Javaケーキは賞味期限が2009年2月17日とする。(現在日付が2009年1月17日の場合) これでプログラムを自分なりに作成してみました。 import java.util.*; import java.io.*; class Syohin1 { private double TAX = 0.05; String item: int kingaku; public Syohin1() { System.out.println("売り上げた商品名と金額を入力して下さい。"); } public void Syohizei(double p1) { TAX = p1; double syohizei = kingaku * TAX; System.out.println("商品名=" + item + "の消費税は" + syohizei + "です。"); } } class Syohin2 extends Syohin { Calendar myCal = Calendar.getInstance(); int kigen = myCal.add(Calendar.MONTH, 2); } public class JTest11 { public static void main(String[] args) throws IOException { Syohin2 syohin = new Syohin2(); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); syohin.item = buf.readLine(); syohin.kingaku = Integer.parseInt(buf.readLine()); Calendar myCal = Calnedar.getInstance(); syohin.Syohizei(0.05); System.out.println("商品名=" + syohin.item + "は消費期限が" + myCal.get(Calender.YEAR) + "年" + syohin.kigen + "月" + myCal.get(Caledar.DATE) + "日" + "です。"); } } 以上です。 勿論、コンパイルエラーになります。 ヒントでいいのでアドバイスを頂ければ、大変幸いです。 本当にヒントだけでいいので、どうぞ宜しくお願い致します。
お礼
レスを頂き、ありがとうございます。 何て言うのでしょうか。今までの回答の中で初めて手を差し伸べて下さった感じがします。 ヒントを参考に調べてみます。 ようやく、光明の兆しが見えてきたような気がします。
補足
質問にはヒントだけでいいと言ってしまいましたが、実際にヒントを頂いても全然活かせませんでした。 まず1つ大きなミスがありました。それは、賞味期限を出すKigen()メソッドを作らなければならなかった事です。 例えば Calendar myCal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yy'年'MM'月'dd'日'"); Date date = myCal.getTime(); String str = sdf.format(date); とこれでは現在の年月日を表示させるだけで、賞味期限をどうするのかが書かれていないのでダメですね。 任意の年月日から1ヵ月後の賞味期限を出す方法はあるのでしょうけど、自分の頭では分かりません。 どうかもう少しだけアドバイスを頂けないものでしょうか。 どうぞ宜しくお願い致します。