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

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


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

Наверх




Память: 0.57 MB
Время: 0.069 c
15-1267312427
Когда-то_был_тут
2010-02-28 02:13
2010.08.27
Напомните писателя


15-1265198569
Андрей Прокопенко
2010-02-03 15:02
2010.08.27
"Немыслимое что-то..."


15-1273125258
oxothuk
2010-05-06 09:54
2010.08.27
Точки останова


2-1274176208
Petr
2010-05-18 13:50
2010.08.27
Работа с ADO


8-1204709161
IGray
2008-03-05 12:26
2010.08.27
Как создать объект DirectDraw на втором мониторе?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский