|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - правильность написания кода |
|
||||
awt |
![]() ![]() ![]() |
1 | 25.00% | |
swing |
![]() ![]() ![]() |
1 | 25.00% | |
javaFX |
![]() ![]() ![]() |
2 | 50.00% | |
Всего проголосовало: 4. Вы не можете голосовать в этой теме |
|
Java - правильность написания кода
|
![]() Пользователь Сообщения: 79 |
Здравствуйте. Интересует правильно ли я пишу код. Выучил ООП и сейчас перехожу к изучению awt, swing и javaFX. Быстро накидал простенькую прожку. главный класс
клас с методамы и конструктором
package square; public class Triangle { private int aSide; private int bSide; private int cSide; private double square; private double perimeter; public Triangle(int aSide, int bSide, int cSide) { this.aSide = aSide; this.bSide = bSide; this.cSide = cSide; } private void print(String str) { System.out.println(str); } public void square() { perimeter = (aSide + bSide + cSide) / 2; square = Math.sqrt(perimeter * (perimeter - aSide) * (perimeter - bSide) * (perimeter - cSide)); } public void squareOut() { this.square(); print("Площадь треугольника равна " + square); } } |
|
Отправлено: 11:28, 24-04-2015 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата User001:
Цитата nomad____1:
Цитата nomad____1:
Цитата lxa85:
Цитата nomad____1:
|
|||||
------- Отправлено: 14:12, 08-05-2015 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Тогда как такой код???
мейн
package mathprogram; import java.util.Scanner; public class MathProgram { public static void main(String[] arg) { Triangle triangle = new Triangle(); // triangle.inputSides(); Scanner input = new Scanner(System.in); System.out.println("Введите первую сторону"); float sideA = input.nextFloat(); System.out.println("Введите вторую сторону"); float sideB = input.nextFloat(); System.out.println("Введите третью сторону"); float sideC = input.nextFloat(); triangle.setSides(sideA, sideB, sideC); triangle.getSquare(); if (triangle.getSquare() <= 0) { System.out.println("Введены некорректные данные"); }else{ System.out.println("Площадь треугольника равна "+triangle.getSquare()+" кв.ед."); } } } методарий
package mathprogram; public class Triangle { private float aSide; private float bSide; private float cSide; private boolean setSides; private boolean planarity; private boolean rightTriangle; private float square; public boolean setSides(float sideA, float sideB, float sideC) { setSides = false; if (sideA > 0 && sideB > 0 && sideC > 0) { aSide = sideA; bSide = sideB; cSide = sideC; setSides = true; } return setSides; } private boolean planarity() { planarity = false; if (aSide + bSide > cSide && bSide + cSide > aSide && aSide + cSide > bSide) { planarity = true; } return planarity; } private boolean rightTriangle() { rightTriangle = false; if (aSide * aSide + bSide * bSide == cSide * cSide || aSide * aSide + cSide * cSide == bSide * bSide || bSide * bSide + cSide * cSide == aSide * aSide) { rightTriangle = true; } return rightTriangle; } private float geronSquare() { if (planarity == true) { float perimeter = (aSide + bSide + cSide) / 2; square = (float) Math.sqrt(perimeter * ((perimeter - aSide) * (perimeter - bSide) * (perimeter - cSide))); } return square; } private float rightTriangleSquare() { if (planarity == true && rightTriangle == true) { square = aSide * bSide / 2; } return square; } private float square() { if (planarity == true) { if (rightTriangle == true) { rightTriangleSquare(); } else { geronSquare(); } } return 0; } public float getGeronSquare() { planarity(); geronSquare(); return square; } public float getRightTriangleSquare() { planarity(); rightTriangleSquare(); return square; } public boolean isPlanarity() { return planarity; } public boolean isRightTriangle() { return rightTriangle; } public float getSquare() { planarity(); rightTriangle(); square(); return square; } public float getaSide() { return aSide; } public float getbSide() { return bSide; } public float getcSide() { return cSide; } } Все защищено. Лишнего ничего нет. Тявкает то что ему сказано. Может и не тявкать если надо. Это уже мы выбираем. Стороны вводятся через сеттеры. Внутренние методы работают только то что надо, а именно считают и не вызываю других методов. Можно получить любые интересующие данные благодаря геттерам. Принудительно что то в логике изменить нельзя. Также класс сам считает более подходящим способом. |
------- Отправлено: 23:06, 08-05-2015 | #32 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать nomad____1, хочешь иголку воткну?
Ну так, чтобы не скучно было? ![]() В код не подглядывай, а утром поищи ошибку самостоятельно. Если не найдешь - смотри тест. Но лучше сам. Тест
Не, не, не! Не надо!
Да я ж под пару тройку спойлеров то точно спрячу ;)
Я предупреждал!
float sideA = 5; float sideB = 4; float sideC = 3; triangle.setSides(sideA, sideB, sideC); triangle.getSquare(); System.out.println("Площадь треугольника равна "+triangle.getSquare()+" кв.ед."); sideA = 3; sideB = 4; sideC = 5; triangle.setSides(sideA, sideB, sideC); triangle.getSquare(); System.out.println("Площадь треугольника равна "+triangle.getSquare()+" кв.ед."); |
------- Отправлено: 00:28, 09-05-2015 | #33 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать ок... на честность... поищу... утром... пффф))) я ложусь в 4 часа ночи))) по пару раз на день захожу сюда... так что до утра попробую найти, а нет то посмотрю текст
может этот кусок переписать на такой public float getRightTriangleSquare() { planarity(); rightTriangle(); if (rightTriangle == true) { rightTriangleSquare(); } else { square = 0; } return square; } и еще парочку... Скрытый текст
было private float square() { if (planarity == true) { if (rightTriangle == true) { rightTriangleSquare(); } else { geronSquare(); } } return 0; } Скрытый текст
|
------- Последний раз редактировалось nomad____1, 09-05-2015 в 01:24. Отправлено: 00:50, 09-05-2015 | #34 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата lxa85:
Ахах)))) даже и не подумал) сортировку массива и пере присвоение убрал, а тут такой фейл оставил))) Четко) ![]() ![]() ![]() ![]() ![]() ![]() Я хотел написать метод нахождение минимума и максимума и с его помощью считать. Но как то вылетело. И пожалуйста скиньте рисунки которые обещали... Или будет массив и будет сортировка но только! в даном методе исключительно ради точности вычислений. Зато сам еще потестил и нашел пару багов))) P.S. Утром перепишу) |
|
------- Последний раз редактировалось nomad____1, 09-05-2015 в 10:40. Отправлено: 01:33, 09-05-2015 | #35 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать С днем Великой победы товарищи!!!!
![]() Для исправление данной "иголки" использовал массив и сортировку. Но только в данном методе. На остальные данные не влияет и на логику программы в целом. private float rightTriangleSquare() { float [] arr={aSide, bSide, cSide}; Arrays.sort(arr); if (planarity == true && rightTriangle == true) { square = arr[0] * arr[1] / 2; } return square; } мейн
package mathprogram; import java.util.Scanner; public class MathProgram { public static void main(String[] arg) { Triangle triangle = new Triangle(); Scanner input = new Scanner(System.in); System.out.println("Введите первую сторону"); float sideA = input.nextFloat(); System.out.println("Введите вторую сторону"); float sideB = input.nextFloat(); System.out.println("Введите третью сторону"); float sideC = input.nextFloat(); triangle.setSides(sideA, sideB, sideC); if (triangle.getSquare() <= 0) { System.out.println("Введены некорректные данные"); } else { System.out.println("Площадь треугольника равна " + triangle.getSquare() + " кв.ед."); } } } методарий
package mathprogram; import java.util.Arrays; public class Triangle { private float aSide; private float bSide; private float cSide; private boolean setSides; private boolean planarity; private boolean rightTriangle; private float square; public boolean setSides(float sideA, float sideB, float sideC) { setSides = false; if (sideA > 0 && sideB > 0 && sideC > 0) { aSide = sideA; bSide = sideB; cSide = sideC; setSides = true; } return setSides; } private boolean planarity() { planarity = false; if (aSide + bSide > cSide && bSide + cSide > aSide && aSide + cSide > bSide) { planarity = true; } return planarity; } private boolean rightTriangle() { rightTriangle = false; if (aSide * aSide + bSide * bSide == cSide * cSide || aSide * aSide + cSide * cSide == bSide * bSide || bSide * bSide + cSide * cSide == aSide * aSide) { rightTriangle = true; } return rightTriangle; } private float geronSquare() { if (planarity == true) { float perimeter = (aSide + bSide + cSide) / 2; square = (float) Math.sqrt(perimeter * ((perimeter - aSide) * (perimeter - bSide) * (perimeter - cSide))); } return square; } private float rightTriangleSquare() { float [] arr={aSide, bSide, cSide}; Arrays.sort(arr); if (planarity == true && rightTriangle == true) { square = arr[0] * arr[1] / 2; } return square; } private float square() { if (planarity == true) { if (rightTriangle == true) { rightTriangleSquare(); } else { geronSquare(); } } else { square = 0; } return square; } public float getGeronSquare() { planarity(); geronSquare(); return square; } public float getRightTriangleSquare() { planarity(); rightTriangle(); if (rightTriangle == true && planarity == true) { rightTriangleSquare(); } else { square = 0; } return square; } public boolean isPlanarity() { return planarity; } public boolean isRightTriangle() { planarity(); if (planarity == true) { rightTriangle(); } else { rightTriangle = false; } return rightTriangle; } public float getSquare() { planarity(); rightTriangle(); square(); return square; } public float getaSide() { return aSide; } public float getbSide() { return bSide; } public float getcSide() { return cSide; } } |
------- Отправлено: 20:18, 09-05-2015 | #36 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать nomad____1, хорошо, только маленькая поправка.
private float rightTriangleSquare() {
if (planarity == true && rightTriangle == true) {
float [] arr={aSide, bSide, cSide};
Arrays.sort(arr);
square = arr[0] * arr[1] / 2;
}
return square;
}
P.S. На счет картинок. Почти все ошибки исправлены, поэтому они тебе здесь уже не нужны. Там уже ничего примечательного. |
------- Последний раз редактировалось lxa85, 10-05-2015 в 11:12. Отправлено: 22:41, 09-05-2015 | #37 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата lxa85:
![]() Ок благодарю) Вашу поправку внесу в класс. Уже упаковал с помощью javaFX в оболочку. Теперь еще поднаростить функционал))) Цитата lxa85:
P.S. Завтра допишу функционал еще... Как говорил Цитата nomad____1:
|
|||
------- Отправлено: 00:18, 10-05-2015 | #38 |
![]() Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать что можете посоветовать учить после завершения ООП. JavaFX немного понял принципы. Можно ли приступать к изучению JDBC, мавен, ант т в какой последовательности.
|
------- Отправлено: 21:19, 17-05-2015 | #39 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать nomad____1, мысль вслух.
Лучший учитель - это натура. Учиться согласно поставленных целей. Задачками мир наполнен более чем. |
Отправлено: 15:03, 18-05-2015 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Правильность замены процессора | Вилка | Хочу все знать | 9 | 07-05-2015 00:08 | |
C/C++ - Лабораторные работы ( проверка написания кода ) | xasn0w | Программирование и базы данных | 3 | 06-05-2015 21:47 | |
Правильность конфигурации | Leoz | Выбор отдельных компонентов компьютера и конфигурации в целом | 9 | 06-09-2009 22:15 | |
правильность конфигурации | belomor3000 | Выбор отдельных компонентов компьютера и конфигурации в целом | 5 | 15-09-2008 11:11 | |
Правильность работы сети | DimSher | Сетевые технологии | 5 | 18-02-2003 13:53 |
|