Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.067 c
15-1266505948
tesseract
2010-02-18 18:12
2010.08.27
torrents.ru RIP . Кто следующий ?


2-1272385240
skilful
2010-04-27 20:20
2010.08.27
как организовать ввод в edit


6-1216719811
GraySE
2008-07-22 13:43
2010.08.27
TWebBrowser. Доступ к заголовкам.


15-1274775765
bss
2010-05-25 12:22
2010.08.27
D2006, не работает "Find declaration" на DevExpress объектах


2-1271431396
Nikru
2010-04-16 19:23
2010.08.27
WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский