Программа учета имен

  • 2
  • Недоступна
Генеральный консул планеты Руфус Андрю-Ша застрял на межгалактической железной дороге по причине некорректной работы программы учёта домашних животных пассажиров дипломатического корпуса Федерации. В этой программе сломался метод фиксации имен. Давайте исправим ситуацию: напишем для железнодорожников необходимый им метод setName.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (70)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Дмитрий4 уровень, Санкт-Петербург
воскресенье, 16:28
решил просто за секунду логически. но в голове всё равно дыра. объясните на пальцах
Regina Kazan7 уровень, Казань
16 сентября, 20:07
Блин, мелочь, а приятно
Greq5 уровень
15 сентября, 09:45
Задача решена. Но у меня смутное подозрение, что валидатор не прав и решение должно быть с точностью до наоборот.
vzubkeviсh6 уровень, Санкт-Петербург
23 августа, 18:36
это было очень просто, но из-за того что я думал, мол это должно быть сложней, начал додумывать лишнее, обманул сам себя, но разобрался быстро. решается так же как и предыдущая задача, только обращение к локальной переменной делаем и всё
Alexander Mineyev8 уровень, Москва
6 августа, 10:57
скажите: только у меня одного такое чувство: что стал резко ничего понимать? все делается по наитию????
Анна Миронюк6 уровень, Краснодар
13 августа, 11:56
ты не один, сумбур в голове, подумываю,что бы пройти все заново
Роман Уразов10 уровень, Воронеж
29 июня, 08:36
Проблема этой задачи в том, что не очевидно нифига, что надо создавать объект класса Cat. Идея задачи в том, что метод не будет работать на класс, он работает на объект класса. Я убил час на то, чтобы допереть до этого.
Евгений5 уровень, Минск
5 июня, 18:17
Вроде дошло: метод НЕ СтатическиЙ поэтому можно уравнять переменные через ( this ), а СтатическиЙ через ИМЯ КлассА.
Алексей4 уровень, Ярославль
4 июня, 15:02
Благодаря этой и другим задачам данной лекции в голове начинает устаканиваться информация предыдущей лекции =) Странно, почему эти задачки не в предыдущей лекции, ведь они попроще тех, что там.
Slava Levchenko7 уровень, Чита
13 апреля, 07:20
хорошее объяснение какого то автора из коментов ранее ... 1. Если переменная помечена словом "static", то она общая для всех объектов, что будут созданы.(Что-то вроде общей ячейки в банке, из которой все могут брать что-то, и все могут туда ложить что-то). 2. THIS используйте, когда имена вашей переменной в классе и переменной в методе совпадают. Не заморачивайтесь, просто помните - вызов переменной в методе - ее имя. Вызов переменной в классе - this. + ее имя. Ничего сложного, пацаны :D. 3. Если видишь что в метод объявлен СТАТИЧЕСКИМ, то про this ЗАБУДЬТЕ сразу!!1 Когда переменная или класс статитический, то он вызывается ClassName.methodName(). (Типа у вас есть класс Cat, а внутри - метод catCount(). Так вот чтоб его вызвать, юзайте Cat.catCount() . ) 4. Короче: Нестатический метод - забей и юзай This. Если статический, то вместо this пишешь название его класса. Все.
Владимир4 уровень, Архангельск
10 февраля, 16:21
Я не до конца понял этот момент... Поему иногда нужно
Cat.fullName = fullName;
А иногда
this.fullName = fullName;
BariO16 уровень, Nizhniy Novgorod
11 февраля, 10:41
если переменная статик то она не относится к какому либо объекту. она относится ко всему классу. поэтому Cat. а обычная переменная для каждого объекта своя. this
C-Grey17 уровень, Санкт-Петербург
19 февраля, 20:12
то есть в методе main мы вызываем функцию setName c параметрами, нfпример, "барсик петров". метод setName должен вписать это в свою fullName и присвоить это значение тому fullName которое в классе Cat....верно? почему тогда внутри метода setName "this" приписывается к той переменной которую надо по идее менять, а нек той в которую мы только что записали значиние которое надо отправить в тот первый fullName из второй строчки?
BariO16 уровень, Nizhniy Novgorod
20 февраля, 07:19
ты метод setName можешь вызывать только через объект т.к. метод не статичен.
Cat cat = new Cat();
cat.setName(.............);
следовательно объект, который вызывает этот метод и есть this. тут другого не дано можно было бы this и не писать вовсе, но поскольку ты внутри метода создаешь еще одну переменную
String fullName
с таким же именем, то их между собой как-то надо отличать. можно сделать было так:
public void setName(String firstName, String lastName) {
        this.fullName = firstName + " " + lastName;
        }
или даже так, но тогда не очень читаемо. когда есть this сразу понятно что к чему:
public void setName(String firstName, String lastName) {
        fullName = firstName + " " + lastName;
        }