プログラムを「手続き(命令の羅列)」ではなく、データと処理をセットにした「モノ(オブジェクト)」として組み立てる考え方です。部品を組み合わせるように開発できるため、修正や拡張がしやすくなります。