Есть просто такое выражение чисто пример "У класса должен быть метод initialize, принимающий в качестве параметров вес, цвет, адрес и инициализирующий все переменные класса, кроме имени."
есть код какой то
public void initialize (String name, int weight, int age){
this.name = "Vaska";
this.weight = 20;
this.age = 9;
this.color = "black";
}
обясните а если я пишу
this.name = name;
this.weight =weight;
this.age = age;
this.color = color;
и еще, я понимаю что при помощи this я обращаюсь к основному типо класу(я это заметил в идеи) но если к примеру я еще напишу
name =name
weight =weight
age=age
color=color
Что я сделаю? то что я буду обращатся к методу(ну как я понял).но я запутался просто
Что означает инициализировать, или где я это правильно делаю?
Руслан
21 уровень
Обясните на пальцах
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Илья ГековMaster
1 августа 2018, 19:55полезный
У тебя есть класс (как я понял из примера Cat). Этот класс имеет свои поля: name, weight, color, age и т.д. Когда ты вызываешь метод initialize (String name, int weight, int age), ты передаешь аргументами этого метода переменные с такими же названиями как и поля в твоем классе. Далее тебе надо присвоить эти переданные значения полям твоего класса. Тут встает вопрос - как указать, что значение переменной name нужно присвоить значению поля name (имена переменных одинаковые, соответственно, name = name не пойдет)? Для этого существует ключевое слово this, которое по сути является ссылкой на экземпляр данного класса. Соответственно, когда ты пишешь this.name = name, ты указываешь, что полю name данного экземпляра класса Cat надо присвоить значение переменной name, переданной как аргумент метода initialize.
Так же, в данном случае можно сделать так:
В данном случае нам не потребовалось использовать this, так как имена аргументов не совпадают с именами полей класса. +2