Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте! Помогите понять, почему автокод может выдавать ошибку при проверке кода? IJ говорит, что ошибок нет

А Т Мастер (1013), на голосовании 1 год назад
public class Line {
private int x1, y1, x2, y2;

public Line(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}

public Point intersection(Line line) {
int a1 = y2 - y1;
int b1 = x1 - x2;
int c1 = x2 * y1 - x1 * y2;

int a2 = line.y2 - line.y1;
int b2 = line.x1 - line.x2;
int c2 = line.x2 * line.y1 - line.x1 * line.y2;

int det = a1 * b2 - a2 * b1;

if (det == 0) {
return null;
} else {
int x = (b1 * c2 - b2 * c1) / det;
int y = (a2 * c1 - a1 * c2) / det;

if (x < Math.min(x1, x2) || x > Math.max(x1, x2) || x < Math.min(line.x1, line.x2) || x > Math.max(line.x1, line.x2)) {
return null;
} else {
return new Point(x, y);
}
}
}
}

class Point {
private int x, y;

public Point(int x, int y) {
this.x = x;
this.y = y;
}

public int getX() {
return x;
}

public int getY() {
return y;
}
}

class Main {
public static void main(String[] args) {
Line line1 = new Line(0, 0, 2, 2);
Line line2 = new Line(0, 2, 2, 0);

Point intersection = line1.intersection(line2);

if (intersection != null) {
System.out.println("Intersection point: (" + intersection.getX() + ", " + intersection.getY() + ")");
} else {
System.out.println("No intersection point");
}
}
}
Голосование за лучший ответ
Оракул Оракул (62095) 1 год назад
Видимо ошибка в том, что public классом должен быть Main, а Line не public
Если пихаете классы в один файл, то делайте публичным тот класс, в котором находится main метод, остальные непубличными
А ТМастер (1013) 1 год назад
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /tmp/builds/autocode_626352/src/main/java/com/epam/rd/autotasks/intersection/Main.java:[4,8] class Line is public, should be declared in a file named Line.java
[ERROR] /tmp/builds/autocode_626352/src/main/java/com/epam/rd/autotasks/intersection/Main.java:[40,1] duplicate class: com.epam.rd.autotasks.intersection.Point
[ERROR] /tmp/builds/autocode_626352/src/main/java/com/epam/rd/autotasks/intersection/Point.java:[3,8] duplicate class: com.epam.rd.autotasks.intersection.Point
[ERROR] /tmp/builds/autocode_626352/src/main/java/com/epam/rd/autotasks/intersection/Main.java:[3,1] package intersection does not exist
[INFO] 4 errors
[INFO]
[INFO]
[INFO] BUILD FAILURE
Оракул Оракул (62095) А Т, о чем я и написал. Файл называется Main.java, внутри этого файла обязан быть только один public класс Main, а у вас Line
Похожие вопросы