Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Думаю, что и Олег писал то же самое. А поскольку DODEFAULT() - лишь частный случай оператора "::", то можно считать, что все, кто использовал DODEFAULT(), пользовались и оператором "::", так как любой DODEFAULT() можно заменить на "::". И уж в любом случае никакой принципиальной разницы между ними нет. А поэтому либо Олег никогда не пользовался и DODEFAULT(), либо это его сообщение непонятно: Получается, что для DODEFAULT() знать устройство класса не приходится, а для "::" - приходится. Этого не может быть. |
Re: Перепрыгнуть метод | |
---|---|
Каратаев Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Ну не совсем так... По крайней мере в Хелп указана разница между DODEFAULT() и :: Цитата: ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Об отличиях я написал выше. Но они непринципиальны при обсуждении высказывания: так как для DODEFAULT() "предысторию класса" знать надо так же, как и при применении оператора "::". На мой взгляд, принцип здесь - это возможность использования кода метода родителя, а какого именно метода - непринципиально. Исправлено 1 раз(а). Последнее : akvvohinc, 01.11.22 11:51 |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Лень смотреть, как написано в оригинале, но оператор "::" выполняет код метода (события) родителя, имеющего не только другое имя, но и то же самое, иными словами - любое. Именно поэтому оператором "::" можно заменить функцию DODEFAULT(), если есть такое желание. PS Заглянул всё же в оригинал Help - перевод предложения правильный, но оно само - не совсем корректно. Надо было написать не "выполняет код метода, имеющего другое имя", а "может выполнять и код метода, имеющего другое имя". Тогда было бы понятно, что оператор "::" может делать и то, что умеет DODEFAULT(), и кое-что ещё. Исправлено 1 раз(а). Последнее : akvvohinc, 01.11.22 11:44 |
Re: Перепрыгнуть метод | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Я не пойму, ты прикалываешься или тролишь клуб? Одно да потому каждый день. Кому чего тут объяснять? Всем всё понятно и без профессоров.
|
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Ты уж определись. |
Re: Перепрыгнуть метод | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Жажда общения! |
Re: Перепрыгнуть метод | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
DODEFAULT() (и NODEFAULT) только для "слома/обхода" штатного VFP-механизма обработки события, типа в KeyPress... О глобальном смысле оператора "::" предложил его характер "неправмерномерности" в отрыве от штатных механизмов фокса... В пределе ты прав - не надо лазить внутрь устройства класса, или лазить по полной (читать устройство классов, разные "блэкдоры", если програмеры их оставили) |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Я ничего не писал про "не надо лазить" внутрь класса. В том сообщении я написал лишь, что если ты не против добавлять/изменять свойства, то чем в этом плане "хуже" методы (события)? |
Re: Перепрыгнуть метод | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Возможно я тебя не понял...
В классах (в ООП) все просто: - есть предмет ОБЬЕКТ, обладающий свойствами (значениями и методами) - не дОлжно знать (без необходимости) об устройстве этого обьекта Не более этого соображения, "философского" и практического (все секретные ходы надо делать "явными", для "сектретности" снабжаю "секретным" ключом). Но останусь при мнении, что нет смысла предоставлять пользователям класса его "внутренности, подклассы", иначе идея понятия "класс" становится "расхожей"... > В том сообщении я написал лишь, что если ты не против добавлять/изменять свойства, то чем в этом плане "хуже" методы (события)? "Не против". Методы, правда, изменять не научился... Изменяю методы примерно так: - встраиваю в метод исскуственный вызов, типа в Init - встраиваю вызов ".Init_()". Метод Init_ вынужден делать в классе (или PEMSTATUS-ом как-то определяьб его наличие/отсутствие). Да , все это можно, просто, но загромождает картину... Но это и есть "програмертство", и за него платят (удивительно)... Исправлено 2 раз(а). Последнее : of63, 02.11.22 21:57 |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Ну, в этой теме речь же идет о не об объектах, а о написании дочерних классов. Как это можно сделать не "изучив" "устройство" классов родителей вплоть до базовых? Не пользователям, а себе самому как разработчику класса. |
Re: Перепрыгнуть метод | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
как себе - конечно, знай всю иерархию! )
...Наверное так - разраб класса, на основе отцовых классов, может использовать :: или DO|NOT0DEFAULT, если это документировано, иначе - это использование - лайфхак... ) |
Re: Перепрыгнуть метод | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Добавить можно, изменить нельзя. Можно переопределить (override). |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Вот это "переопределить" я позорно и назвал "изменить". Но если "изменить нельзя", то вы понимаете, что именно нельзя сделать, правильно? Расшифруйте, пожалуйста, а то я никогда особенно не задумывался об этих различиях. Или напишите, что именно можно было бы сделать с кодом метода, если бы "изменить" его было можно. |
Re: Перепрыгнуть метод | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Цитата: Изменить значит сделать другим. Переопределить - отменить одно определение и назначить другое. При переопределении метода родительского класса в наследуемом, метод родительского класса не меняется он остается таким же. Вместо функционалности реализуемой кодом метода родительского класса, определяется функциональнось реализуемая кодом наследуемого класса.
Взять исходники родительского класса и внести правки в его метод. |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
То есть когда речь идёт о "добавить", то имеем в виду "добавить в дочерний класс", а когда об "изменить", то сразу о родительском? Интересно... |
Re: Перепрыгнуть метод | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Иными словами, когда мы что-то переопределяем, то мы не делаем это что-то другим? |
Re: Перепрыгнуть метод | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Ну...
Можно и Цитата: |
Re: Перепрыгнуть метод | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Делаем. Делаем мир другим. |
Re: Перепрыгнуть метод | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Кстати почему класс дочерний? Класс это же - он, мужской род. Должен быть по идее сыновий. |
© 2000-2024 Fox Club  |