>>66

どなたかが、この質問とか、オブジェクト指向の目的について、正しいって多くの賛同を得られなくても、なんらかの回答を書き込むと思って待っていたけど、全然まともな回答が出てこない。
また、無駄な例題を出したり、すでに解決済みのコーディングは設計か?実装か?問題を持ち出して、勝手な勝ち負け判定を書き込んでいるだけみたいですね。
そして無限ループが始まる。

とりあえず私が答えてみます。

C++やC#でのプログラミングの経験からすると、すでに作られたクラスというか、ソフトウエア部品を再利用することで、自分でその部分を開発する手間をかけることなく、バグの無いルーチンを手にすることができます。
開発工数、開発期間、開発の手間の減少が目的であり、メリットです。

もちろん、手続き型、構造化プログラミングの思想で作られたソフトウエア部品でも、自分が欲しい処理をやってくれるルーチンが見つかれば、その機能の開発の手間は大幅に減らすことが可能です。
でも、オブジェクト指向で作られていない部品を再利用するとき、データの受け渡しが難しかったり、データスコープの問題で、変数名が衝突したりするので、変数名を直さないといけなかったりします。

でも、C++やC#のように、データと処理を1つのクラスに取りまとめていれば、変数名の衝突を気にせず、再利用が可能となります。

普通に開発すれば、500行とか1000行以上になる処理でも、適切なクラスライブラリが見つかれば、20〜30行くらいでプログラムが完成することも多いものです。
コーディング行数が少ないので、仕様変更への対応も楽ですし、その気になればゼロから作り直すことになっても、数十行であれば、問題ありません。

そして、他人が作ったクラスライブラリと自分たちが作ったクラスライブラリの蓄積が増えれば増えるほど、開発工数、開発期間を小さくすることが可能になります。