Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу вопрос по ооп
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Саркис Саркис вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 18.05.2011
Question вопрос по ооп - 12.08.2011, 12:03

Посветите пож новичку в ооп.
Если создаеться новый обьект, то создаются новый набор данных.
А что с методами?
С каждым новым обьектом создаеться копия метода в памяти или метод один?
тогда для чего static?
Ответить с цитированием
  (#2 (permalink)) Старый
leshatrance leshatrance вне форума
Member
 
Сообщений: 39
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.03.2011
По умолчанию 12.08.2011, 13:22

с каждым новым объектом, создается копия метода (если так можно сказать). Если же метод помечен как static, то в этом множестве обьектов, будет использоваться один(помеченный как Static) метод (такое иногда бывает очень полезно).
Да и к чему этот вопрос? Метод ведь не несет в себе данные?
Ответить с цитированием
  (#3 (permalink)) Старый
Саркис Саркис вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 18.05.2011
По умолчанию 12.08.2011, 13:46

Если метод не несет что то новое, тогда для чего эти копии методов?
Если во всех обьектах используеться один и тот же код?
Одной копии было бы достаточно тогда все методы могли быть static .
Если к примеру у меня 1000 обьектов то в памяти будет 1000 раз копировано один и тот же код?
что то не понятно.
Ответить с цитированием
  (#4 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 12.08.2011, 14:21

Метод всегда один, и он расположен в области кода.
Разница в том, что в нестатик методы можно вызывать только для объекта класса и в методе доступен указатель this, а в статики - создание объекта класса не требуется, но в нём можно выполнять только какие-то общие действия для всего класса.
Ответить с цитированием
  (#5 (permalink)) Старый
Саркис Саркис вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 18.05.2011
По умолчанию 12.08.2011, 15:09

спс
Теперь более-менее понятно хотя сново не все ясно.
Зачем нужен указатель this ?Ведь обьект имеет название.
И опять не понятно разделение методов на static и не static.
Можете описать ситуацию, где static метод не мог бы справиться
(если бы разрешалось для обьекта использовать static метод) и небходим не static метод.
Или я что то не до понимаю?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 12.08.2011, 15:52

Как метод располагается в памяти решает компилятор.. Может он и создает только 1 экземпляр реализации и подгоняет туда данные разных классов,а может для каждой реализации класса размещает методы в своей виртуальной таблице... Нам фактически это ни к чему, за исключением когда активно используются dll
Ответить с цитированием
  (#7 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 12.08.2011, 16:21

Цитата:
Сообщение от Саркис Посмотреть сообщение
Теперь более-менее понятно хотя сново не все ясно.
А если учебник почитать?
Ответить с цитированием
  (#8 (permalink)) Старый
Саркис Саркис вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 18.05.2011
По умолчанию 12.08.2011, 16:37

Учебник я прочитал .
Только в учебниках не бевает ответа на вопрос - почему?
спс за ответы
хотя я не получил ответы на мои вопросы.
Ответить с цитированием
  (#9 (permalink)) Старый
leshatrance leshatrance вне форума
Member
 
Сообщений: 39
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.03.2011
По умолчанию 13.08.2011, 00:55

1) this - например, нужен чтобы обращаться к будущему объекту(который в данный момент еще не создан), this - когда объект будет создан - будет указывать на текущий обьект (обращение через имя класса допускается только в static классах или методах). this - для того, чтобы выделить факт работы с самим объектом, а не с классом.
2) static метод или класс - приведу личный пример:
У тебя множество объектов одного типа(класса), каждый объект живет своей жизнью в отдельном параллельном потоке, эти обьекты время от времени заносят данные в один общий файл, если этот метод не сделать static, то методы из разных объектов будут мешать друг другу работать с файлом - будут выдаваться ошибки.
Другой случай - если метод будет static, если одновременно 2 объекта начнут выполнять этот метод...тем более, например если в них заложен цикл с условием, который неизвестно когда закончиться. Получается, остальные объекты, чтобы получить доступ к static методу, должны будут ждать пока метод не выполниться?
Кароче не заморачивайся, используй методы без static, пока нужда не заставит)))
Ответить с цитированием
  (#10 (permalink)) Старый
Сергей11 Сергей11 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.08.2011
По умолчанию 13.08.2011, 19:24

Использование служб CashExchange SOAP через JSON-шлюз

Проект CashExchange обеспечивает доступ к данным о курсах валют Украины с помощью формата SOAP (реализация Microsoft WCF). Такой формат плохо поддерживается мобильными устройствами. Поэтому для доступа к этим данным с мобильных устройств можно использовать JSON-шлюз (эту вещь придумали и реализовали в библиотеке Index - Vitche Emission PHP Framework). JSON-шлюз преобразует запросы формата Emission Framework REST API в соответствующие вызовы WCF-сервера CashExchange.com.ua - Мы знаем о деньгах все. Также он может работать с любыми другими WCF-серверами.

Таким образом, работа с WCF-серверами CashExchange сводится к вызову обычных REST-ссылок, что можно делать даже вручную.
Метаданные серверов CashExchange
WCF-служба серверов CashExchange находится по адресу:
http://cashexchange.com.ua/Internal/...rvice.svc?wsdl
Работа с SOAP-серверам через JSON-шлюз Emission-Framework

REST-запрос к JSON-шлюзу имеет следующий формат:

http://soap-proxy.emission-framework.com/?HTTPSOAPGatewayWebService/{MethodName}&url={WebServiceURL}&{argument1}={valu e1}&{argument2}={value2}&...
Примеры основных вызовов серверов CashExchange через JSON-шлюз

Получение полного списка валют:

http://soap-proxy.emission-framework...rvice.svc?wsdl

Получение полного списка областей:

http://soap-proxy.emission-framework...rvice.svc?wsdl

Получения списка городов для заданной области:

http://soap-proxy.emission-framework...l&districtid=1

Получения списка обменных пунктов для заданного города и валюты:

http://soap-proxy.emission-framework...0&currencyid=3
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Вопрос. Артём Фирсанов С/С++ 8 19.01.2012 21:49
Вопрос о C++ Артём Фирсанов C++ Builder 16 18.01.2012 17:49
Вопрос по SLI Flastor Разное 2 10.01.2012 23:18
вопрос о бп The22nd Любые вопросы от новичков 3 04.01.2012 20:37
Вопрос по VB Лавр Любые вопросы от новичков 1 03.01.2012 20:25
Вопрос по БП v.seryapov Блоки питания 15 17.12.2011 11:04
Вопрос по HDD les.2007 Любые вопросы от новичков 5 04.12.2011 23:49
Вопрос shinigami17 Видеокарты 1 01.06.2011 15:26
Вопрос по кпк Dram Сотовые телефоны 1 19.12.2008 20:09
Ещё вопрос Krasnoff Pascal 6 24.06.2008 17:15
Вопрос по VB или по VBA madmike Visual Basic 1 20.11.2007 12:32



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов