Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что есть обьект в Perl? Не могу понять 
:(
    Опции темы
korob2001
  Дата 5.5.2003, 03:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Ещё раз всем доброго времени суток!

Пожалуйста помогите понять, что есть обьект в Perl?
Учу Perl самостоятельно, до этого учил JavaScript. В JavaScript в ООП всё было понятно - обьектом могло быть изображение, форма и т.д.
А вот в Perl я не пойму к чему я обращаюсь.

Если вас не затруднит, поясните пожалуйста.
Заранее благодарен,
Денис


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
acp
Дата 5.5.2003, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Странный вопрос... Что конкретно надо?

PM WWW ICQ   Вверх
korob2001
Дата 5.5.2003, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Да, вопрос наверное действительно странный. В книге написано:
=============================================

Объект - это структура данных с некоторым набором режимов поведения. Обычно мы говорим о поведении объекта, как если бы оно осуществлялось им непосредственно, иногда доходя при этом до антропоморфизма. Например, можно услышать, что прямоугольник "умеет" выводить себя на экран, или что он "знает", как рассчитать свою площадь.

=============================================
Дело в том, что я не пойму к чему конкретно я могу обратиться. Пожалуйста если вас не затруднит приведите самый постой пример с коментариями.
Я не могу сдвинуться с места. sad.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 5.5.2003, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Господа, всем большое спасибо. Вопрос снимается.

Полистал ещё пару книг по Perl и понял всё про объекты из обьяснения Стивена Холзнера в "Perl специальный справочник" - действительно мудрая книга. Просто человек объясняет без лишних наворотов и мудрых слов, всё ясно как божий день.

To acp
Теперь я прекрасно понимаю, что мой вопрос был действительно непонятным.

Ещё раз всем спасибо.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
acp
Дата 5.5.2003, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Цитата
Объект - это структура данных с некоторым набором...

Что-то знакомое. Вроде, перевод "Perl programming" на русский smile.gif

Так вот, с тем же прямоугольником.

Сам класс
Код

package TRectangle;

#Конструктор
#
#Вход:
#Координаты прямоугольника
#1 - X1
#2 - Y1
#3 - X2
#4 - Y2
sub New
{
 #Нулевым параметром передаётся имя класса, извлекаем его
 my $Class = shift;
 
 #Создаём объект
 my $Obj =
 {
   'X1' => $-[0],
   'Y1' => $_[1],
   'X2' => $_[2],
   'Y2' => $_[3]
 };
 
 #Связываем объект с именем класса
 bless($Obj, $Class);
 
 #Возвращаем созданный объект
 return($Obj);
}

#Подсчёт площади
sub GetSquare
{
 #Получаем объект
 my $Obj = $_[0];
 
 #Вычисляем, возвращаем...
 return(($Obj->{'X2'} - $Obj->{'X1'}) *
   ($Obj->{'Y2'} - $Obj->{'Y1'}));
}

return(1);


А вот программа, использующая класс
Код

#Подключаем модуль с описанием объектного типа
require 'TRectangle.pl';

#Вызываем конструктор, передаём в него параметры, тем самым
#создавая объект
my $Rect = TRectangle->New(1, 1, 3, 3);
#Вызываем метод объекта, получаем площадь
my $Sq = $Rect->GetSquare();

print($Sq);


Это сообщение отредактировал(а) acp - 5.5.2003, 14:52
PM WWW ICQ   Вверх
acp
Дата 5.5.2003, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Пока я писал, ты сам себе ответил...
PM WWW ICQ   Вверх
korob2001
Дата 5.5.2003, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



To acp
Всё равно большое спасибо. smile.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.