Итак, я создал ArrayList в классе GrownUp, который затем создает цикл for для вызова метода из другого класса. Когда я пытаюсь вызвать объект этого нового метода, я получаю сообщение об ошибке, что он не распознает объект. Это то, что метод выглядит следующим образом:ошибка вызова класса объекта?
public void personShowering()
{
PowerShower callshower = new PowerShower(1,1,1,1);
if(people.size()>1)
callshower.shower(people.get(0));
}
}
Person
import java.util.ArrayList;
public abstract class Person
{
ArrayList<Person> people;
Person(int age, String name)
{
}
public void shower(Person x)
{
people.get(0).shower(//what goes here?);
}
}
Ошибка:
method shwer() in class perosn cannot be applied to given types;
required: Person
found: no given types
callshower
должен быть отсылая к классу под названием PowerShower
, который был создан используя PowerShower callshower = new PowerShower(1,1,1,1);
, поэтому я смущен, почему это выглядит в классе Person
? PowerShower
класса довольно велик, но я отправлю его:
PowerShower
public class PowerShower extends Shower
{
public int isOn = -1;
public int isOff = 0;
public int incrementTime;
public int varPass = -1;
@Override
public int currentState()
{
if (varPass == 0)
return isOff;
else
{
return isOn;
}
//returns isOn;
}
@Override
public void useTime(int defaultTime)
{
defaultTime = 15;
incrementTime = 1;
}
@Override
public void shower()
{
PowerShower shower = new PowerShower(1,1,1,1);
shower.timePasses();
}
@Override
public void timePasses()
{
if(varPass == isOff)
varPass = 0;
else
{
GasMeter.getInstance().incrementConsumed(waterUse);
GasMeter.getInstance().incrementConsumed(10);
int gasconsumed = GasMeter.getInstance().getGasUsed();
WaterMeter.getInstance().incrementConsumed(waterUse);
WaterMeter.getInstance().incrementConsumed(5);
int waterconsumed = WaterMeter.getInstance().getWaterUsed();
System.out.println("Power shower water consumption = " + waterconsumed);
System.out.println("Power shower gas consumption = " + gasconsumed);
}
}
PowerShower(int electricityUse, int gasUse, int waterUse, int timeOn)
{
super(electricityUse, gasUse, waterUse, timeOn);
this.electricityUse = 0 * incrementTime;
this.gasUse = 10 * incrementTime; //10x1;
this.waterUse = 5 * incrementTime; //5x1;
this.timeOn = 15 * incrementTime;
}
}
Я не слишком уверен, почему я получаю эту ошибку, потому что я создал объект этого класса и назвал его но, похоже, это не признает этот объект? Любое было бы здорово, спасибо.
И ошибка ... –
'не могу найти символ' – Harry
Добро пожаловать в переполнение стека! Ознакомьтесь с нашим [Контрольным списком вопросов] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), чтобы помочь вам задать хороший вопрос и, таким образом, получить хороший ответ. –