[Java] Задание про Vector2D, наследование
Про следующую неделю
13 и 15 октября уроки будут проведены удаленно через Zoom. Поэтому:
1) Возьмите с собой на урок наушники (чтобы слушать меня со школьного компьютера через Zoom)
2) Самый Ответственный Ученик проверяет что кабинет открыт (его откроет Алексей Олегович, если что - пишет мне срочно) и включает свет в кабинете
3) На уроке отройте зум конференцию по ссылке в электронном журнале прикрепленной к уроку
4) Самый Ответственный Ученик к концу последнего урока (пожалуйста не задерживайтесь, чтобы Алексей Олегович вас не ждал):
- выключит все компьютеры
- выключит свет
- закроет окна
- дождется Алексея Олеговича - он закроет кабинет и сдаст ключ
11 октября встреча учителей с родителями
К сожалению я не смогу быть в это время в школе, если у ваших родителей есть вопросы которые они хотят обсудить - попросите их пожалуйста написать мне в Telegram чтобы либо обсудить письменно, либо договориться созвониться, либо договориться встретиться вживую после 18 октября.
Новое задание
Новое задание очень похоже на рациональную дробь и уже доступно в http://mdl.sch239.net/
Обратите внимание что там много заданий, но это не значит что вы обязаны сделать все, меня абсолютно устроит если вы сделаете только часть. Конечно чем больше - тем лучше. Но в данном задании гораздо важнее путь а не цель. Если вы хорошо поработали на уроке, и хорошо поработали дома - вы все сделали правильно и вы молодец. Задание нужно чтобы вы еще немного освоились, получили еще немного уверенности и т.п., но нет необходимости понять/выполнить его полностью.
Через неделю мы перейдем к отрисовке графики.
Если при выполнении задания возникнут вопросы - спрашивайте меня. Глупых вопросов не существует. Смело спрашивайте даже если вы уже спрашивали это раньше, или если это уже встречалось в рациональной дроби. Нормально сложные темы усваивать не с первого раза. И то что вы сумеете сформулировать вопрос на который не знаете ответа (даже если вам ошибочно кажется что он глупый) и найдете в себе смелость задать его мне - скажет о вас только хорошо.
Подсказки к новому заданию
1) В задании сказано что нужно выводить числа с точностью два знака после запятой. Как это делать? Не знаю, я вот вбил в гугл и научился.
Поэтому: придумайте запрос в гугл и найдите нужный кусочек кода.
Спойлер
я использовал запрос в гугл “java вывести 2 знака после запятой”
2) В задании нужно посчитать длину вектора - для применения теоремы Пифагора нужно лишь научиться извлекать корень. Как же это сделать? Тоже загуглить!
Поэтому: придумайте как это загуглить и найдите нужный кусочек код. Дополнительные баллы Гриффиндор получит если вы заставите себя гуглить на английском (все-равно в будущем только так и придется искать, на английском банально больше материалов).
Спойлер
я использовал запрос в гугл “java как извлечь корень”
3) Про static
:
public class Vector2d {
double x;
double y;
public Vector2d(double x, double y) {
this.x = x;
this.y = y;
}
void add(Vector2d that) {
this.x += that.x;
this.y += that.y;
}
// Этот метод просто суммирует два переданных вектора
// в отличии от add(...) он никак не использует this
// а значит он не использует текущий объект
// а значит эта функция никак не привязана к конкретному объекту
// чтобы это фиксировать - нужно написать ключевое слово static
// и тогда это позволит вызывать метод без объекта - через Vector2d.plus(a, b)
static Vector2d plus(Vector2d a, Vector2d b) {
return new Vector2d(a.x + b.x, a.y + b.y);
}
}
4) Иерархия про котиков:
public class Cat extends Animal {
// Ключевое слово extends - наследование всего что было в Animal
// Cat теперь является Animal!
// Но методы можно переопределить:
@Override
String type() {
return "Cat";
}
@Override
String typicalPhrase() {
return "meow uwu nyaaaa";
}
}