Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 23.12.2012
Сообщений: 161

В чём моя ошибка?

17.11.2013, 14:00. Показов 806. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо построить диаграмму классов UML и создать программу, реализующую основные фундаментальные свойства объектно-ориентированного программирования: инкапсуляцию, отношение наследования между классами и объектами, а также полиморфизм. В базовом и производном классах определить конструкторы с параметрами для инициализации объектов. Для хранения классов создать пакет.
Задание:Создать класс «Отрезок», содержащий информацию о конечных точках. На его основе создать класс «вектор». Написать методы, определяющий, являются ли отрезки параллельными, а векторы – сонаправленными.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
class Point {
   final public double x;
   final public double y;
   final public double z;
 
   public Point(Point point) {
      x = point.x;
      y = point.y;
      z = point.z;
   }
 
   public Point(double x, double y, double z) {
      this.x = x;
      this.y = y;
      this.z = z;
   }
}
 
class Segment {
   /** координаты отрезка */
   protected Point begin;
   protected Point end;
 
   /** конструктор по умолчанию */
   Segment() {
      begin = new Point(0.0, 0.0, 0.0);
      end = new Point(0.0, 0.0, 0.0);
   }
 
   /** конструктор с входными параметрами (координатами концов отрезка) */
   Segment(double x_begin, double y_begin, double z_begin, double x_end,
         double y_end, double z_end) {
      begin = new Point(x_begin, y_begin, z_begin);
      end = new Point(x_end, y_end, z_end);
   }
 
   Segment(Point begin, Point end) {
      this.begin = begin;
      this.end = end;
   }
 
   /** конструктор создающий копию объекта */
   Segment(Segment segment) {
      this(segment.begin, segment.end);
   }
 
   /** отрезки параллельны? */
   public boolean isParallel(Segment s1, Segment s2) {
      if (s1.begin.x - s1.end.x == s2.begin.x - s2.end.x) {
         if ((s1.begin.y - s1.end.y == s2.begin.y - s2.end.y)
               || ((s1.begin.z - s1.end.z) / (s1.begin.y - s1.end.y) == (s2.begin.z - s2.end.z)
                     / (s2.begin.y - s2.end.y))) {
            return true;
         } else {
            return false;
         }
      } else {
         if (s1.begin.y - s1.end.y == s2.begin.y - s2.end.y) {
            if ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
                  / (s2.begin.x - s2.end.x)) {
               return true;
            } else {
               return false;
            }
         } else {
            if (((s1.begin.y - s1.end.y) / (s1.begin.x - s1.end.x) == (s2.begin.y - s2.end.y)
                  / (s2.begin.x - s2.end.x))
                  && ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
                        / (s2.begin.x - s2.end.x))) {
               return true;
            } else {
               return false;
            }
         }
      }
   }
}
 
class Vector extends Segment {
   private int sign(double a) {
      if (a < 0) {
         return -1;
      }
      if (a > 0) {
         return 1;
      }
      return 0;
   }
 
   Vector() {
 
   }
 
   /** конструктор с входными параметрами (координатами концов вектора) */
   Vector(double x_begin, double y_begin, double z_begin, double x_end,
         double y_end, double z_end) {
      begin = new Point(0, 0, 0);
      end = new Point(x_end - x_begin, y_end - y_begin, z_end - z_begin);
   }
 
   Vector(Point begin, Point end) {
      this.begin = new Point(0, 0, 0);
      this.end = new Point(end.x - begin.x, end.y - begin.y, end.z - begin.z);
   }
 
   /** конструктор создающий копию объекта */
   Vector(Vector vector) {
      this(vector.begin, vector.end);
   }
 
   public boolean isCollinear(Vector v1, Vector v2) {
      if (isParallel(v1, v2) && sign(v1.end.x) == sign(v2.end.x)
            && sign(v1.end.y) == sign(v2.end.y)
            && sign(v1.end.z) == sign(v2.end.z)) {
         return true;
      } else {
         return false;
      }
   }
}
У меня ошибка выводится (java.lang.NoSuchMethodError: main
Exception in thread "main" Java Result:1),мне через NetBeans надо сделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2013, 14:00
Ответы с готовыми решениями:

В чем моя ошибка?
Привет и заранее спасибо. Суть дела такова. Начал разбираться в Java у столкнулся с проблемой при запуске первой же программы. Я все делаю...

Инкапсуляция. Наследование. Полиморфизм. Не понимаю в чем моя ошибка
Само задание: Реализовать класс BytesConverter с полем bytes. В конструкторе присвоить bytes значение 0. Реализовать методы setBytes(int...

в чём ошибка?
имеется рекурсивная функция func(dir) для просмотра файлов и папок/подпапок. Весь вывод файлов и папок пытаюсь записать в отдельный файл...

6
12 / 12 / 1
Регистрация: 05.04.2012
Сообщений: 127
18.11.2013, 00:50
У вас точки входа программы нет, т.е. вызова метода main.
Java
1
public static void main(String[] args) {/*Тут создаете объекты ваших классов*/}
0
2 / 2 / 0
Регистрация: 23.12.2012
Сообщений: 161
18.11.2013, 07:59  [ТС]
package point;
class Point {
public static void main(String[] args) {
}
final public double x;
final public double y;
final public double z;

public Point(Point point) {
x = point.x;
y = point.y;
z = point.z;
}

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

class Segment {
/** координаты отрезка */
protected Point begin;
protected Point end;

/** конструктор по умолчанию */
Segment() {
begin = new Point(0.0, 0.0, 0.0);
end = new Point(0.0, 0.0, 0.0);
}

/** конструктор с входными параметрами (координатами концов отрезка) */
Segment(double x_begin, double y_begin, double z_begin, double x_end,
double y_end, double z_end) {
begin = new Point(x_begin, y_begin, z_begin);
end = new Point(x_end, y_end, z_end);
}

Segment(Point begin, Point end) {
this.begin = begin;
this.end = end;
}

/** конструктор создающий копию объекта */
Segment(Segment segment) {
this(segment.begin, segment.end);
}

/** отрезки параллельны? */
public boolean isParallel(Segment s1, Segment s2) {
if (s1.begin.x - s1.end.x == s2.begin.x - s2.end.x) {
if ((s1.begin.y - s1.end.y == s2.begin.y - s2.end.y)
|| ((s1.begin.z - s1.end.z) / (s1.begin.y - s1.end.y) == (s2.begin.z - s2.end.z)
/ (s2.begin.y - s2.end.y))) {
return true;
} else {
return false;
}
} else {
if (s1.begin.y - s1.end.y == s2.begin.y - s2.end.y) {
if ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
/ (s2.begin.x - s2.end.x)) {
return true;
} else {
return false;
}
} else {
if (((s1.begin.y - s1.end.y) / (s1.begin.x - s1.end.x) == (s2.begin.y - s2.end.y)
/ (s2.begin.x - s2.end.x))
&& ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
/ (s2.begin.x - s2.end.x))) {
return true;
} else {
return false;
}
}
}
}
}

class Vector extends Segment {
private int sign(double a) {
if (a < 0) {
return -1;
}
if (a > 0) {
return 1;
}
return 0;
}

Vector() {

}

/** конструктор с входными параметрами (координатами концов вектора) */
Vector(double x_begin, double y_begin, double z_begin, double x_end,
double y_end, double z_end) {
begin = new Point(0, 0, 0);
end = new Point(x_end - x_begin, y_end - y_begin, z_end - z_begin);
}

Vector(Point begin, Point end) {
this.begin = new Point(0, 0, 0);
this.end = new Point(end.x - begin.x, end.y - begin.y, end.z - begin.z);
}

/** конструктор создающий копию объекта */
Vector(Vector vector) {
this(vector.begin, vector.end);
}

public boolean isCollinear(Vector v1, Vector v2) {
if (isParallel(v1, v2) && sign(v1.end.x) == sign(v2.end.x)
&& sign(v1.end.y) == sign(v2.end.y)
&& sign(v1.end.z) == sign(v2.end.z)) {
return true;
} else {
return false;
}
}
}

Но почему нельзя вводить свои данные,как на картинки?Чтобы программа выполняла работу?
0
12 / 12 / 1
Регистрация: 05.04.2012
Сообщений: 127
18.11.2013, 10:35
Потому что в точке входа программе ничего на выполнение не отправлено, вот она сразу и завершается.
Смотрите, я вам приведу пример для показа работы проверки параллельности линий, на её основе вы проделаете тоже самое с векторами. Будут проблемы, пишите сюда.
И так, сами классы ещё раз, которые у вас:
Point
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Point {
    final public double x;
    final public double y;
    final public double z;
 
    public Point(Point point) {
        x = point.x;
        y = point.y;
        z = point.z;
    }
 
    public Point(double x, double y, double z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }
}

