31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
|
||||||
1 | ||||||
Аргументы консоли, переменные внутри цикла, имена методов и объектов24.07.2016, 10:37. Показов 1775. Ответов 13
Метки нет Все метки)
(
В продолжение к теме Первая программа на Java
FatNinja, HOBATOP, изучил ваши примеры, разобрался в них. Написал программку для решения задания к главе 1, вариант А по книге Блинов, Романчик - Java. Методы программирования. Список заданий прикреплю. Выкладываю вам на суд. Знаю, что в интернете есть готовые решения, но я их не смотрел, так как хочу разобраться сам. Поэтому прошу советов и сильно не пинать ![]() 1) Можно увидеть, что у меня есть совпадения в названиях методов и объектов. Насколько это критично? Просто называл по логике. 2) Не смог создать отдельный метод, работающий с аргументами консоли. Так как args из метода main в другом методе недоступен. Что нибудь подскажете? 3) Для переменных внутри цикла (к примеру i в цикле for) тоже обязательно придумывать осмысленные названия? Кликните здесь для просмотра всего текста
1.Приветствовать любого пользователя при вводе его имени через командную строку.
2.Отобразить в окне консоли аргументы командной строки в обратном порядке. 3.Вывести заданное количество случайных чисел с переходом и без перехода на новую строку. 4.Ввести пароль из командной строки и сравнить его со строкой-образцом. 5.Ввести целые числа как аргументы командной строки, подсчитать их суммы (произведения) и вывести результат на консоль. 6.Вывести фамилию разработчика, дату и время получения задания, а так же дату и время сдачи задания. Кликните здесь для просмотра всего текста
0
|
|
24.07.2016, 10:37 | |
Ответы с готовыми решениями:
13
Использование анонимных методов внутри цикла foreach
Внутриблочные переменные не могут иметь те же имена, что и переменные из блока верхнего уровня Аргументы в консоли |
Автоматизируй это!
![]() |
|
24.07.2016, 11:40 | 2 |
1) для методов пожалуй не критично, если действительно описывает его функционал, классы лучше называть по разному как и объекты чтобы просто не путать.
2) ну так передай этот аргс (массив стринг) в другой метод и там используй 3) внутри цикла for оставляй i больше то она нигде не нужна и живет только там Если уж пишешь на латинице то используй английский язык, а то от Vvedite kolvo рука тянется к кобуре ![]() Важно - статик это плохо, избавляйся от них. Кроме того, не пытайся очень много засунуть в мейн, лучше разделить на методы.
1
|
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
|
|
24.07.2016, 15:22 [ТС] | 3 |
Welemir1, 2) Не исключаю того, что я туплю, т.к. я этот код писал уже полусонный и уставший (трудно время на кодинг найти с моей работой). Когда передавал args в другой метод (а именно args.length), то ловил ошибку компиляции - не помню точно какую. Пробовал создавать public переменную, равную args.length, и передавать её в другой метод - опять ошибка.
По поводу Vvedite kolvo согласен, не углядел ![]() По поводу static. Я думал, что их по идее убрать можно. Объект есть, к которому они применяются, поэтому по идее они не нужны. А чем это плохо? Я разбил на методы по заданиям. Имеешь ввиду, что лучше бы еще было разбить на методы однотипные действия в main()?
0
|
Автоматизируй это!
![]() |
|
24.07.2016, 19:19 | 4 |
striker24, возможно как то не так передавал, у тебя должен быть метод, принимающий на вход массив стрингов, туда передай и там сделай все что хотел.
Все верно, а плохо тем, что статики это переменные и методы зашитые намертво, ты не сможешь их переопределить или перегрузить при наследовании или полиморфизме, то есть это уже не ООП, а пережиток процедурного программирования. Если есть возможность -обходись без них. По поводу методов -дело твое, ты же создатель) Но я предпочитаю чтобы в мейне было всего пара-тройка строк, дальше уже все делают объекты. Это опять же привычка процедурного программирования -пихать все в один метод. Но в целом код у тебя неплохой, тут гораздо более страшные вижу, двигайся в том же направлении. Еще один момент - при чтении сбивает с толку так как имя вроде одно а на самом деле это метод и переменная. Лучше называть методы глаголами исходя из того что он делает, а не существительными, например getDeveloperSurnameAndTime()
1
|
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
|
|
24.07.2016, 19:59 [ТС] | 5 |
Welemir1,
Вот это пока не слишком понял, хотя знаю про наследование и полиморфизм. Наверное думаю все еще по принципу процедурно-орентированного программирования. Надеюсь со временем пройдет.
Вот оно, спасибо. Именно про это я говорил в первом сообщении. Попробую сегодня передать в метод Strings[] args. Думаю так должно пойти. Сегодня начал использовать ArrayList. Возможно ли такие массивы передавать на вход метода?.
0
|
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
|
|
24.07.2016, 21:39 | 7 |
striker24,
при работе приложения в командной строке параметры передаются оттуда, при разработке в какой-либо среде программирования предусмотрена возможность передачи аргументов в метод main. Например в IntelliJ IDEA передать параметр можно выполнив:
Run -> Edit Configurations... -> Program аrguments Там Вы вводите всё, что нужно передать в качестве аргументов. В других программах путь к вводу несколько иной, но где искать уже должно быть понятно.
1
|
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
|
|
24.07.2016, 23:26 [ТС] | 8 |
HOBATOP, Welemir1, насколько опасно использовать методы, невозвращающие ничего (void)? Пишу программку по выводу списка из четных и нечетных чисел массива. Не стал заморачиваться и сделал метод void, внутри которого происходит вывод System.out.print. То есть, помимо самого main(), у меня присутствует еще один метод void.
0
|
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
|
||||||
24.07.2016, 23:49 | 9 | |||||
striker24,
- они же не взрываются...
1
|
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
|
|
24.07.2016, 23:58 [ТС] | 10 |
HOBATOP,
Не по теме: спасибо. У меня сейчас так и получается, что легче создать 5 методов void. Не хочу привыкнуть к чему-то неправильному и потом переучиваться.
0
|
HOBATOP
|
25.07.2016, 00:06
#11
|
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
25.07.2016, 22:41 | 13 |
0
|
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
|
||||||
25.07.2016, 23:05 | 14 | |||||
aleksandy, уважаемый Вы ТС'у что-то можете посоветовать, привести пример какой-нибудь, пояснить что вот это гу-у-у-д, а вот это ай-яй-яй? Вот какой смысл дискутировать со мной? Да, я сознательно нарушаю в подобных примерах какие-то "незыблемые" правила только лишь для того, чтобы показать, что то или иное действие возможно (или же невозможно). На Вашу реплику могу ответить следующее: всё под спойлером. Вы просили main в другом классе и в другом пакете - извольте, только не говорите, что я опять что-то нарушил или не так сделал. Ok?
Кликните здесь для просмотра всего текста
Всего наилучшего!
0
|
25.07.2016, 23:05 | |
25.07.2016, 23:05 | |
Помогаю со студенческими работами здесь
14
Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только создание объектов и вызов методов Имена входных и выходных файлов задаются через аргументы командной строки Переменные аргументы: файл stdarg.h Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |