ZZZ
Ноя. 17, 2010 14:56:49
helm2004
представь что класс - это куб.
Куб не может быть классом. Может быть объект класса куб. Класс, это лишь описание свойств объекта.
P.S. Это верно, если не знать про метаклассы: там описание куба может быть записанно хоть на листе Мёбиуса…
Alex2ndr
Ноя. 17, 2010 15:13:12
ZZZ
Куб не может быть классом. Может быть объект класса куб. Класс, это лишь описание свойств объекта.
Класс - это чертеж куба с описанием материалов из которых этот куб будет сделан. :) Плюс описание всех действий, которые можно будет сделать с этим кубом(кинуть, ударить молотком и тд). Этакое техническое задание на игрушку “Куб”. А сам куб - экземпляр класса.
ZigertoN
Ноя. 17, 2010 15:14:24
всем спс =) пишем еще …
helm2004
Ноя. 17, 2010 16:26:28
Мой пример, конечно, нельзя назвать не только не идеальным но и нормальным тоже. Просто я дал такой пример чтобы человек разобрался что у программистов тоже есть фантазия:) .Своя, ООПешная.
ZigertoN
Ноя. 17, 2010 19:03:00
Например:
класс “Человек” - артибутами для этого класа будут являтся ФИО, возразст, пол
подкласс “студент” - атрибуты: курс, факультут
все что относится к человеку так же относится к студенту. у студента будет атрибуты : ФИО, возразст, пол, курс, факультут
а методами для этик классов что будет являтся? как я понял метод это то что можно зделать с обьектами класса(подкласса)
А теперь к моему заданию…
это методы? Open, Close, Seek, Read, Write, GetPosition и GetLength. ( подскажите что должны выполнять эти методы: GetPosition и GetLength)
Будущая моя программа должна создавать текстовый файл с описанием обьекта класса и выполнять все методы… я правально понял?
ps. по поводу инкапсуляции нашел вот такую штуку
Инкапсуляция: можно скрыть ненужные внутренние подробности работы объекта от окружающего мира. Это второй основной принцип абстракции. Он основан на использовании атрибутов внутри класса. Атрибуты могут иметь различные состояния в промежутках между вызовами методов класса, вследствие чего сам объект данного класса также получает различные состояния — state.
ZZZ
Ноя. 17, 2010 20:31:19
Alex2ndr
Плюс описание всех действий, которые можно будет сделать с этим кубом(кинуть, ударить молотком и тд).
А вот это совсем неверно.
У него будет набор физических аттрибутов, которые могут изменяться от каких-либо воздействий. Т.е. будет функция (или метод объекта класса “человек”) “ударить молотком”. В качестве параметра передаём злополучный куб и… БАЦ! Высота у куба стала меньше, а ширина больше. И кубу пофиг, ударили его молотком, переехали катком или опустили в серную кислоту, так он вообще не знает, что это такое. Тупой он. Просто куб.
Андрей Светлов
Ноя. 17, 2010 22:25:53
ZigertoN
GetPosition - место, куда писать-читать. Меняется по Read, Write, Seek.
GetLenght - длина файла.
Программа должна состоять из класса, реализующего нужные методы.
И (бить за такое) - некое меню, позволяющее с файлом поработать.
Надо бы ставить такие задания чтобы интерфейс был просто command line.
О производном классе будете думать после того, как сделаете базовый.
Андрей Светлов
Ноя. 17, 2010 22:28:52
Ребята, если хотите поговорить о большой теории - создайте тему.
У меня, конечно, тоже найдется пять копеек.
Например, взаимодействие куба и человека вообще то говоря естественно описывается мультиметодами.
Готов обсудить - но не здесь
ZigertoN
Ноя. 18, 2010 13:26:36
Народ, если у кова есть примеры создания классов и его описание выложите плз с пояснениями… до меня чето не доходит как класс описывать…
———————————————————————————————-
как я понял у меня обьектом класса будет файл …
python4ik
Ноя. 18, 2010 20:39:20
ZigertoN , я когда начинал изучать ООП , то не знал вообще, что такое Регистры процессора, аж пугало это слово регистры :) .
Но тем не менее, поломав немного голову над чужими примерами, и прочитав пару раз раздел про ООП , по немногу начал вникать.
У Лутца отлично всё расписанно! про классы. Что тебе не понятно? self - это подразумеваемый будующий обьект (экз-ляр класса).
Тем более что я тебе уже привёл пример! func(self) с помощью этого self ты будеш потом вызывать этот метод ekz.func()