2013-04-22 3 views
0

Когда я компилирую мой код, я получаю эту ошибку:Ошибка Java: метод recordShot в классе PaintballPlayer не может применяться к заданным типам;

«PaintballPlayerTest.java:19: ошибка: Метод recordShot в классе PaintballPlayer не может быть применен к данным типам; sheldon.recordShot (0); ^ требуется: нет аргументов найдено: int Причина: фактические и формальные списки аргументов различаются по длине «

Это было довольно неприятно, и я надеялся, что кто-то здесь сможет мне помочь. Код выглядит следующим образом ....

Mine:

import java.util.*; 

public class PaintballPlayer 
{ 
private String firstName, middleName, lastName; 
private String secFirst, secLast; 
private int id; 
private int count; 
private static int totalPlayers; 
private int playerID; 
private int players; 
private int shots; 
private static int shotsFired; 


public PaintballPlayer(String first, String middle, String last) 
{ 
    count = 0; 
    id = totalPlayers++; 
    players = count++; 
    shots = count++; 
    firstName = first; 
    middleName = middle; 
    lastName = last; 

} 

public PaintballPlayer(String f, String l) 
{ 
    this (f,"",l); 
    id = count++; 

} 


    public PaintballPlayer() 
{ 
totalPlayers++; 
    } 


    public static int getTotalPlayers() 
{ 
return totalPlayers; 
} 

public int recordShot() 
{ 
    return count; 
} 

public String toString() 
{ 
    String name; 
    String n; 
    name = firstName + " " + middleName + " " + lastName; 

    return name; 

} 


public int getPlayerID() 
{ 
    playerID = count; 
    return playerID; 
} 

} 

Код проверки:

public class PaintballPlayerTest 
{ 

public static void main (String [] args) 
{ 
//Part 1 check constructor & toString --(make sure ID is working too) 
PaintballPlayer sheldon = new PaintballPlayer ("Sheldon", "Lee", "Cooper"); 
PaintballPlayer leonard = new PaintballPlayer ("Leonard", "Hofstadter"); 
PaintballPlayer amy = new PaintballPlayer ("Amy", "Farrah", "Fowler"); 

System.out.println(sheldon); 
System.out.println(leonard); 

//Part 2 test getTotalPlayer --should be 3 
System.out.println("The team has this many players " + PaintballPlayer.getTotalPlayers()); 

//Part 3 test recordShot 
sheldon.recordShot(0); 
sheldon.recordShot(1); 
leonard.recordShot(0); 
leonard.recordShot(0); 
sheldon.recordShot(0); 
sheldon.recordShot(1); 
leonard.recordShot(2); 
} 

Моя проблема лежит в области маркированы части 3. Я ценю любую помощь, которую я получаю.

ответ

1

required: no arguments found: int reason: actual and formal argument lists differ in length"

Сообщение об исключении в значительной степени ясно.

Вы recordShot() без параметра в PaintballPlayer

public int recordShot() 
{ 
    return count; 
} 

Но вызов с int параметром в PaintballPlayerTest

sheldon.recordShot(0); 

Либо вам нужно изменить recordShot() к recordShot(int cnt) (или) удалить проходящее значение при вызове recordShot()

+0

Итак, с этим, Я добавляю «int» внутри скобки? 'public int recordShot (что-то здесь)' EDIT: Я думаю, что вижу, что вы имеете в виду –

+0

@DevonFreese: Я не мог понять, чего вы пытаетесь достичь с помощью recordShot()? вы просто возвращаете счет там, то почему вам нужно передать параметр? – kosa

+0

Чтобы записать количество выстрелов, чтобы я мог генерировать среднее значение и оценивать в какой-то другой точке кода. То, что вы предлагаете, очень хорошо работает. –

Смежные вопросы