Обсуждение домашних заданий

  • 290 Просмотры
  • Последний пост 24 февраля 2017
  • Найдено решение по теме
Запорожцев Игорь разместил пост 24 декабря 2016

В курсе 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

Прикрепленные файлы

Отсортировать по: Стандартный | Последний | Голоса
Yevhenii Tykhonov разместил пост 24 декабря 2016

Добрый день, Игорь.

<<Что значит "который должен принимать радиус">>, - под этим скрывается то, что метод должен принимать в качестве параметров радиус.

Т.е. при вызове метода передается радиус и в дальнейшем его используем

1) Для корректно выполненного задания, через точку входа при вызове передайте радиус, соответственно метод в классе MyArea должен принимать этот параметр;

2) В одном из скринов я увидел, что вы используете в методе:

System.out.println(square);

- return square;

Если Вы используете метод с возвращаемым значением(square), то допишите в точке входа переменную(куда поместите возвращаемое значение метода), либо же сразу выводите на экран System.out.println(MyArea.areaOfCircle()); Соответственно, в методе System.out.println(); уже не придется использовать

Если же метод без возвращаемого значения, то можете сразу вывести на экран содержимое square.

Запорожцев Игорь разместил пост 27 декабря 2016

 

package itvdn.lesson2;
 
public class Main {
    public static void main(String[] args) {
      MyArea c = new MyArea();
      double radius = 20;
 
     c.areaOfCircle(radius);
     System.out.println(c.areaOfCircle(radius));
 
 
    }
}

 

package itvdn.lesson2;
 
 
public class MyArea {
   static final double PI = 3.14;
 
   public static double areaOfCircle(double radius){
 
       double square = PI * radius*radius;
 
       return square;
    }
 
 
}

Yevhenii Tykhonov разместил пост 27 декабря 2016

Доброе утро.

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 для возведения в степень.

Запорожцев Игорь разместил пост 27 декабря 2016

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;
}

}

Запорожцев Игорь разместил пост 27 декабря 2016

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);
}


}

Yevhenii Tykhonov разместил пост 27 декабря 2016

Вот, отлично!

100/100%

Zaqar Stepanyan разместил пост 08 февраля 2017

Здравствуйте,если не сложно скажите пожалуйста я все правилно понял) Зарание спасибо!
https://drive.google.com/file/d/0BxqK3kmhTaowOXNNRURfLVZCTFU/view?usp=sharing

Yevhenii Tykhonov разместил пост 15 февраля 2017

Добрый день. Да, все верно поняли)

По коду я бы рекомендовал сделать следующее:

1) Форматирование кода( в Идеехе ) - ctrl + alt + l.

2) Когда метод заканчивается, то после фигурной скобки не ставим ;

3) Если Вы видите в коде серым написанный текст, в данном случае конструктор - ClassRoom, то значит Идееха подсказывает, что данный контруктор вы не используете. Можете вызвать его из другого метода, как сделали в случае с 4 параметрами

4) Обратите внимание на гэттеры, если переменная названа pupil, то метод должен называться getPupil, а не getObjectPupil. Можете нажать альт+insert и выбрать гэттеры, среда сама создаст

5) Желательно соблюдать Java Code Convention, обращайте внимание на название переменных, классов, методов и т.д. 

Zaqar Stepanyan разместил пост 24 февраля 2017

Спасибо)

Close