Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577

Свойство метода из класса

04.10.2013, 23:04. Показов 1547. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу класс у него как положено есть методы у методов есть свойства как получить доступ к свойствам?
К примеру класс Кот у него есть метод тело, у тела есть свойства морда, лапы, хвост
Они должны быть установлены по умолчанию но доступны для изменения.
Пример, после объявления класса получаю доступ к свойствам его метода

dim myrzik as new Кот
myrzik.тело.лапы = 4
Так же у метода может быть тип имеющий свои свойства который в свою очередь является свойством метода
Кот.тело.морда.усы = 10

Как написать такой метод?
Простое объявление как в php не прокатывает, а в гугле нахожу ток свойства класса.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2013, 23:04
Ответы с готовыми решениями:

Изменить свойство элемента формы из метода произвольного класса
Добрый вечер, эта тема не раз уже поднималась, но я, убив целый день, так и не смог понять, как изменить свойство элемента на форме из...

Передача метода класса в качестве параметра для метода другого класса
Здравствуйте, Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог прервать любую функцию, при этом абсолютна...

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что метод не утрачивает связи с базовым...

17
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
04.10.2013, 23:19
Объявляй отдельно классы "тело" и "лапы" и делай их соответствующими свойствами класса.
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
04.10.2013, 23:31  [ТС]
А по другому не как?)
Так будет путаница (хотя возможно нет, но польюбому код будет раскидан)
К тому же для каких нибудь мелких свойств придётся писать отдельный класс.
Чет не могу представить как это реализовать, как сделать свойством класса понятно
а как свойством метода не совсем.
По идее должен быть способ описанный выше, он мне попадался в 3 разных языках поддерживающих опп.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
04.10.2013, 23:36
Ну свойство метода, как я понимаю, это возвращаемое значение метода. Возвращай экземляр класса, вот и будет свойство метода. Можно еще пользовательский тип данных создать и его использовать как свойство.
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 00:06  [ТС]
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function kub()
    Dim x As Integer
    Dim y As Integer
    Dim px As Integer
    Dim py As Integer
    Dim zx As Integer
    Dim zy As Integer
    Dim pzx As Integer
    Dim pzy As Integer
    x = 0
    y = 0
    px = 100
    py = 100
    zx = 10
    zy = 10
    pzx = 110
    pzy = 110
End Function

Этих переменных ещё может быть штук 50
по умолчанию у них есть значение тоесть после создания объекта
пишу объект.куб и мне рисует куб но как сделать чтоб написал
объект.куб.px =150 и значение изменилось не представляю
так же чтоб написал
переменная = объект.куб.px
и получил значение.
Более того как при всём этом написать так чтоб внутри метода эти переменные были
заключены в что то наподобие типа
тоесть пишем объект.куб.стороны.px =150
переменная = объект.куб.стороны.px
И при этом все эти переменные должны работать внутри метода куб.
В самом vb это же как то реализовано, по идее это всё должно быть внутренностями одного класса.
И ещё как сразу выставить переменной значение Dim pzy As Integer = 100 не выходит хотя по идее должно.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.10.2013, 00:09
Еще раз - используй классы.
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 01:35  [ТС]
Бредово сделано
Для того как я хочу надо писать новый класс с переменными в виде.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private mvartest As Integer
Public Property Set test(ByVal vData As Integer)
    Set mvartest = vData
End Property
 
Public Property Get test() As Integer
    If IsObject(mvartest) Then
        Set test = mvartest
    Else
        test = mvartest
    End If
End Property
Для каждой переменной.
Плюс ещё писать функцию в которой всем переменным будет выставлено значение по умолчанию.
После этого надо ещё объявить этот класс внутри своего класса и присвоить своим рабочим переменным
значения из этого класса

Добавлено через 17 минут
И то это будет не совсем то что надо)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
05.10.2013, 06:33
Небольшая подсказка:



Без Property Set и Propеrty Get
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
05.10.2013, 06:54
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.10.2013, 10:32
Цитата Сообщение от The trick Посмотреть сообщение
свойство метода
- в идеологии ООП такого понятия нет.
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 22:17  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
в идеологии ООП такого понятия нет.
В php пишешь класс, в классе метод, в методе переменные, после.
PHP
1
2
$class->metod->svboistvo = 10
$perrr = $class->metod /выдаст уже значение с изменённым свойством.
Такие же конструкции поддерживает ActionScript 2.0 -3.0

