Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2022, 12:12   #1
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию Классы и типы данных

Код:
Сlass Building { 
public int Floors; // number of floors  
public int Area; // total square footage of building  
public int Occupants; // number of occupants
}
Определение класса создает новый тип данных. В этом случае новый тип данных называется Building.
Вы будете использовать это имя для объявления объектов типа Building.
Building house = new Building(); // create an object of type building

Подскажите пожалуйста, какой тип данных создаёт класс Building?

Последний раз редактировалось bITA666; 05.02.2022 в 12:33.
bITA666 вне форума Ответить с цитированием
Старый 05.02.2022, 14:39   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

bITA666
Цитата:
Определение класса создает новый тип данных.
Полагаю, что правильнее сказать - декларирует.

Если просто и с аналогиями.
Класс - это только декларация того, что я хочу.
Это как некоторый закон, по которому мы будем строить новую жизнь.
Как только закон вступает в силу, создаётся новый объект - общество, в котором работают новые правила.

По другому - это чертежи, по которым будут делать деталь.
Чертежи - аналогия класса, а реализация детали - это создание объекта.

Места для размещения данных (создание данных) формируются в процессе создания (объявления) объекта.

Собственно Class и есть новый тип данных, поскольку в этой структуре создаётся "сплав" кода и данных ("Рабочий и колхозница" - есть такой памятник в Москве )
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.02.2022, 14:56   #3
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

Я это понял, что есть чертёж а что есть объект. Я не пойму другого.
Есть тип int - целочисленный.
Есть тип long, short, char........ итд.
А class что за тип? Либо он становиться тоже целочисленный типом так как в объекте есть данные типа int?

Последний раз редактировалось BDA; 06.02.2022 в 07:41.
bITA666 вне форума Ответить с цитированием
Старый 05.02.2022, 16:58   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Цитата:
Либо он становиться тоже целочисленный типом так как в объекте есть данные типа int?
Нет.
Смотрите на это так:
- Есть встроенные типы данных. Это, например, int - целое, float (real) - вещественное, string - строковый.
- Есть пользовательские типы данных. Их много больше. Это такие типы, которые пользователь формирует самостоятельно, используя встроенные типы. Например, массив, список, вектор и т.п.
К пользовательским типам данных надо отнести и функции и классы.
С одной стороны пользователь использует стандартные слова языка, но с другой стороны, он самостоятельно определяет какого типа будет наполнение создаваемой структуры. Будет ли это набор одного типа, как в массиве или это будет разнородный набор, как в списке. Возможно, что в создаваемой структуре будет код - это функция.
Возможно создание и комбинированного типа: код + данные. Этот тип носит имя Class.
В классе - Код - это методы, а данные - это свойства.
В вашем примере дано определение класса, в котором определены только данные.
По этому определению, ниже, компилятор создаёт объект.
Этот объект будет наполнен содержимым класса.
Если бы в классе были определены методы (функции), то они так же принадлежали бы создаваемому объекту.
При создании объекта выполняется несколько сложных операций.
Создаётся код методов, который размещается в памяти, выделенной под задачу, создаётся структура данных, которая размещается в динамической области памяти (в принципе принадлежащей операционной системе), создаются таблицы связей.
Поскольку объектов одного класса может быть много, то для всех объектов одного класса область кода остаётся одна, а вот для данных - они размещаются в своей области (каждый объект имеет свой набор свойств). Связь данных и кода выполняется через таблицы.
Код:
А class что за тип?
У вас не возникает проблем с понятием типа данных?
Одна из задач типизации - выделение в памяти определённой структуры. Другая - построение правильного взаимодействия (числа складываем с числами, числа обрабатываются кодом - функции, ...)
Ещё аналогии.
Вот и представьте себе, что вы купили семечки подсолнуха и мёд.
Перемелите семечки, смешайте с мёдом и добавьте коровье масло.
Семечки, мёд, масло - это исходные типы данных
А полученный продукт - класс. Его нельзя назвать семечками. мёдом или маслом. Для него придумано другое имя (ну не припомню его ).
Как сказать, что класс - это такой тип.
У авто есть колёса, двигатель и ещё много чего. Можно ли авто отнести к классу веществ "пластик"?
Есть класс земноводных и класс млекопитающих.
Какие признаки используются при отнесении неизвестного животного к одному из классов?
Крокодил - это что?
Это тот объект, который создавался в соответствии с описание класса земноводных.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.02.2022, 17:25   #5
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

Крокодил - это что?
Это тот объект, который создавался в соответствии с описание класса земноводных.

Я имею представление о том кто такой крокодайл, что красивые голубые глаза это его свойства. Когда он влияет хвостиком и улыбается это его функция.
Мне приходится узнавать у людей как? и почему? Потому что авторы не удосужились все разложить по полочкам что бы было легко впитывать информацию. Я понимаю но я хочу больше подробностей что бы увидеть картину полностью. Но большая часть книг это как разорванная книга с перемешанными страницами.
bITA666 вне форума Ответить с цитированием
Старый 05.02.2022, 18:39   #6
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Это так. Знания, разбросанные по книгам, которые разорвали и раскидали, получаются только в труде.

Мне уже много лет и программирование не моя профессия.
До всего приходилось доходить самостоятельно, так как в моё время не было Интернета, да и пообщаться было не с кем.
Купил бы книгу, она, по тем временам, стоила не дорого. Но где её достать?

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

Мы создали описание класса "Земноводное", а затем, по этому описанию создали Василису Прекрасную [не мы конечно же, а Кощей Бессмертный - компилятор] (это та, которая стрелу поймала ).

Василиса Прекрасная относится к типу земноводных (лягушкой она была на момент её обнаружения )
Тип объекта, порождённый классом "Земноводное" - это "Земноводное".

PS: Исключительно в целях развития.
А к какому классу следует отнести утконоса? Питается молоком, размножается яйцами, но сложный генный состав - пресмыкающееся, млекопитающее или птица?
Азик Азимов (писатель-фантаст, но и учёный) предположил, что это переходный вид.
Учёные не могут найти переходных форм. А оно вот, рядом

Учёные отнесли его к млекопитающим - но ведь это они [учёные] сотворили класс и думают, что утконос создан по правилам этого класса [тоже мне программисты].
А что по этому поводу думает Природа?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.02.2022, 18:55   #7
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

Я вообще считаю и думаю иначе. Не могу я сидеть ровно когда с потом на лице доказывают что медведь это медведь. Я всегда задаюсь вопросом а как действительно природа назвала то что мы называем медведем? Все что мы называем по факту не является истиной. Я вообще не сторонник учёных которые считают что они умнее других, ведь не один человек не располагает информацией о том как создавалось эта удивительная жизнь. И не факт что когда либо узнаем. Вот такая моя краткая философия.
bITA666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типы данных Asya7 Помощь студентам 22 02.09.2015 16:05
типы данных fygas1991 Общие вопросы C/C++ 3 20.01.2014 15:27
Типы данных С++ werser Помощь студентам 1 13.03.2010 18:34
Типы данных??? Рустам Общие вопросы Delphi 10 08.11.2007 08:03