Форум: "Прочее";
Текущий архив: 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