Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Need Java-help или первые шаги в Java-программировании.

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
Cмысл очень короткий, как у аппендикса. Получается, что переменная, которая определена прямо в аргументах, тут же практически используется для задания значения другой переменной, а та, которая получила это значение, потом не используется, используется другая, i.

Всего записей: 501 | Зарегистр. 11-08-2007 | Отправлено: 18:07 29-09-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
тут же практически используется для задания значения другой переменной, а та, которая получила это значение, потом не используется

У вас, похоже, опыта с ООП вообще нет.
Она использовалась - установила значение атрибута/свойства объекта (внутренней переменной экземпляра класса). Которая потом может как то использоваться другими методами класса. Например в методе выводящем это значение (info).
 
Рекомендую еще почитать про сеттеры и геттеры.
https://javarush.ru/groups/posts/1928-getterih-i-setterih
 

Цитата:
используется другая, i.

I в данном случае переменная цикла, значение которой используется при инициализации (создании) экземпляра класса (это значение передается в конструктор)

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 18:48 29-09-2020 | Исправлено: Mavrikii, 18:59 29-09-2020
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Она использовалась - установила значение атрибута/свойства объекта (внутренней переменной экземпляра класса)

В данном примере она какого-либо значения не устанавлвала, так как сама его не имеет. Она лишь является ссылкой для height "в аргументы", откуда потом это значение будет задействовано для i.

Цитата:
I в данном случае переменная цикла, значение которой используется при инициализации (создании) экземпляра класса (это значение передается в конструктор)

Вот именно, передается; конструктор вначале "сопоставляет" её с одной переменной, но только затем, что бы сопоставить с другой. Поэтому, раз уж поля аргументов имеют гибкий функционал, то почему бы не миновать "лишнюю" переменную.
 
Ну и потом... программист в первом(последнем) кнструкторе значение height только для красоты видимо устанавливает, ну т.е. похоже без соответствующего рационализма выполнен код примера.

Всего записей: 501 | Зарегистр. 11-08-2007 | Отправлено: 04:36 30-09-2020 | Исправлено: Vlimiik, 04:37 30-09-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik
вы рассматриваете обучающий пример, который не должен обладать какими то супер возможностями.
 

Цитата:
В данном примере она какого-либо значения не устанавлвала, так как сама его не имеет. Она лишь является ссылкой для height "в аргументы", откуда потом это значение будет задействовано для i.

вы путаете. изначальным является цикл с i, который в каждом проходе создает экземпляр класса Tree, используя значение i как первоначальную высоту height. как при этом вы обзываете аргумент метода или функции - ваше право и как вам понятнее.
 

Цитата:
Вот именно, передается; конструктор вначале "сопоставляет" её с одной переменной, но только затем, что бы сопоставить с другой. Поэтому, раз уж поля аргументов имеют гибкий функционал, то почему бы не миновать "лишнюю" переменную.

Tree(int height) не переопределит внутреннюю переменную, ибо аргумент конструктора не является ею - он будет локальной, для метода, переменной. попробуйте, увидите, что везде у вас будет 0 результат.

Цитата:
Создание нового дерева высотой 0 м.  
Дерево высотой 0 м.  
Перегруженный метод: Дерево высотой 0 м.  
Создание нового дерева высотой 1 м.  
Дерево высотой 0 м.  
Перегруженный метод: Дерево высотой 0 м.  
Создание нового дерева высотой 2 м.  
Дерево высотой 0 м.  
Перегруженный метод: Дерево высотой 0 м.  
Создание нового дерева высотой 3 м.  
Дерево высотой 0 м.  
Перегруженный метод: Дерево высотой 0 м.  
Создание нового дерева высотой 4 м.  
Дерево высотой 0 м.  
Перегруженный метод: Дерево высотой 0 м.  
Сажаем росток

можно вот так, но это полностью идентично примеру

Код:
Tree(int height) {
  this.height = height;
  ...
}

к тому это приравнивание не всегда прямое, иногда бывают и проверки.
 

Цитата:
ну т.е. похоже без соответствующего рационализма выполнен код примера.

это пример для понимания перегрузки методов/конструкторов, вы акцент делаете не на том.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 06:08 30-09-2020 | Исправлено: Mavrikii, 06:40 30-09-2020
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
Спасибо, за пример с this, для меня это новая информация. По ссылке тоже интересненький материал.  
Просто получается с этой переменной всё же код, который воспринимается как трудно читаемый что ли, другими словами, код который имеет значение только для компилятора, а не для программиста. Если бы как-то вместо имени переменной фигурировало ключевое слово void, впринципе, смысл был бы лучше воспринимаемый, а по сути ничего при этом не потерял. Или может быть какой-нибудь подгружаемый объект, который бы выполнял "рутинную" функцию "мусорной" переменной.  
Кстати, почему бы одной из внутренних функций класса не была бы возможность установить значение для глобальной переменной этого класса, по моему это логично. Тут скорее всего тема иерархии тоже серьезно затронута, наверное по этому направлению можно еще почитать. Я правильно понял, что в конструкторе нет возможности делать команды глобального масштаба? Даже переменная с точно таким же именем является другой переменной, поэтому её и надо переназначать.

Цитата:
он будет локальной, для метода, переменной

Тут небольшая поправка. Конструтор все же фактически не является методом, это скорее аргумент класса, чем метод, наверное.

