> 1 <

Автор Сообщение

gambit_d.s

Members


Статус

13 сообщений

Где: Russia
Род занятий:
Возраст:

#5460   2012-01-06 19:24 GMT+3 часа(ов)      
Помогите, пожалуйста!!!

Не могу разобраться с классами, нужно сделать следующее:

1.Построить класс
Фильм (со свойствами):
название фильма,
длительность (кол-во мин),
жанр.
Реализовать следующие методы класса:
вернуть жанр фильма,
вернуть длительность фильма,
показать всю информацию о фильме.

Построить двух наследников данного класса.
1.Художественный фильм (со своим атрибутом):
Фамилия режиссёра фильма
методами:
вернуть фамилию режиссера,
показать всю информацию о художественном фильме (произвести замещение данного метода с учетом нового атрибута).
В классе Художественный фильм создать специальный закрытый атрибут (и метод печатающий значение данного атрибута), значение которого отражает количество объектов класса Художественный фильм функционирующих в программе.


2.Класс
Документальный фильм (со своим атрибутом):
возрастная категория.
Выполнить замещение метода печатающие все свойства фильма, с учетом нового атрибута.



Прочитал в одной книжке, но понял мало.
Вот, что я сделал:

(defclass Films ()
(
(name_film
:initarg :name_film
:initform (error: "Ne ykazano name_film")
)
(dlitel_film
:initarg :dlitel_film
:initform 0
)
(janr_film
:initarg :janr_film
:initform (error: "Ne ykazan janr_film")
)
)
)

(defclass Hydog_film (Film)
(
(fam_re_film
:initarg :fam_re_film
:initform (error: "Ne ykazano familia regisera filma")
)
)
)
(defclass Dokym_film (Film)
(
(vozrast
:initarg :vozrast
:initform (error: "Ne ykazano vozrast")
)
)
)


Подскажите правильно или нат?

p.s Буду рад любой помощи по заданию

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#5472   2012-01-09 02:52 GMT+3 часа(ов)      
(defclass Film ()
(
(name
:initarg :name
:reader film-name)
(duration
:initarg :duration
:reader film-duration)
(genre
:initarg :genre
:reader film-genre)
(counter
:initarg :counter
:reader get-counter
:writer set-counter
:allocation :class
:initform 0))
(:documentation "Moovie"))
 
(defgeneric get-name (film)
(:documentation "get film name"))
 
(defmethod get-name ((f film))
(film-name f))
 
(defclass Art-Film (film)
(
(director
:initarg :director
:reader film-director)
(counter
:initform (incf (slot-value (make-instance 'film) 'counter)))))
 
(defun get-num-of-instances ()
(get-counter (make-instance 'film)))
 
(defgeneric get-full-info (film)
(:documentation "get full info"))
 
(defmethod get-full-info ((f Film))
(list
(list :name (film-name f))
(list :duration (film-duration f))
(list :genre (film-genre f))))
 
(defmethod get-full-info ((f Art-Film))
(cons
(list :director (film-director f))
(call-next-method)))

отредактировал(а) megamanx: 2012-01-10 00:59 GMT+3 часа(ов)
I wish I'd made you angry earlier

gambit_d.s

Members


Статус

13 сообщений

Где: Russia
Род занятий:
Возраст:

#5504   2012-01-13 00:13 GMT+3 часа(ов)      
Спасибо, по разбираюсь!!!
> 1 <


Онлайн :

0 пользователь(ей), 37 гость(ей) :