Segment
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Segment {
    /** координаты отрезка */
    protected Point begin;
    protected Point end;
 
    /** конструктор по умолчанию */
    Segment() {
        begin = new Point(0.0, 0.0, 0.0);
        end = new Point(0.0, 0.0, 0.0);
    }
 
    /** конструктор с входными параметрами (координатами концов отрезка) */
    Segment(double x_begin, double y_begin, double z_begin, double x_end,
            double y_end, double z_end) {
        begin = new Point(x_begin, y_begin, z_begin);
        end = new Point(x_end, y_end, z_end);
    }
 
    Segment(Point begin, Point end) {
        this.begin = begin;
        this.end = end;
    }
 
    /** конструктор создающий копию объекта */
    Segment(Segment segment) {
        this(segment.begin, segment.end);
    }
 
    /** отрезки параллельны? */
    public static boolean isParallel(Segment s1, Segment s2) {
        if (s1.begin.x - s1.end.x == s2.begin.x - s2.end.x) {
            if ((s1.begin.y - s1.end.y == s2.begin.y - s2.end.y)
                    || ((s1.begin.z - s1.end.z) / (s1.begin.y - s1.end.y) == (s2.begin.z - s2.end.z)
                    / (s2.begin.y - s2.end.y))) {
                return true;
            } else {
                return false;
            }
        } else {
            if (s1.begin.y - s1.end.y == s2.begin.y - s2.end.y) {
                if ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
                        / (s2.begin.x - s2.end.x)) {
                    return true;
                } else {
                    return false;
                }
            } else {
                if (((s1.begin.y - s1.end.y) / (s1.begin.x - s1.end.x) == (s2.begin.y - s2.end.y)
                        / (s2.begin.x - s2.end.x))
                        && ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
                        / (s2.begin.x - s2.end.x))) {
                    return true;
                } else {
                    return false;
                }
            }
        }
    }
}

Vector
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Vector extends Segment {
    private int sign(double a) {
        if (a < 0) {
            return -1;
        }
        if (a > 0) {
            return 1;
        }
        return 0;
    }
 
    Vector() {
 
    }
 
    /** конструктор с входными параметрами (координатами концов вектора) */
    Vector(double x_begin, double y_begin, double z_begin, double x_end,
           double y_end, double z_end) {
        begin = new Point(0, 0, 0);
        end = new Point(x_end - x_begin, y_end - y_begin, z_end - z_begin);
    }
 
    Vector(Point begin, Point end) {
        this.begin = new Point(0, 0, 0);
        this.end = new Point(end.x - begin.x, end.y - begin.y, end.z - begin.z);
    }
 
    /** конструктор создающий копию объекта */
    Vector(Vector vector) {
        this(vector.begin, vector.end);
    }
 
    public boolean isCollinear(Vector v1, Vector v2) {
        if (isParallel(v1, v2) && sign(v1.end.x) == sign(v2.end.x)
                && sign(v1.end.y) == sign(v2.end.y)
                && sign(v1.end.z) == sign(v2.end.z)) {
            return true;
        } else {
            return false;
        }
    }
}

Обратите внимание, что в классе Segment метод isParallel мы сделали статическим (static), нужно для того, что бы мы могли просто вызывать метод и передавать ему два отрезка.
Примечание под спойлером
Кликните здесь для просмотра всего текста

Стоило сделать так, что бы метод принимал только одну линию и сравнивал её с координатами того отрезка, у которого этот метод вызывается.

Теперь вы создаете ещё один класс, с названием Main и его код будет следующий:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Main {
    public static void main(String[] args) {
        //Точки для первого отрезка
        Point a1 = new Point(2,2,0);
        Point b1 = new Point(2,5,0);
        //Точки для второго отрезка
        Point a2 = new Point(5,2,0);
        Point b2 = new Point(5,5,1);
        //На основе этих точек создаем отрезки (они должны быть параллельны)
        Segment firstLine = new Segment(a1,b1);
        Segment secondLine = new Segment(a2, b2);
        //Переменная для хранения результата. Обратите внимание, что в классе Segment пришлось метод проверки объявить static
        boolean parallel = false;
        parallel = Segment.isParallel(firstLine, secondLine);
        System.out.println(parallel);
 
    }
}
0
2 / 2 / 0
Регистрация: 23.12.2012
Сообщений: 161
18.11.2013, 11:13  [ТС]
MoonGuard, Спасибо за программу,но всё равно ошибку выдаёт мне на NetBeans надо написать
и где public class Main { , public не надо.
package point;
class Point {
final public double x;
final public double y;
final public double z;

public Point(Point point) {
x = point.x;
y = point.y;
z = point.z;
}

public Point(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
}
class Segment {
/** координаты отрезка */
protected Point begin;
protected Point end;

/** конструктор по умолчанию */
Segment() {
begin = new Point(0.0, 0.0, 0.0);
end = new Point(0.0, 0.0, 0.0);
}

/** конструктор с входными параметрами (координатами концов отрезка) */
Segment(double x_begin, double y_begin, double z_begin, double x_end,
double y_end, double z_end) {
begin = new Point(x_begin, y_begin, z_begin);
end = new Point(x_end, y_end, z_end);
}

Segment(Point begin, Point end) {
this.begin = begin;
this.end = end;
}

/** конструктор создающий копию объекта */
Segment(Segment segment) {
this(segment.begin, segment.end);
}

/** отрезки параллельны? */
public static boolean isParallel(Segment s1, Segment s2) {
if (s1.begin.x - s1.end.x == s2.begin.x - s2.end.x) {
if ((s1.begin.y - s1.end.y == s2.begin.y - s2.end.y)
|| ((s1.begin.z - s1.end.z) / (s1.begin.y - s1.end.y) == (s2.begin.z - s2.end.z)
/ (s2.begin.y - s2.end.y))) {
return true;
} else {
return false;
}
} else {
if (s1.begin.y - s1.end.y == s2.begin.y - s2.end.y) {
if ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
/ (s2.begin.x - s2.end.x)) {
return true;
} else {
return false;
}
} else {
if (((s1.begin.y - s1.end.y) / (s1.begin.x - s1.end.x) == (s2.begin.y - s2.end.y)
/ (s2.begin.x - s2.end.x))
&& ((s1.begin.z - s1.end.z) / (s1.begin.x - s1.end.x) == (s2.begin.z - s2.end.z)
/ (s2.begin.x - s2.end.x))) {
return true;
} else {
return false;
}
}
}
}
}
class Vector extends Segment {
private int sign(double a) {
if (a < 0) {
return -1;
}
if (a > 0) {
return 1;
}
return 0;
}

Vector() {

}

/** конструктор с входными параметрами (координатами концов вектора) */
Vector(double x_begin, double y_begin, double z_begin, double x_end,
double y_end, double z_end) {
begin = new Point(0, 0, 0);
end = new Point(x_end - x_begin, y_end - y_begin, z_end - z_begin);
}

Vector(Point begin, Point end) {
this.begin = new Point(0, 0, 0);
this.end = new Point(end.x - begin.x, end.y - begin.y, end.z - begin.z);
}

/** конструктор создающий копию объекта */
Vector(Vector vector) {
this(vector.begin, vector.end);
}

public boolean isCollinear(Vector v1, Vector v2) {
if (isParallel(v1, v2) && sign(v1.end.x) == sign(v2.end.x)
&& sign(v1.end.y) == sign(v2.end.y)
&& sign(v1.end.z) == sign(v2.end.z)) {
return true;
} else {
return false;
}
}
}
class Main {
public static void main(String[] args) {
//Точки для первого отрезка
Point a1 = new Point(2,2,0);
Point b1 = new Point(2,5,0);
//Точки для второго отрезка
Point a2 = new Point(5,2,0);
Point b2 = new Point(5,5,1);
//На основе этих точек создаем отрезки (они должны быть параллельны)
Segment firstLine = new Segment(a1,b1);
Segment secondLine = new Segment(a2, b2);
//Переменная для хранения результата. Обратите внимание, что в классе Segment пришлось метод проверки объявить static
boolean parallel = false;
parallel = Segment.isParallel(firstLine, secondLine);
System.out.println(parallel);

}
}
0
2 / 2 / 0
Регистрация: 23.12.2012
Сообщений: 161
18.11.2013, 11:14  [ТС]
0
2 / 2 / 0
Регистрация: 23.12.2012
Сообщений: 161
18.11.2013, 14:33  [ТС]
MoonGuard, Ему isParallel не нравится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2013, 14:33
Помогаю со студенческими работами здесь

В чём ошибка?
Доброго времени суток, уважаемые форумчане, помогите определить, что не так с переменной res(выводит ошибку). Я новичок в java, требуется...

в чём ошибка?
недавно начал учить java и решил написать простую сетевую игру, но при запуске игры после соединения персонажи не могут двигатся а...

В чём ошибка?
В чём ошибка? public class Primer { public static void main(String args) throws java.io.IOException { char x,...

В чём ошибка?
Задача такова. Необходимо создать 2 массива: первый вычисляет числа Фибоначи, а второй записывает признак чётности/нечетности элементов...

Не пойму в чём ошибка
Учу Java SE ( самоучка ). Не могу понять в чём ошибка. Если увидели в чём ошибка то будь те любезны, скажите направление ( скнрин ниже )....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru