Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Экземпляр класса   Найти похожие ветки 

 
SergD ©   (2010-03-24 20:51) [0]

Здравствуйте, мастера и не только! Вопрос простой... на примере объявления переменных:
1. Dim A as Double
2. Dim A as Button
Во втором случаи объявляется переменная как экземпляр класса Button . Можно ли сказать, что в первом случаи объявляется переменная как экземпляр класса Double? Знаю, что это тип переменной, но меня интересует более "широкий" смысл :)


 
TUser ©   (2010-03-24 20:53) [1]

Нельзя. Double - это примитивный тип, не класс.


 
Jeer ©   (2010-03-24 21:01) [2]

Есть сложные и простые типы данных, а есть классы, над которыми определены не только их свойства ( область значений, структура -  в общем случае ), но и операции над ними.
Это и есть главное отличие типов и классов.

На мой взгляд (в эпоху ООП), класс - множество, тип - подмножество.
Могут быть и иные мнения.


 
SergD ©   (2010-03-24 21:03) [3]


> Нельзя. Double - это примитивный тип, не класс.

То есть, наличие методов и свойств отличает примитивный тип от не примитивного класса? А если класс без методов и свойств (в пределе, ну не дописаны еще) - он примитивный тип? у Double свойство - выделять место в памяти и "формат" числа, так почему это не примитивный, но класс?


 
Anatoly Podgoretsky ©   (2010-03-24 21:03) [4]

> SergD  (24.03.2010 20:51:00)  [0]

Можно, если Double класс


 
TUser ©   (2010-03-24 21:06) [5]


> То есть, наличие методов и свойств отличает примитивный
> тип от не примитивного класса?

Не только. Еще, например, ты не можешь наследоваться от примитива.


 
Jeer ©   (2010-03-24 21:19) [6]


> TUser ©   (24.03.10 21:06) [5]
>
>
> > То есть, наличие методов и свойств отличает примитивный
> > тип от не примитивного класса?
>
> Не только. Еще, например, ты не можешь наследоваться от
> примитива.


Могу, но это ничего не изменит.
type
int = integer;
i32 = int;


 
Jeer ©   (2010-03-24 21:22) [7]

Ну в том, смысле, что это создание еще одного алиаса.


 
Игорь Шевченко ©   (2010-03-24 21:23) [8]


> Можно ли сказать, что в первом случаи объявляется переменная
> как экземпляр класса Double?


можно


 
SergD ©   (2010-03-24 21:41) [9]


> можно

+1 :)
Речь идет в широком, очень широком смысле!


 
SergD ©   (2010-03-24 21:44) [10]

Я не оспариваю, что это тип данных, в общепринятом понимании, но предлагаю выйти за "пределы" условностей ;) И пытаюсь понять, одинок я или нет )))))


 
Jeer ©   (2010-03-24 21:45) [11]

Человек всегда одинок, по большому счету.

P.S.
А встроенный простой тип double классом быть не может.


 
SergD ©   (2010-03-24 21:50) [12]


> P.S.
> А встроенный простой тип double классом быть не может.

Button - тоже встроенный... Я же не спорю, я просто как оппонент :) Свойства есть, их кто-то прописал заранее, то есть создал примитивный, но класс. Наследовать можно также, как Button и т.п. Отсутствие явного метода, хм... отсутствие результата - тоже результат :)


 
TUser ©   (2010-03-24 22:03) [13]


> Button - тоже встроенный

Куда встроенный? Компилятор о нем не знает. А про double он в курсе.


 
SergD ©   (2010-03-24 22:04) [14]

Ниже приведен код класса LALA. В настоящий момент LALA не содержит никаких методов (но это ничего не меняет, можно добавить, можно не добавлять).

class Box {
double width;
double height;
double depth;
}

Класс определяет новый тип данных. В данном случае новый тип данных назван LALA. Такой вот примитив - а назван классом, методов нет, а наследовать можно. А раз можно - то можно создать экземпляр! класса... Получается, что можно назвать экземпляром класса то, что наследуется


 
SergD ©   (2010-03-24 22:09) [15]


> Куда встроенный? Компилятор о нем не знает. А про double
> он в курсе.

Компилятор то откуда про double знает? :)


 
SergD ©   (2010-03-24 22:11) [16]

Я рад, что компилятор знает за double, почему мы не знаем? ;)


 
boa_kaa ©   (2010-03-24 22:14) [17]


> SergD ©   (24.03.10 22:04) [14]
> В данном случае новый тип данных назван LALA

мне кажется, он-таки т\назван Box


 
SergD ©   (2010-03-24 22:15) [18]


> мне кажется, он-таки т\назван Box

Досадная ошибка, думал об одном. правил на другое, суть то не в этом ;) вы по делу!


 
boa_kaa ©   (2010-03-24 22:18) [19]


> SergD ©   (24.03.10 22:09) [15]
> Компилятор то откуда про double знает? :)

берем книжку по ассемблеру и кричим: Эврика!


 
Jeer ©   (2010-03-24 22:18) [20]


> суть то не в этом ;) вы по делу!


Т.е. Вам - шашечки ? :)

Вы вольны в объявлении класса остановиться на объявлении его структуры и не более. В этом смысле, такой "недоопределенный" класс по сути просто сложный тип данных, но с умением наследоваться.

Если наследования не требуется - аналог структура.


 
SergD ©   (2010-03-24 22:45) [21]


> берем книжку по ассемблеру и кричим: Эврика!

Разве компилятору (разные ведь есть) не "объяснили" программисты, что такое double и как это должно "выглядеть" в машинном коде?


 
kukuikar ©   (2010-03-24 22:47) [22]

я в буром осадке...


 
SergD ©   (2010-03-24 22:48) [23]

Мы уходим от того. что меня интересует :)
1. Dim A as Double
2. Dim A as Button
Во втором случаи объявляется переменная как экземпляр класса Button . Можно ли сказать, что в первом случаи объявляется переменная как экземпляр класса Double? Знаю, что это тип переменной, но меня интересует более "широкий" смысл :)


 
Jeer ©   (2010-03-24 22:49) [24]

goto [1]


 
SergD ©   (2010-03-24 22:51) [25]


> goto [1]

Сказал, как отрезал ;) а вам [8]!


 
kukuikar ©   (2010-03-24 22:52) [26]

вы правы, уважаемый СергД, но дабл это все равно тип данных... Как не назови. Хоть бубль гум...


 
Плохиш ©   (2010-03-24 22:54) [27]


> Во втором случаи объявляется переменная как экземпляр класса
> Button

Вот врать не надо.


 
SergD ©   (2010-03-24 22:54) [28]


> вы правы, уважаемый СергД, но дабл это все равно тип данных.
> .. Как не назови. Хоть бубль гум...

Я с вами и не спорю!!! Я же сам написал, что это тип данных :) Вопрос лишь в том, можно ли применить более широкий термин?


 
kukuikar ©   (2010-03-24 22:55) [29]

и еще вопрос... Вам в более широком смысле.... А зачем вам в более широком смысле?


 
SergD ©   (2010-03-24 22:57) [30]


> Вот врать не надо.

Бродить в потемках не надо :)


 
kukuikar ©   (2010-03-24 22:57) [31]

какой термин?


 
SergD ©   (2010-03-24 22:58) [32]


> и еще вопрос... Вам в более широком смысле.... А зачем вам
> в более широком смысле?

Вопрос не в тему ;)


 
SergD ©   (2010-03-24 22:59) [33]


> какой термин?

Что же вы флудите? :) читайте посты ))))))


 
Плохиш ©   (2010-03-24 23:00) [34]


> SergD ©   (24.03.10 22:57) [30]
>
>
> > Вот врать не надо.
>
> Бродить в потемках не надо :)

Ну-ка ткни в каком месте там "экземпляр класса"


 
turbouser ©   (2010-03-24 23:02) [35]


> SergD ©   (24.03.10 22:51) [25]
>
>
> > goto [1]
>
> Сказал, как отрезал ;) а вам [8]!
>

в Индиане (штат США) в соответствии с законом число "пи" равно 4


 
Jeer ©   (2010-03-24 23:02) [36]


> Ну-ка ткни в каком месте там "экземпляр класса"


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


 
SergD ©   (2010-03-24 23:06) [37]

Ничего вы не понимаете... :) Завтра вернусь!


 
Плохиш ©   (2010-03-24 23:06) [38]


> Jeer ©   (24.03.10 23:02) [36]
> Не надо, а то он начнет сейчас по новому.

Ну дай я первый три латиновские прописные буквы напишу ;-)


 
Jeer ©   (2010-03-24 23:07) [39]

Уступаю просьбе :)


 
kukuikar ©   (2010-03-24 23:07) [40]

и в каком еще более широком смысле вы хотите использовать тип дабл?


 
turbouser ©   (2010-03-24 23:08) [41]


> kukuikar ©   (24.03.10 23:07) [40]

Extended xD


 
Jeer ©   (2010-03-24 23:10) [42]


> kukuikar ©   (24.03.10 23:07) [40]
>
> и в каком еще более широком смысле вы хотите использовать
> тип дабл?


Как бы тебе по-аккуратнее сказать..

Человек считает, что есть

> у Double свойство - выделять место в памяти и "формат" числа


т.е. для него это запредельной сложности тип данных.
А мы тут еще с алиасами, классами, экземплярами..


 
kukuikar ©   (2010-03-24 23:11) [43]

нет ты скажи,  я жду! (с)


 
Jeer ©   (2010-03-24 23:14) [44]

Он уже ушел, нам его не догнать, но обещал завтра прийти и разобраться тут с каждым.


 
Марвин Химейер   (2010-03-24 23:29) [45]

Я бы не стал утверджать, ни в первом ни во втором случае, про "переменная как экземпляр класса".
Скорее так - ссылка на предполагаемую сущность.

А уже в зависимости от текущей среды, заменял бы сущность на:
тип, структуру, класс, интерфейс и т.д...

PS: Кстати, а как вам такое :)

#define Button int
#define Double int


 
vuk ©   (2010-03-25 00:46) [46]

Блин. Никто так и не спросил, какой язык...


 
Марвин Химейер   (2010-03-25 00:55) [47]

VBA


 
vuk ©   (2010-03-25 00:58) [48]

to Марвин Химейер   (25.03.10 00:55) [47]

> VBA

Откуда вывод? А вдруг VB.NET? А там Double вот что из себя представляет:

http://msdn.microsoft.com/en-us/library/system.double_members(VS.71).aspx


 
Марвин Химейер   (2010-03-25 01:04) [49]

Тогда [45] :)
Впрочем, если автор не уточнил, значить его это не очень интересует...


 
Anatoly Podgoretsky ©   (2010-03-25 05:31) [50]

> SergD  (24.03.2010 21:44:10)  [10]

Скажи АУ


 
Alkid ©   (2010-03-25 09:00) [51]

Можно сказать, что мы имеем экземпляр типа Button и экземпляр типа Double. Так пойдёт? :)

Кстати, если речь идёт о .net, то Double там вполне себе класс, ибо встроен в иерархию.


 
KSergey ©   (2010-03-25 13:47) [52]

> Alkid ©   (25.03.10 09:00) [51]
> Кстати, если речь идёт о .net, то Double там вполне себе класс, ибо встроен в иерархию.

Но при этом он все же "мэйджик", и компилятор про него знает.

Автору: Почитайте клижку про .NET или C#, там это хорошо обычно поясняется. А еще про боксинг/анбоксинг для полного просветления :)
Поясняется в парадигме .NET, конечно, но т.к. она "расширенная" в этом как раз смысле, то многое становится понятно, на мой взгляд. Именно в смысле "что же такое int: класс или тип",  и именно в абстрактном в том числе смысле.


 
SergD ©   (2010-03-25 14:43) [53]

Vb.net не спорьте
уже две книги нашел, где написано, что это класс :) в том числе от микрософта



Страницы: 1 2 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.105 c
15-1270041267
12
2010-03-31 17:14
2010.08.27
Прикольный рудимент. D7.XP.


2-1273755318
_guest_
2010-05-13 16:55
2010.08.27
впечатать содержимое RichEdit в произвольное место листа


10-1166777041
DmiSb
2006-12-22 11:44
2010.08.27
Как программно создать письмо на отправку в The Bat


15-1273955393
Юрий
2010-05-16 00:29
2010.08.27
С днем рождения ! 16 мая 2010 воскресенье


15-1266571665
ANB
2010-02-19 12:27
2010.08.27
Госдума отказалась включать транспортный налог в стоимость топлив