2013-10-27 3 views
0

Этот код компилирует, но ничего не печатает в терминале.System.out.println() ничего не печатает.

Таким образом, мой код предназначен для сравнения y-координаты робота с координатой y цели.

public class Ex12 
{ 

    private byte isTargetNorth(IRobot robot) 
    { 

    if (robot.getLocationY() > robot.getTargetLocation().y) 
     {System.out.println("north"); 
     return 1;} 

    else if (robot.getLocationY() == robot.getTargetLocation().y) 
     {System.out.println("no"); 
     return 0;} 

    else 
     {System.out.println("south"); 
     return -1;} 

    } 
} 
+1

Вы компилируете этот класс? – fxm

+0

Добро пожаловать в StackOverflow! У вас есть больше кода, чем это? –

+1

У вас есть основной метод, который вызывает это? – kviiri

ответ

0

Я предполагаю, что это должно быть:

public static void main(String[]args) 
{ 

    IRobot robot = new IRobot(). 

    Ex12 instance = new Ex12(). 

    instance.isTargetNorth(robot); 


} 

    public class Ex12 
{ 

    public byte isTargetNorth(IRobot robot) 
    { 

    if (robot.getLocationY() > robot.getTargetLocation().y) 
     {System.out.println("north"); 
     return 1;} 

    else if (robot.getLocationY() == robot.getTargetLocation().y) 
     {System.out.println("no"); 
     return 0;} 

    else 
     {System.out.println("south"); 
     return -1;} 

    } 
} 
+0

Нет, это не так. robot.getLocationY() - это функция, которая возвращает координату y робота. robot.getTargetLocation(). Y - это функция, которая возвращает координату y цели. robot.getLocationY(). X не имеет смысла. Он ничего не делает. –

+0

@JohnFog Это все вы код? – MinGW

+0

@JohnFog Вам нужно создать объект в своем главном, вызывая объект в вашем 'byte isTargetNorth (object)'. – MinGW

0

Я думаю, что вы только что написали эту функцию, и вы не называть его в любом месте.

Сделать главной с:

public static void main(String[] args) { 
    //Create robot instance, assuming a Robot implementation is 
    //named Robot and has a default constructor. 
    IRobot robot = new Robot(); 

    //Create instance of example class since your function is not static. 
    Ex12 instance = new Ex12(); 
    instance.isTargetNorth(robot); 
} 
+0

Вы правы. Я добавил это, и я получаю одну ошибку. TERMINAL SAYS "Ex12.java:31: ошибка: не найден символ IRobot robot = new Robot();" С стрелкой, указывающей на Robot –

+0

@JohnFog, затем измените свой 'private byte isTargetNorth (робот IRobot)' на 'public byte isTargetNorth (робот IRobot)' и попробуйте, если он будет работать. – MinGW

+0

У вас есть класс Robot? IRobot - это интерфейс, вам нужно найти класс, имя класса которого означает интерфейс «реализует», что означает, что класс поддерживает функции, которые определяет интерфейс IRobot. –

0

У вас есть метод, названный isTargetNorth, но нет ничего, что вызывает его. Вам нужно вызвать метод. Создайте метод main(), который вызывает isTargetNorth. Скомпилируйте класс, затем вы можете запустить его из командной строки. Это проще, если вы используете IDE, хотя, вероятно, это позволит вам запустить класс из среды IDE после создания основного метода. Предполагая, что у вас есть реализация робота:

public static void main(String[] args) { 
    IRobot robot = new RobotImpl(); 
    isTargetNorth(robot); 
} 
Смежные вопросы