44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
|
1 | |
Свойство метода из класса04.10.2013, 23:04. Показов 1338. Ответов 17
Метки нет (Все метки)
Пишу класс у него как положено есть методы у методов есть свойства как получить доступ к свойствам?
К примеру класс Кот у него есть метод тело, у тела есть свойства морда, лапы, хвост Они должны быть установлены по умолчанию но доступны для изменения. Пример, после объявления класса получаю доступ к свойствам его метода dim myrzik as new Кот myrzik.тело.лапы = 4 Так же у метода может быть тип имеющий свои свойства который в свою очередь является свойством метода Кот.тело.морда.усы = 10 Как написать такой метод? Простое объявление как в php не прокатывает, а в гугле нахожу ток свойства класса.
0
|
04.10.2013, 23:04 | |
Ответы с готовыми решениями:
17
Изменить свойство элемента формы из метода произвольного класса Передача метода класса в качестве параметра для метода другого класса Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода Вызов метода класса из метода другого класса |
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
|
04.10.2013, 23:31 [ТС] | 3 |
А по другому не как?)
Так будет путаница (хотя возможно нет, но польюбому код будет раскидан) К тому же для каких нибудь мелких свойств придётся писать отдельный класс. Чет не могу представить как это реализовать, как сделать свойством класса понятно а как свойством метода не совсем. По идее должен быть способ описанный выше, он мне попадался в 3 разных языках поддерживающих опп.
0
|
Модератор
|
|
04.10.2013, 23:36 | 4 |
Ну свойство метода, как я понимаю, это возвращаемое значение метода. Возвращай экземляр класса, вот и будет свойство метода. Можно еще пользовательский тип данных создать и его использовать как свойство.
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
||||||
05.10.2013, 00:06 [ТС] | 5 | |||||
Кликните здесь для просмотра всего текста
Этих переменных ещё может быть штук 50 по умолчанию у них есть значение тоесть после создания объекта пишу объект.куб и мне рисует куб но как сделать чтоб написал объект.куб.px =150 и значение изменилось не представляю так же чтоб написал переменная = объект.куб.px и получил значение. Более того как при всём этом написать так чтоб внутри метода эти переменные были заключены в что то наподобие типа тоесть пишем объект.куб.стороны.px =150 переменная = объект.куб.стороны.px И при этом все эти переменные должны работать внутри метода куб. В самом vb это же как то реализовано, по идее это всё должно быть внутренностями одного класса. И ещё как сразу выставить переменной значение Dim pzy As Integer = 100 не выходит хотя по идее должно.
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
||||||
05.10.2013, 01:35 [ТС] | 7 | |||||
Бредово сделано
Для того как я хочу надо писать новый класс с переменными в виде.
Плюс ещё писать функцию в которой всем переменным будет выставлено значение по умолчанию. После этого надо ещё объявить этот класс внутри своего класса и присвоить своим рабочим переменным значения из этого класса Добавлено через 17 минут И то это будет не совсем то что надо)
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
||||||
05.10.2013, 22:17 [ТС] | 11 | |||||
В php пишешь класс, в классе метод, в методе переменные, после.
Добавлено через 4 минуты Причём что само поражает то что я при объявление переменной сразу не могу выставить ей значение. Dim var as string = "значение"
0
|
Модератор
|
|
05.10.2013, 22:33 | 12 |
- заглянул в книгу по php 5/6. Модель ООП, поддерживаемая PHP, весьма близка к модели C++. Понятие "свойство метода" я не нашел. То, что пишешь ты, возможно и имеет место, но только в скриптовых (интерпретируемых) языках, к числу которых принадлежат и php, и ActionScript. А VB язык компилируемый и в VB таких конструкций (динамическое создание переменных) быть не может.
Добавлено через 2 минуты - в VB.NET можешь. И зачем привязывать переменные к методу? Может лучше - к классу (тогда они называются свойствами)?
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
|
05.10.2013, 22:40 [ТС] | 13 |
Если в классе штук 10 методов и в каждом штук 10 внутренних переменных то в итоги вылезет большая портянка
в которой несложно ошибиться, а так я вызывая метод работаю ток с переменными внутри него, так намного удобнее. Добавлено через 2 минуты Хотя раз не поддерживает толку вести дискуссию, буду привыкать по новому, хотя по моему сделано как то неправильно, неудобно
0
|
Модератор
|
|
05.10.2013, 22:40 | 14 |
Метод - это функция (процедура).
Я не понимаю, для чего нужен доступ к внутренним переменным функции? В обычных модулях же ты не пользуешься внутренними переменными функции. Если нужны какие то значения узнать, поменять передавай аргументы в метод.
1
|
Модератор
|
|
05.10.2013, 22:41 | 15 |
- не хочу выглядеть поучающим ментором, но принцип инкапсуляции (основа ООП) требует, чтобы к внутренним переменным метода имел доступ только метод. Такие переменные нужно делать локальными (создавать внутри метода в любом количестве). И непонятно, в чем проблема.
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
|
05.10.2013, 22:46 [ТС] | 16 |
Эт сейчас бесполезный диалог, я просто привык по другому.
0
|
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 571
|
|
05.10.2013, 22:54 [ТС] | 18 |
Да это и так понятно, сейчас переучиваюсь, чтоб делать как я привык пишу ещё 1 класс
с переменными и делаю его свойством моего класса присваивая его значения внутри метода
0
|
05.10.2013, 22:54 | |
05.10.2013, 22:54 | |
Помогаю со студенческими работами здесь
18
Как заставить свойство "Text" компонента Label забиндиться на свойство TheChar из пользовательского класса Управление функциями/методами класса через свойство класса Вызов метода агрегата из метода агрегируемого класса Свойство класса возвращает объект другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |