Главная страница
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]

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



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

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

Наверх




Память: 0.56 MB
Время: 0.051 c
2-1268194263
Б
2010-03-10 07:11
2010.08.27
Forward объявление класса.


15-1267881499
test
2010-03-06 16:18
2010.08.27
у подвыпившего сисадмина


15-1265063407
Юрий
2010-02-02 01:30
2010.08.27
С днем рождения ! 2 февраля 2010 вторник


2-1266564186
oleg1963lora
2010-02-19 10:23
2010.08.27
Как маскировать исключение EDatabaseError?


15-1269807638
{Vanek}
2010-03-29 00:20
2010.08.27
Датчик