Я только что начал Java три недели назад, и все прошло отлично. Хотя я столкнулся с проблемой с одним из моих классов. При выборе «нового флота» на классе флота и заполнении соответствующих полей параметров я получаю Error:incompatible types: java.lang.String cannot be converted to Ship.
. Я просматривал сообщения и дискуссии по различным подобным вопросам, но не нашел ничего, что помогало мне.Ошибка несогласованных типов Класс Java
Это задание для проекта в школе, и я был бы очень признателен за то, что вы это понимаете, а не для того, чтобы дать мне ответ прямо, но просто укажите мне в правильном направлении.
ПОДСКАЖИТЕ: Постановка задачи
Вы были введены в эксплуатацию ВМС США разработать систему для отслеживания количества потребляемого топлива флоты судов. Каждый корабль имеет название (например: «USS Montana»), топливная способность (максимальное количество топлива, которое может перевозить судно), и количество топлива, находящегося на борту. В этой задаче топливо измеряется в «единицах», а мощность каждого судна - целое число (например: емкость перевозчика составляет 125 единиц топлива). У каждого флота всего четыре корабля. Когда флот развернут, каждое судно в флоте развернуто. Когда судно развертывается, оно потребляет половину топлива, которое оно имеет на борту. Когда флот заправляется, каждое судно в флоте заправляется топливом. Когда судно заправляется, оно полностью заполнено (его бортовая сумма равна его мощности).
Назначение
Создание проекта BlueJ под названием Outlab2, добавить класс называется Driver этот код и вставьте в него. Драйвер не должен изменяться. Внимательно просмотрите Драйвер, поскольку он содержит подсказки о структуре остальной части программы. Ваш класс Fleet нуждается в 4 методах: Конструктор, который принимает 4 судна в качестве параметров. Метод, который называется развертывание, которое будет развертывать каждое судно в парке. Метод, называемый заправкой, который будет дозаправлять каждый корабль в флоте. Метод, называемый printSummary, который будет печатать для каждого корабля имя судна и общее количество единиц топлива, которые были отправлены на протяжении всего своего существования. Из обзора драйвера вы можете видеть, что вам также понадобится класс корабля. Конструктор этого класса возьмет название судна и топливную мощность в качестве параметров. Вывод из задачи Заявление о том, какая переменная и методы экземпляра вам нужны в классе Ship.
Это мой код: Класс судна
Вот что я пробовал:
Класс судна: класс
/**
* Ship's name, fuel levels, and fuel usage.
*
* @author JGW
* @version 11/20/15
*/
public class Ship
{
public String name;
public int fuelcapacity;
public int fuelcurrent;
public int fuelconsumed;
/**
* Constructor for objects of class Fleet
*/
public Ship(String n, int cap)
{
name = n;
fuelcapacity = cap;
fuelcurrent = fuelcapacity;
}
public void deploy()
{
fuelconsumed += fuelcurrent/2; //Adds the fuel used to the lifetime total consumption.
fuelcurrent = fuelcurrent/2; //Divides the current fuel in half.
}
public void reFuel()
{
fuelcurrent = fuelcapacity; //Refills the ship's fuel to maximum capacity.
}
public String getName()
{
return name;
}
public int getFuelconsumed()
{
int x = fuelconsumed; //Returns total fuel consumed.
return x;
}
Fleet class:
/**
* Calls upon methods for 4 different Ships as well as showing their lifetime fuel usage.
*
* @author JGW
* @version 11/20/15
*/
public class Fleet
{
public Ship ship1;
public Ship ship2;
public Ship ship3;
public Ship ship4;
/**
* Constructor for objects of class Fleet
*/
public Fleet(Ship s1, Ship s2, Ship s3, Ship s4)
{
ship1 = s1;
ship2 = s2;
ship3 = s3;
ship4 = s4;
}
public void deploy()
{
ship1.deploy(); //Deploys all 4 ships.
ship2.deploy();
ship3.deploy();
ship4.deploy();
}
public void reFuel()
{
ship1.reFuel(); //Refuels all 4 ships.
ship2.reFuel();
ship3.reFuel();
ship4.reFuel();
}
public void printSummary()
{
System.out.println(ship1.getName() + " " + ship1.getFuelconsumed());
System.out.println(ship2.getName() + " " + ship2.getFuelconsumed());
System.out.println(ship3.getName() + " " + ship3.getFuelconsumed());
System.out.println(ship4.getName() + " " + ship4.getFuelconsumed());
//Prints out how much fuel each ship has used.
}
}
Driver:
/**
* Driver for Outlab2.
*/
public class Driver
{
public static void main(String[] args)
{
//Creating 4 instances of Ship
Ship ship1 = new Ship("Carrier", 150);
Ship ship2 = new Ship("Anti-Submarine", 35);
Ship ship3 = new Ship("Patrol", 22);
Ship ship4 = new Ship("Destroyer", 83);
//Creating instance of Fleet
Fleet fleet1 = new Fleet(ship1, ship2, ship3, ship4);
//Deploying the fleet twice
fleet1.deploy();
fleet1.deploy();
//Refuel the fleet once
fleet1.reFuel();
//Print summary
fleet1.printSummary();
}
}
Помогите нам помочь. http://stackoverflow.com/help/mcve – ergonaut
Пожалуйста, изучите [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Andreas
Какая строка дает эту ошибку? – Andreas