2016-08-17 3 views
-1

を変換する私はあなたのために私の先生の質問報告:静的なユーティリティメソッドintValueを実装して、インスタンスメソッドを持っている コードを再利用- ローマ数字

を。

// TODO implement this 
     public static int intValue(String roman) { 

      return 0; 
     } 

私はそれがこのようなものだと思うことを、私は静的メソッドを使用する必要がなぜ私がよりよく理解していないと私は、コードを再利用する必要がある理由:

public int intValue() { 
     int decimal = 0; 
     int lastNumber = 0; 
     number = number.toUpperCase(); 
     for (int x = number.length() - 1; x >= 0; x--) { 
      char convertNumber = number.charAt(x); 
      switch (convertNumber) { 
      case 'M': 
       decimal = processDecimal(1000, lastNumber, decimal); 
       lastNumber = 1000; 
       break; 
      case 'D': 
       decimal = processDecimal(500, lastNumber, decimal); 
       lastNumber = 500; 
       break; 
      case 'C': 
       decimal = processDecimal(100, lastNumber, decimal); 
       lastNumber = 100; 
       break; 
      case 'L': 
       decimal = processDecimal(50, lastNumber, decimal); 
       lastNumber = 50; 
       break; 
      case 'X': 
       decimal = processDecimal(10, lastNumber, decimal); 
       lastNumber = 10; 
       break; 
      case 'V': 
       decimal = processDecimal(5, lastNumber, decimal); 
       lastNumber = 5; 
       break; 
      case 'I': 
       decimal = processDecimal(1, lastNumber, decimal); 
       lastNumber = 1; 
       break; 
      } 
     } 
     return decimal; 

誰かがに説明してもらえ私?あなたの先生はラインreturn 0;を削除し、メソッド本体がどうあるべきかで書くことがあなたを望んでいる

+0

「なぜ」の答えはおそらく:教師があなたに言ったからです。残りについては、あなたの正確な問題は何ですか?あなたは何をやってみましたか、どこで失敗しましたか、どのようなエラーがありましたか? – UnholySheep

+0

なぜあなたは "静的クラス"を持ちたいのですか?この割り当てでは、静的メソッドを実装するように求められます。これは 'static'キーワードを持つクラスメソッドです(最初に投稿されたコードに見られるように)。そして、コードの再利用によって、あなたの先生がインスタンスメソッドを呼び出すことを意図していたことを確信しています。私はあなたがこの課題を作成した人であり、フォーラムやウェブサイト上の誰よりもよく答えることができるので、先生にこの質問をする必要があるように感じます。また、Javaの「静的ヘッダー」とは何ですか? – UnholySheep

+0

@UnholySheep:はい私は間違いを言った:\t 私の正確な問題はどのように静的メソッドを作ることですか?どのようにこのコードを再利用する、私はブラケットで静的ヘッダーを閉じてコピーして貼り付けする必要がありますか? このように: public static int intValue(String roman){ //ここに リターン0; } – InExperience

答えて

0

ありがとう:私は、サイトの正しい操作にミスを犯した場合

public static int intValue(String roman) { 

     //write code here that returns an int based on a Roman numeral String like "MVCXIII" 
    } 
+0

はいこれは大丈夫ですが、私は内部に入れる必要があります。彼はなぜコードを再利用できると言ったのですか? – InExperience

+0

おそらく、あなたは内部にあるコードを少し変更して置くことができます。 –

0

はごめんなさい。

すべての実装メソッドをpublic int intValue()をprivate static int intValue(String roman)に移動し、メソッドをpublic int intValue()にリファクタリングしました。 これは私の先生の要求の手段であると思います。暫定的な解決策は次のとおりです。

public static int intValue (String roman){ 
     int decimal = 0; 
     int lastNumber = 0; 
     roman = roman.toUpperCase(); 
     for (int x = roman.length() - 1; x >= 0; x--) { 
      char convertNumber = roman.charAt(x);  
      switch (convertNumber) { 
      case 'M': 
       decimal = processDecimal(1000, lastNumber, decimal); 
       lastNumber = 1000; 
       break; 
      case 'D': 
       decimal = processDecimal(500, lastNumber, decimal); 
       lastNumber = 500; 
       break; 
      case 'C': 
       decimal = processDecimal(100, lastNumber, decimal); 
       lastNumber = 100; 
       break; 
      case 'L': 
       decimal = processDecimal(50, lastNumber, decimal); 
       lastNumber = 50; 
       break; 
      case 'X': 
       decimal = processDecimal(10, lastNumber, decimal); 
       lastNumber = 10; 
       break; 
      case 'V': 
       decimal = processDecimal(5, lastNumber, decimal); 
       lastNumber = 5; 
       break; 
      case 'I': 
       decimal = processDecimal(1, lastNumber, decimal); 

       lastNumber = 1; 
       break; 
      } 
     } 
     return decimal;  
    } 

    public int intValue() { 

     int rn = this.intValue(); 
     return rn; 
    } 
関連する問題