Конструкторы и ключевое слово this часто очень связаны. Начальные
значения аргументов класса как говорилось ранее можно прочитать или
установить с помощью обычных методов, которые созданы для таких
действий, обычно им дают имена которые начинаются с слов: get и set
соответственно. Конструкторы записываются похожим образом как методы и
дают имена названия класса. Единственное отличие от метода - при
записи не нужно указывать возвращаемое значение. Конструктор может как
принимать аргументы, так и не принимать, а использовать свои какие
то значения.
Ключевое слово this откидывает необходимость придумывать постоянно уникальные имена входящих аргументов функций или конструкторов. Если в классе имеется переменная String с именем, например name, это же имя можно использовать для внутренних переменных методов и конструкторов, но чтоб присвоить его с таким же именем аргументу в объекте, достаточно добавить ключевое слово this.name = name; И переменная метода или конструктора name, будет присвоена переменной name уже объекта, а не самой себе.
Ключевое слово this откидывает необходимость придумывать постоянно уникальные имена входящих аргументов функций или конструкторов. Если в классе имеется переменная String с именем, например name, это же имя можно использовать для внутренних переменных методов и конструкторов, но чтоб присвоить его с таким же именем аргументу в объекте, достаточно добавить ключевое слово this.name = name; И переменная метода или конструктора name, будет присвоена переменной name уже объекта, а не самой себе.
-
public class thisjava{
String name;
int weight;
int height;
thisjava (String name, int weight, int height){
this.name=name;
this.weight=weight;
this.height=height;
public static void main (String[] args){
thisjava one = new thisjava ("One", 4, 2);
thisjava two = new thisjava ("Two", 5, 3);
thisjava three = new thisjava ("Three", 6, 4);
System.out.println(one.name+':'+one.weight+','+one.height);
System.out.println(two.name+':'+two.weight+','+two.height);
System.out.println(three.name+':'+three.weight+','+three.height);
}
}
Комментариев нет:
Отправить комментарий