2013-09-19 6 views
0

Я работаю над проектом, и я зацикливаюсь на том, что, на мой взгляд, является заключительной частью. У меня есть один класс: Volt, который включает в себя следующий фрагмент кода:Несовместимые типы

public Volt scaleByFactor(double scalar) { 

    public Point getStart() { 
     return start; 
    } 

    public Point getEnd() { 
     return end; 
    } 

    double tempX = (end.getX() - start.getX()) * scalar + start.getX(); 
    double tempY = (end.getY() - start.getY()) * scalar + start.getY(); 


    //There is another class: public Point(double x, double y) 
    Point s = new Point(tempX, tempY); 
    Volt sls = new Volt(start, s); 
    return sls; 

И еще один класс: смести со следующим сегментом кода:

Point p1 = new Point(X1, Y1); 
    Point p2 = new Point(X2, Y2); 
    Volt ls = new Volt(p1, p2); 
    Point newPoint = ls.scaleByFactor(scalar); 

Что происходит: когда я компилирую Я получаю сказал: несовместимые типы найдено: Volt требуется: точка

Теперь я понимаю, что означает, что нужно использовать точку типа вместо типа Volt, но я не знаю, как это делается ?

+3

у вас есть методы в методах ... – Reimeus

+0

@ Reimeus Вам нужно дать ответ ... – MadProgrammer

ответ

2

Игнорирование того факта, что у вас есть методы внутри методов (что запрещено в Java). Проблема возникает здесь:

Point newPoint = ls.scaleByFactor(scalar); 

Вы объявляете переменную типа Point но присвоить результат scaleByFactor к нему. scaleByFactor возвращает объект Volt, поэтому вы не можете назначить его Point.

1

Я не совсем уверен, что о предполагаемой функциональности, но попробуйте это:

public Point scaleByFactor(double scalar) { 
    double tempX = (end.getX() - start.getX()) * scalar + start.getX(); 
    double tempY = (end.getY() - start.getY()) * scalar + start.getY(); 

    //There is another class: public Point(double x, double y) 
    Point s = new Point(tempX, tempY); 
    return s; 
} 

Или изменить другую функцию:

Point p1 = new Point(X1, Y1); 
Point p2 = new Point(X2, Y2); 
Volt ls = new Volt(p1, p2); 
Volt newVolt = ls.scaleByFactor(scalar); 
Смежные вопросы