В курсе Javaessential есть домашние задания!
Хотелось бы знать правильный ответ на них чтоб понять правильно ты выполнил или нет!
Вопрос по Javaessential Лекция-2
Что значит "который должен принимать радиус"
Мое решение в файлах
Задание
Используя Intelij IDEA создать проект, пакет.
Создать класс MyArea, в нем объявить константу PI = 3.14 и статический метод areaOfCircle, который должен принимать радиус и используя PI посчитать площадь круга.
Создать класс Main, где запустить данный метод.
https://drive.google.com/file/d/0B8Kr062mg0ZcRmcxNHdKOW8tMEE/view?usp=sharing
https://drive.google.com/file/d/0B8Kr062mg0ZcdWVoNFg2dVVaZmc/view?usp=sharing
Добрый день, Игорь.
<<Что значит "который должен принимать радиус">>, - под этим скрывается то, что метод должен принимать в качестве параметров радиус.
Т.е. при вызове метода передается радиус и в дальнейшем его используем
1) Для корректно выполненного задания, через точку входа при вызове передайте радиус, соответственно метод в классе MyArea должен принимать этот параметр;
2) В одном из скринов я увидел, что вы используете в методе:
- System.out.println(square);
- return square;
Если Вы используете метод с возвращаемым значением(square), то допишите в точке входа переменную(куда поместите возвращаемое значение метода), либо же сразу выводите на экран System.out.println(MyArea.areaOfCircle()); Соответственно, в методе System.out.println(); уже не придется использовать
Если же метод без возвращаемого значения, то можете сразу вывести на экран содержимое square.
package itvdn.lesson2;
public class Main {
public static void main(String[] args) {
MyArea c = new MyArea();
double radius = 20;
c.<span class="me1" style="color: #006633;">areaOfCircle</span><span class="br0" style="color: #009900;">(</span>radius<span class="br0" style="color: #009900;">)</span><span class="sy0" style="color: #339933;">;</span>
<span class="kw21" style="color: #003399; font-weight: bold;">System</span>.<span class="me1" style="color: #006633;">out</span>.<span class="me1" style="color: #006633;">println</span><span class="br0" style="color: #009900;">(</span>c.<span class="me1" style="color: #006633;">areaOfCircle</span><span class="br0" style="color: #009900;">(</span>radius<span class="br0" style="color: #009900;">)</span><span class="br0" style="color: #009900;">)</span><span class="sy0" style="color: #339933;">;</span>
<span class="br0" style="color: #009900;">}</span>
}
package itvdn.lesson2;
public class MyArea {
static final double PI = 3.14;
public static double areaOfCircle(double radius){
<span class="kw3" style="color: #006600; font-weight: bold;">double</span> square = PI <span class="sy0" style="color: #339933;">*</span> radius<span class="sy0" style="color: #339933;">*</span>radius<span class="sy0" style="color: #339933;">;</span>
<span class="kw2" style="font-weight: bold;">return</span> square<span class="sy0" style="color: #339933;">;</span>
<span class="br0" style="color: #009900;">}</span>
}
Доброе утро.
1) У Вас в первом случае в методе main, обращение к статическому методу было через имя класса - что есть правильным. А во втором случае Вы создаете объект класса, а потом через этот объект обращаетесь к методу - лишняя затрата памяти, даже IDEA должна подчеркнуть такое действие, чтобы обратили внимание.
Вывод: К статическим методам обращаемся через ИМЯ класса.
2) Исходя из п.1. создание объекта - можно убрать.
c.areaOfCircle(radius); // Обратите сюда внимание, вы вызываете метод -> он отрабатывает, возвращает значение в никуда, ведь вы в переменную никакую не записываете. Запустите Дебаггер, поймете в чем дело
System.out.println(c.areaOfCircle(radius)); // Тут ок, только измените обращение через имя класса, а не ссылку на объект
Вывод: Старайтесь оптимизировать код.
3) Хотелось бы напомнить про класс Math(зайдите в документацию https://docs.oracle.com/javase/8/docs/api/ и в поиске вбейте Math). Обратите внимание, какой метод делает возведение в степень, Вам необходимо его применить в следующием выражении:
double square = PI * radius*radius; // radius*radius, плохой опыт. А если бы в 50-й степени было? Пришлось бы руками 50 раз умножать радиус.
Вывод: Необходимо применить метод класса Math для возведения в степень.
package itvdn.lesson2;
public class Main {
public static void main(String[] args) {
System.out.println(MyArea.areaOfCircle(20));
}
}
package itvdn.lesson2;
public class MyArea {
static final double PI = 3.14;
public static double areaOfCircle(double radius){
double square = PI * Math.pow(radius, 2);
return square;
}
}
package itvdn.lesson2;
public class Main {
public static void main(String[] args) {
MyArea.areaOfCircle(20);
}
}
package itvdn.lesson2;
public class MyArea {
static final double PI = 3.14;
public static void areaOfCircle(double radius){
double square = PI * Math.pow(radius, 2);
System.out.println(square);
}
}
Здравствуйте,если не сложно скажите пожалуйста я все правилно понял) Зарание спасибо!
https://drive.google.com/file/d/0BxqK3kmhTaowOXNNRURfLVZCTFU/view?usp=sharing
Добрый день. Да, все верно поняли)
По коду я бы рекомендовал сделать следующее:
1) Форматирование кода( в Идеехе ) - ctrl alt l.
2) Когда метод заканчивается, то после фигурной скобки не ставим ;
3) Если Вы видите в коде серым написанный текст, в данном случае конструктор - ClassRoom, то значит Идееха подсказывает, что данный контруктор вы не используете. Можете вызвать его из другого метода, как сделали в случае с 4 параметрами
4) Обратите внимание на гэттеры, если переменная названа pupil, то метод должен называться getPupil, а не getObjectPupil. Можете нажать альт insert и выбрать гэттеры, среда сама создаст
5) Желательно соблюдать Java Code Convention, обращайте внимание на название переменных, классов, методов и т.д.
Помогите пожалуйста с дополнительной задачей в Java Essential по 3-му уроку.
Что значит строки выводились разными цветами при наследовании? Как это вообще реализовать?
Помогите с решением домашнего задания 6 урока стартового уровня Java. Задача на циклы.
Про числа A и B, где (A<B), и необходимо вывести на экран сумму всех чисел расположенных в диапазоне между A и B, а также вывести все нечётные числа в этом диапазоне.
А что именно не получается? Запустите цикл с счетчиком от А до B, а в теле цикла выполняйте суммирование значений с переменной, которая определена до цикла и также выполняйте в теле проверку остатка деления на 2 если остатка нет - выводите на экран. Что то типа
int sum = 0;
for (int i = A; i <= B; i++)
{
sum += i;
if(i % 2 == 0) {
//выводим на экран
}
}
Автору нужно вывести
все нечётные числа в этом диапазоне
а код
if(i % 2 == 0) {
//выводим на экран
}
выведет четные
так что скорее уж
if(i % 2 != 0)
или
if ((i & 1) != 0)
(это вариант сравнения младшего бита, у четных он равен 0)