693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
1

пробую научиться работать с классами

25.03.2013, 17:44. Показов 9203. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
и так как никогда их не использовал прошу помощи
1.Для чего они нужны
2.Как их использовать
3.Что они облегчают
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2013, 17:44
Ответы с готовыми решениями:

Цель: Научиться описанию и работе с классами на языке C#
Описать класс мужчина, включающий конструктор инициализации мужчины (Ф.И.О., год рождения, пол,...

Научиться работать с файлами
Ребят помогите пожалуйста. Нужно на С# научиться работать с простейшими файловыми операциями в...

Как научиться работать с ПК и железом
Здравствуйте, подскажите с чего начать обучение,где взять материал, я очень хочу научиться работать...

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

44
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
25.03.2013, 18:13 2
Хорошие вопросы... Попробую ответить.

1) для чего они нужны (применительно к VB). Без классов у VB-программиста нет возможности создать двоичную библиотеку. Чтобы создать dll в VB код необходимо "обернуть" в классы. Точно так же не получится использовать библиотеки, созданные другими программистами.

Это, пожалуй, единственный случай для VB-программиста, когда он просто не сможет обойтись без классов.

Приложения (даже достаточно сложные) можно писать и без классов. Использование классов - это идеология (объектно-ориентированное программирование, ООП). Про ООП есть масса "философской" литературы (можно найти в любом поисковике).

Если кратко, ООП - это метод написания повторно-используемого и безопасного кода.

2. Как использовать классы? Очень просто: добавляешь к проекту (мышью) модуль класса, переименовываешь (вместо Class1 - нормальное имя) и задаешь свойства и методы. Для последнего в VB есть замечательная надстройка ClassBuilder - пользоваться удобно!

Когда класс создан - можно создавать объекты. Класс - это тип, а объект - экземпляр типа. Пусть в проекте есть класс, описывающий прямоугольник: clsRect. У него свойства height, width, color и метод Show с параметрами left и Top. Тогда создание объекта выглядит так:

Visual Basic
1
2
3
4
5
6
7
8
    Set R1=new clsRect
 
    With R1
       .width=1000
       .heigh=500
       .color=QBColor(12)
       .Show 100,100
    End With
Этот код создаст прямоугольник и отобразит его с позиции 100,100. Пример, конечно, условный.
Важно то, что объектов можно создавать много (сколько потребуется).

3. Что они облегчают? Реально - создание сложных приложений, моделирующих объекты реального мира. Простые задачи можно реализовать на процедурах (с учетом п.1).
1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 18:22 3
В VBA классы нужно создавать самому VBA-программисту только для создания событий.
Больше ни для чего в VBA классы не нужно самому создавать. Все классы уже сделаны программистами из организации "Microsoft" или программистами из других организаций (если используются библиотеки не от организации "Microsoft") и VBA-программисту остаётся только использовать эти классы. Что не является простой задачей, т.к. очень много разных классов и как их все запомнить и уметь в них ориентироваться - для меня, например, это загадка.

Я как-то стал вникать в классы, после чего тяжелее стало писать код, т.к. начинаешь представлять себе работу класса и становится очень сложно. А когда ты не знаешь, как работает класс, а просто по VBA-справке и с помощью макрорекордера пишешь макрос, то ничего сложного нет.
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
25.03.2013, 18:27 4
Цитата Сообщение от Скрипт Посмотреть сообщение
Больше ни для чего в VBA классы не нужно самому создавать.
- ну, это от задачи зависит...
0
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 18:27  [ТС] 5
Catstail, можно ли создать что на подобие
Visual Basic
1
clsRect.iNum.Znach
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
25.03.2013, 18:29 6
Цитата Сообщение от Скрипт Посмотреть сообщение
Я как-то стал вникать в классы, после чего тяжелее стало писать код,
- странно... Чем может помешать знание?

Добавлено через 1 минуту
Цитата Сообщение от IvanOK Посмотреть сообщение
Catstail, можно ли сождать что на подобие
- да, если, например, clsRect - класс, а его свойство iNum - тоже класс или структура.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 18:29 7
Цитата Сообщение от Catstail Посмотреть сообщение
- странно... Чем может помешать знание?
я начал представлять взаимосвязь класса с другими классами, а у тех классов ещё связь с другими классами и ещё во всём это участвуют свойства и методы и как это всё размещается в оперативной памяти компьютера - я думаю, что всё это представить - это неподъёмная задача для непрофессионального программиста.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
25.03.2013, 18:30 8
Цитата Сообщение от Скрипт Посмотреть сообщение
В VBA классы нужно создавать самому VBA-программисту только для создания событий.
- смысл правильный. Согласен. Без классов свои события в VBA создать нельзя.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
25.03.2013, 18:36 9
Цитата Сообщение от IvanOK Посмотреть сообщение
2.Как их использовать
Какую задачу ты хочешь решить? Лучше всего классы изучать на конкретных примерах
0
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 18:43  [ТС] 10
ViterAlex, мне нужно создать типа трьохмерного массива

Добавлено через 2 минуты
Visual Basic
1
2
3
4
5
6
7
clsRect.iNum.Znach=1
clsRect.iNum.Znach1=5
clsRect.iNum.Znach2="sdfs"
 
clsRect.iNum1.Znach=5
clsRect.iNum1.Znach1=6
clsRect.iNum1.Znach2="sdfs1"
что то типа так

Добавлено через 1 минуту
или
Visual Basic
1
2
3
4
5
6
7
clsRect.iNum(1).Znach(1)=1
clsRect.iNum(1).Znach(2)=5
clsRect.iNum(1).Znach(2)="sdfs"
 
clsRect.iNum(2).Znach(1)=1
clsRect.iNum(2).Znach(2)=5
clsRect.iNum(2).Znach(2)="sdfs"
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
25.03.2013, 18:48 11
Цитата Сообщение от Скрипт Посмотреть сообщение
и как это всё размещается в оперативной памяти компьютера
- это другой уровень знания... Кстати, использовать ООП можно и не зная деталей размещения в памяти.
0
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 18:57  [ТС] 12
вопрос остался еще актуален!
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 19:03 13
Цитата Сообщение от Catstail Посмотреть сообщение
Кстати, использовать ООП можно и не зная деталей размещения в памяти.
мне проще не знать деталей ООП.
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
25.03.2013, 19:04 14
IvanOK, для начала отсылаю к вашей теме
Как проверить, в каком из Checkbox пользователь сделал выбор?

Реализация массива массивов с помощью коллекции экземпляров класса: Erase для массива, являющегося элементом коллекции
1
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 19:13  [ТС] 15
Казанский, вы как всегда нечем дополнить

Добавлено через 4 минуты
блин легче не вникать ....если б знал.....стоит оно того или можно решать все с помощю масивов..... так как мне ООП сейчас не нужно
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 19:17 16
IvanOK, ещё для чего класс может понадобится в "VBA" - это если надо создать несколько одинаковых объектов. Вам нужно создавать несколько одинаковых объектов для решения вашей задачи?

Если вы хотели создать класс в качестве базы данных и вам нужен только один экземпляр этого класса, а не несколько, то можно использовать пользовательский тип данных (в других языках программирования пользовательский тип данных называется "структурой"). В нём же много чего можно создать для хранения данных.
1
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 19:25  [ТС] 17
Цитата Сообщение от Скрипт Посмотреть сообщение
одинаковых объектов для решения вашей задачи?
пока нет

Добавлено через 1 минуту
Цитата Сообщение от Скрипт Посмотреть сообщение
Если вы хотели создать класс в качестве базы данных и вам нужен только один экземпляр этого класса
если не один
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 19:36 18
IvanOK, хотя и у пользовательского типа данных можно создавать несколько экземпляров. Так что в вашем случае, даже если понадобится несколько одинаковых объектов, можно попробовать использовать вместо класса "пользоватеслький тип данных":

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
'С помощью "Type" создаём пользовательский тип данных "myDataBase".
'В других языках программирования пользовательский
    'тип данных называется структурой.
Type myDataBase
    'В этой структуре будет переменная "myID".
    myID As String
End Type
 
Sub Procedure_1()
    
    'Создаём в оперативной памяти компьютера структуры "myDataBase".
    Dim myVarible_1 As myDataBase
    Dim myVarible_2 As myDataBase
    
    'Помещаем данные в структуры для каких-нибудь целей.
    myVarible_1.myID = "Данные"
    myVarible_2.myID = "Данные"
 
End Sub
1
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
25.03.2013, 19:41  [ТС] 19
Скрипт, как сделать 3-4 уровня
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
25.03.2013, 20:00 20
IvanOK, наверное, придётся тогда классы создавать: 3 или 4 класса тогда нужно создавать. У каждого класса свойством будет другой класс и так по-цепочки.

Ни разу такого не делал.
0
25.03.2013, 20:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2013, 20:00
Помогаю со студенческими работами здесь

Хочу научиться работать с сокетами
хочу научиться посылать и принимать сокеты, посредством с++,кто нибудь может научить? Все, что...

Как научиться работать с ADO.NET
Чувствую некоторую неловкость , когда задаю вопросы на форуме - возможно из-за низкого уровня...

Как научиться работать с базами данных?
Кто-то может подсказать литературу, сайты или ссылки форума, где подробно для чайников...

Как научиться работать в среде Sasm?
Кто может научить пользоваться и работать в среде sasm?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru