Задание не проходит, просьба пояснить, почему

141
16 ноября 2021, 04:40

Напишите класс Vector2D (вектор на плоскости).

В классе необходимо предусмотреть:

Два публичных дробных поля (double) vX и vY - значения проекций вектора на оси.

Конструктор без параметров, который инициализирует вектор значениями (1,1).

Конструктор с двумя параметрами (проекция на ось X, проекция на ось Y).

Конструктор с параметром Vector2D (такие конструкторы в литературе принято называть конструкторами копирования).

Метод print(), который выводит вектор на экран в виде: (vX, vY), при этом значения проекций округлить до двух знаков после запятой. Разделитель в дробных числах - точка. Например, при печати вектора с проекциями vX = 1.2374 и vY = 2.2334, на экране должно появиться (1.24, 2.23).

Для организации форматного вывода можно воспользоваться методом format класса String. После выполнения следующей строки

System.out.println(String.format(Locale.US, "%.2f", 1.2345)); на экране появится число 1.23.

В ответе нужно указать только описание класса.

import java.util.Locale;
public class Vector2D {
    double vX;
    double vY;
    public Vector2D() {
        vX = 1;
        vY = 1;
    }
    public Vector2D(double vX, double vY) {
    }
    public Vector2D(double Vector2D) {
    }
    public static void print(double vX, double vY) {
        System.out.println("( " + (String.format(Locale.US, "%.2f", vX)) + ", " + (String.format(Locale.US, "%.2f", vY)) + ")");
    }
}
Answer 1
public Vector2D(double vX, double vY) {
}

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

public Vector2D(double vX, double vY) {
    this.vX = vX;
    this.vY = vY;    
}

Конструктор с параметром Vector2D (такие конструкторы в литературе принято называть конструкторами копирования).

Когда говорят про этот конструктор - имеют в виду что вы создаете новый вектор, в параметрах указав уже существующий. И новый вектор должен быть копией переданного в параметр. А вы тут создали конструктор, который принимает в параметрах одно дробное число. Должно быть так

public Vector2D(Vector2D other) {
    vX = other.vX;
    vY = other.vY;
}

Ну и, напоследок, вывод вот так лучше сделать:

System.out.println(String.format(Locale.US, "(%.2f, %.2f)", vX, vY));
Answer 2

Итого

import java.util.Locale;

public class Vector2D {
    double vX;
    double vY;
    public Vector2D() {
        vX = 1;
        vY = 1;
    }
    public Vector2D(double vX, double vY) {
        this.vX = vX;
        this.vY = vY;
    }
    public Vector2D(Vector2D other) {
        vX = other.vX;
        vY = other.vY;
    }
    public static void print(double vX, double vY) {
        System.out.println(String.format(Locale.US, "(%.2f, %.2f)", vX, vY));
    }
}

Однако все равно не проходит :(

READ ALSO
Блок Html in JSP как тег

Блок Html in JSP как тег

Задача в проекте создать свой тег в jsp

178
Связи между таблицами MySQL

Связи между таблицами MySQL

Как правильно описать связь между таблицами? supply - поставка (к примеру, яблоки) goods - что-либо, что было поставлено (те же яблоки)

235
Qt и ip camera. Возможные пути решения

Qt и ip camera. Возможные пути решения

Подскажите возможные пути решения с qt, то есть с выводом в в виджетКамера так же имеет возможности управления зумом, просто вывести данные...

161
Что означают запятые в функцях cin и cout?

Что означают запятые в функцях cin и cout?

Сегодня я случайно написал в cin следующее:

168