Luca_Brasi:
зы: ну взял к примеру класс работы с БД
представь, что у тебя не одна БД, а как минимум две. Вот и делаешь ты два объекта одного класса для доступа к двум разным БД, только вместо того, чтобы писать все время одни и те же наборы функций с разными параметрами, типа _connect(), choose_db() для каждой БД и т.д. ты просто написал две строчки, которые вызывают конструкторы, а на вход этих конструкторов и передал параметры. А ведь класс может обеспечивать работу не только с двумя разными базами данных, а с базами данных на разных СУБД. Если есть класс, который умеет работать со всеми СУБД, то процесс написания ПО упрощается:
нужно знать синтаксис обращения к БД только в рамках методов класса.
Luca_Brasi:
ну точно также можно через обычные функции замутить.
Методы класса предоставляют программеру интерфейс управления данными. Внутри этих методов обычно пишут какие-то механизмы контроля действий программы, которая вызывает эти методы и т.д. достаточно удобно... Плюс увеличивается удобство при переносе кода из проекта в проект.
Работая с классом программист находится на более высшем уровне абстракции, когда он выполняет действия с данными, абсолютно не зная, что внутри класса, а имея только набор средств манипуляции и контроля над этими данными. Т.е. получается, что чтобы программист понял, как работать с классом, ему нужно всего лишь показать, зачем этот класс нужен и описать методы.