Всего записей: 501 | Зарегистр. 11-08-2007 | Отправлено: 19:12 30-09-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
Просто получается с этой переменной всё же код, который воспринимается как трудно читаемый что ли, другими словами, код который имеет значение только для компилятора, а не для программиста

это вам так только кажется. все это отлично читается и понимается. как раз даже проще с названием initialHeight, так как уже подсказывает что это.
 

Цитата:
Конструтор все же фактически не является методом,  

это метод - функция, просто специальная.
 

Цитата:
Я правильно понял, что в конструкторе нет возможности делать команды глобального масштаба?

я не понимаю о чем вы. height и есть "глобальная" для данного экземпляра переменная.
 
поймите элементарное, new Tree() создает аналог структуры, со своими переменными, функциями и так далее. в простой записи (не данного языка)
tree = {
var1 = ...,
var2 = ....,
function fun1() {
....
},
function fun2() {
}
}
var1, var2 индивидуальны для экземпляра (если не объявлены static)
 
ваше зацикливание на именах переменных говорит о том, что вы просто не понимаете принципов ООП. вот с них и следует начать.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 20:52 30-09-2020 | Исправлено: Mavrikii, 20:55 30-09-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del/
 
перенес в более логичный топик

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 19:43 13-11-2020 | Исправлено: destiny child, 20:52 13-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny child
Прочитайте внимательно название  темы. Ваш вопрос к ней не относится.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 20:39 13-11-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del
спс. сообразил)))
вопрос переехал...

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 20:50 13-11-2020 | Исправлено: destiny child, 20:53 13-11-2020
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть небольшая консольная программка на Java выводящая вопросы с помощью  System.out.println и получающая ответы пользователя scanner.nextLine(). Подскажите, как в этой программке все, что выводиться в консоль сохранять в ArrayList<String>?

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 15:49 29-10-2021
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Возник вопрос организационного характера. В системе установлена jre1.8.0_40, там имеются все соответствующие файлы. Захожу в командную строку, пишу java, получаю хэлп-информацию.

Код:
 
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -client       to select the "client" VM
    -server       to select the "server" VM
                  The default VM is client.
 
    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
 
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for m
ore details.
 

Проблема в том, что пишется о возможности запустить приложение class, но фактически эта функция почему-то не работает, возвращается сообщение об ошибке: не найдено. При этом если, например, проверить версию командой java -version, программа выполнит запрос исправно.

Всего записей: 501 | Зарегистр. 11-08-2007 | Отправлено: 11:56 12-11-2021 | Исправлено: Vlimiik, 12:04 12-11-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
возвращается сообщение об ошибке: не найдено

как выглядит сообщение? может его выдает сам код?

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 18:58 12-11-2021
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть строка состоящая из букв и цифр, например Z100 или 100Z. Как отделить буквы от цифр, т.е получить две строки Z и 100?

Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 11:50 22-02-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7
регуляркой.
https://stackoverflow.com/questions/237061/using-regular-expressions-to-extract-a-value-in-java
https://stackoverflow.com/questions/28202368/regex-to-match-only-letters-and-numbers
либо тупо пройтись по каждому символу и выцепить нужный самостоятельно.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 12:01 22-02-2022
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть строка

Код:
 
<span class="review_comment" itemprop="description">нежелательный звонок <i>(проигрывалась запись / автомат)</i></span>

на неё можно наложить регулярку:

Код:
 
<span class="review_comment" itemprop="description">((?!</span>).*)*?</span>

и получить текст

Код:
нежелательный звонок <i>(проигрывалась запись / автомат)</i>

А можно ли наложить регулярку, которая бы "вырезала" лишь это:

Код:
нежелательный звонок (проигрывалась запись / автомат)

 
сразу скажу - двойной проход не разрешен.  
Регулярку вставляем в сторонний сервис, который лишь применяет её. Единожды.
Сервис на джаве - поэтому тут пишем, чтобы учесть нюансы поддержки регулярных выражений.

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 20:39 09-03-2022 | Исправлено: destiny child, 20:56 09-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny child

Цитата:
Регулярку вставляем в сторонний сервис, который лишь применяет её. Единожды

обрабатывайте результат самостоятельно, приведя его в нужный вид.
можно только сделать 2 группы, а потом самостоятельно их объединять - до <i> и между.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 01:03 10-03-2022
Vidockq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 179 | Зарегистр. 14-01-2016 | Отправлено: 15:43 04-07-2022 | Исправлено: Vidockq, 08:22 09-08-2022
Vidockq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
написал программку из нескольких модулей (в IntelliJ IDEA).
Запускаю для проверки работы - все работает как надо.
Скомпилировал (в IntelliJ IDEA) в jar - запускаю - не работает (или работает но не так).
Результат работы в среде разработки и после компиляции различен...
Что может быть не так?

Всего записей: 179 | Зарегистр. 14-01-2016 | Отправлено: 12:43 07-11-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vidockq

Цитата:
Что может быть не так?

версии java идентичны? могут использоваться какие то дополнительные ключи.

Всего записей: 15112 | Зарегистр. 20-09-2014 | Отправлено: 19:35 07-11-2022
Vidockq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Вопрос решился.
В IDE задается своя кодировка при её работе, а собранная jar-программа по-умолчанию использовала системную. И поэтому текстовые строки превращались в кракозябры - отсюда и проблема.

Всего записей: 179 | Зарегистр. 14-01-2016 | Отправлено: 09:04 08-11-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Need Java-help или первые шаги в Java-программировании.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru