Вероятно, эти мои записи про Java должны выглядеть весьма странно, потому что альтернативой или каким-то сколько-нибудь самостоятельным вариантом учебника они никк не являются. На самом деле они - короткие записи о том, что я смог объяснить себе из непонятого или плохо понятого ранее. Сегодня - геттеры/сеттеры, перегрузка и конструкторы.
Дело в том, что на JavaRush, как оказалось, не вполне понятная последовательность изложения (типа "а вот тут еще вот такая штука есть"), поэтому указанные вещи не вписывались в систему. А вот с помощью уже упоминавшегося видеокурса "Java для тестировщиков" эти вещи сложились в целостную картинку.
Все те вещи, о которых пойдет речь - следствия ООП. Так, например, если для инкапсуляции в классах выставлены ограничения доступа, то для того, чтобы этот доступ все-таки при необходимости получить, используются сеттеры и геттеры. Геттер - метод getNum(), например, - выдает вовне значение переменной, которая определена внутри класса, а сеттер - setNum(), соответственно, - позволяет извне это значение установить.
Конструкторы - это методы, создающие объекты данного класса. Дело в том, что когда я изучал создание объекта и конструкторы раньше, было неочевидно, что при создании нового объекта без передаваемых параметров вызывается конструктор (например, Class a = new Class()). Неочевидно не только потому, что не объяснили, но и потому, что он в классе есть по умолчанию и в коде не обязательно прописан. Соответственно, в изложении учебного материала конструкторы появляются как бы "вдруг", только когда надо в создаваемом объекте указать параметры.
Перегрузка (overloading) означает всего навсего возможность создавать методы с одинаковым именем, но разными параметрами (типом и/или количеством). Это нужно для того, чтобы иметь возможность как бы "уточнять" некоторый метод в зависимости от новых контекстов (например, потребность передать другой параметр), не переписывая всю программу.
Ну и еще одно важное дополнение. Java очень "экономно" работает с памятью. С одной стороны, есть "сборщик мусора", который освобождает память, убирая из нее значения неиспользуемых переменных. А с другой, - объекты не-примитивных типов создаются один раз, а дальше используются только ссылки на эти объекты. И это следует учитывать при операциях с ними.
Дело в том, что на JavaRush, как оказалось, не вполне понятная последовательность изложения (типа "а вот тут еще вот такая штука есть"), поэтому указанные вещи не вписывались в систему. А вот с помощью уже упоминавшегося видеокурса "Java для тестировщиков" эти вещи сложились в целостную картинку.
Все те вещи, о которых пойдет речь - следствия ООП. Так, например, если для инкапсуляции в классах выставлены ограничения доступа, то для того, чтобы этот доступ все-таки при необходимости получить, используются сеттеры и геттеры. Геттер - метод getNum(), например, - выдает вовне значение переменной, которая определена внутри класса, а сеттер - setNum(), соответственно, - позволяет извне это значение установить.
Конструкторы - это методы, создающие объекты данного класса. Дело в том, что когда я изучал создание объекта и конструкторы раньше, было неочевидно, что при создании нового объекта без передаваемых параметров вызывается конструктор (например, Class a = new Class()). Неочевидно не только потому, что не объяснили, но и потому, что он в классе есть по умолчанию и в коде не обязательно прописан. Соответственно, в изложении учебного материала конструкторы появляются как бы "вдруг", только когда надо в создаваемом объекте указать параметры.
Перегрузка (overloading) означает всего навсего возможность создавать методы с одинаковым именем, но разными параметрами (типом и/или количеством). Это нужно для того, чтобы иметь возможность как бы "уточнять" некоторый метод в зависимости от новых контекстов (например, потребность передать другой параметр), не переписывая всю программу.
Ну и еще одно важное дополнение. Java очень "экономно" работает с памятью. С одной стороны, есть "сборщик мусора", который освобождает память, убирая из нее значения неиспользуемых переменных. А с другой, - объекты не-примитивных типов создаются один раз, а дальше используются только ссылки на эти объекты. И это следует учитывать при операциях с ними.
Комментариев нет:
Отправить комментарий