Добавлено через 4 минуты
Причём что само поражает то что я при объявление переменной сразу не могу выставить ей значение.
Dim var as string = "значение"
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.10.2013, 22:33
Цитата Сообщение от radlif Посмотреть сообщение
В php пишешь класс, в классе метод, в методе переменные
- заглянул в книгу по php 5/6. Модель ООП, поддерживаемая PHP, весьма близка к модели C++. Понятие "свойство метода" я не нашел. То, что пишешь ты, возможно и имеет место, но только в скриптовых (интерпретируемых) языках, к числу которых принадлежат и php, и ActionScript. А VB язык компилируемый и в VB таких конструкций (динамическое создание переменных) быть не может.

Добавлено через 2 минуты
Цитата Сообщение от radlif Посмотреть сообщение
Причём что само поражает то что я при объявление переменной сразу не могу выставить ей значение.
Dim var as string = "значение"
- в VB.NET можешь.

И зачем привязывать переменные к методу? Может лучше - к классу (тогда они называются свойствами)?
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 22:40  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
И зачем привязывать переменные к методу? Может лучше - к классу (тогда они называются свойствами)?
Если в классе штук 10 методов и в каждом штук 10 внутренних переменных то в итоги вылезет большая портянка
в которой несложно ошибиться, а так я вызывая метод работаю ток с переменными внутри него,
так намного удобнее.

Добавлено через 2 минуты
Хотя раз не поддерживает толку вести дискуссию, буду привыкать по новому, хотя по моему
сделано как то неправильно, неудобно
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.10.2013, 22:40
Цитата Сообщение от radlif Посмотреть сообщение
Если в классе штук 10 методов и в каждом штук 10 внутренних переменных то в итоги вылезет большая портянка
в которой несложно ошибиться, а так я вызывая метод работаю ток с переменными внутри него,
так намного удобнее.
Метод - это функция (процедура).
Я не понимаю, для чего нужен доступ к внутренним переменным функции? В обычных модулях же ты не пользуешься внутренними переменными функции. Если нужны какие то значения узнать, поменять передавай аргументы в метод.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.10.2013, 22:41
Цитата Сообщение от radlif Посмотреть сообщение
Если в классе штук 10 методов и в каждом штук 10 внутренних переменных
- не хочу выглядеть поучающим ментором, но принцип инкапсуляции (основа ООП) требует, чтобы к внутренним переменным метода имел доступ только метод. Такие переменные нужно делать локальными (создавать внутри метода в любом количестве). И непонятно, в чем проблема.
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 22:46  [ТС]
Эт сейчас бесполезный диалог, я просто привык по другому.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.10.2013, 22:51
Цитата Сообщение от radlif Посмотреть сообщение
Эт сейчас бесполезный диалог, я просто привык по другому.
- для меня действительно бесполезный. А для тебя - нет. Ты же пишешь на VB, вот и придется следовать VB-шной идеологии (или менять среду).
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
05.10.2013, 22:54  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
- для меня действительно бесполезный. А для тебя - нет. Ты же пишешь на VB, вот и придется следовать VB-шной идеологии (или менять среду).
Да это и так понятно, сейчас переучиваюсь, чтоб делать как я привык пишу ещё 1 класс
с переменными и делаю его свойством моего класса присваивая его значения внутри метода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2013, 22:54
Помогаю со студенческими работами здесь

Вызов метода класса из метода другого класса
Помогите школнегу Имеется несколько классов class Com { protected: unsigned char bufrd, bufwr; unsigned char tx_index,...

Как заставить свойство "Text" компонента Label забиндиться на свойство TheChar из пользовательского класса
Здравствуйте, не получается заставить свойство "Text" компонента Label забиндиться на свойство TheChar из моего класса, основанного на...

Управление функциями/методами класса через свойство класса
Вот, жидкость в голову ударила и появилась идея... дурная :pardon: Как бы так сделать: Есть, к примеру, класс Public Class...

Вызов метода агрегата из метода агрегируемого класса
Есть класс-агрегат Game function Game() { this.game_map = null; // другие члены } Game.prototype.needToCall = function() {...

Свойство класса возвращает объект другого класса
Каким образом можно через свойство получить доступ ко всем методам объекта,который возвращает это свойство?? данный код не работает..можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru