2017-05-04 15 views
-5

私は何が間違っているのか分かりません。私はJavaを使用しています。私のコンソールは、getBattingAverage.batters(i)というシンボルを見つけることができないと言っています。打者のバットで、15名の配列であり、そして元を打つ:アンソニー・リゾ54 16メソッドの配列で何が間違っていますか?

public double getBattingAverage() 
    { 
    if(atBats > 0) 
    return (double) hits/(double) atBats; 
    else 
    return 0.0; 
    } 

public double getHighestBattingAverage() 
    { 
     for(i = 0; i < batters.length; i++) 
     { 
      j = getBattingAverage.batters(i); 
      if (maxERA < j) 
       maxERA = j; 

    } 
+0

'batters'は配列ではありません。 – markbernard

+3

Javaプログラミングの入門コースを受講してください。 – Achilles

+0

ここには多くの問題があります.SOの質問には多すぎますが、if文が1つの文であっても、常にif()ブロックの中括弧を使用する習慣を覚えてください。あなたは何トンもの混乱を救うでしょう。 – slim

答えて

0

ここ構文:

j = getBattingAverage.batters(i); 

は、いずれかである必要があり - 配列要素のメソッド呼び出し:

j = batters[i].getBattingAverage(); 

か - リスト要素のメソッド呼び出し。

j = batters.get(i).getBattingAverage(); 

又は - 配列要素、例えば

j = getBattingAverage(batters[i]); 

を使用してメソッド呼び出し。

正直なところ、本物のは答えます:構文に関して試行錯誤しないでください。勉強本/チュートリアルこれらのことがどのように働くのかを学んでください。

+0

これは完全にうまくいった – DarthMilton

+0

もし私が尋ねることができるなら - あなたは受け入れて、後で私の答えを受け入れません。それはすべて大丈夫です。それが目的にあったのか、それとも偶然だったのか疑問に思っていますか? – GhostCat

0

これは有効ではありませんJava - コンパイルされません。あなたのコードからあなたが意図していることは明らかではありません。

getBattingAverage()関数を定義しました。あなたがatBatsを定義し、他のどこかでヒットしたと仮定しても問題ありません。おそらく、包含オブジェクトのインスタンスフィールドとして。中括弧(if)を使用してください。

getHighestBattingAverageのforループでは、あたかもそれが配列であるかのように打者を扱います。そして、は、batters()メソッドを持つクラスのオブジェクトであるとして、getBattingAverage.batters(i)とします。 jはどこから来たのですか? maxERAはどこから来たのですか?

Javaには優れたドキュメントがあります。 ArraysLanguage BasicsTutorials Home、およびAPI Referenceのセクションがあります。これが私がJavaをどのように教えたかです。

IntelliJのようなIDEを使用すると、入力時にエラーがどのようなものかを示し、より良いコードを書くためのヒントを得ることができます。幸運をJavaを学ぶ!

すべてのこと、理想的なStackOverflowの質問には1つの問題があります。これはあなたの最初のJavaプログラムのように見え、それは良い努力のように見えます。しかし、StackOverflowはより具体的な質問のためのものです。 「何も機能していない、ここに不完全な抜粋があります。と説明されています。実際には、私は、おそらく単一の特定の問題を抱えていない、または十分に形成されていないとしてこれを閉じるためにおそらく投票するでしょう。

関連する問題