human
オブジェクト指向プログラミングとは何ですか？機能的なプログラミングとどのように違いますか？
gpt
オブジェクト指向プログラミング（OOP）は、データとそのデータを操作するコードを含むことができる「オブジェクト」の概念に基づいたプログラミング・パラダイムである。OOPでは、オブジェクトはメッセージを送信してアクションの実行を要求することで、互いに通信する。

関数型プログラミング（FP）は、状態や変更可能なデータの変更を避ける数学的関数に基づくプログラミング・パラダイムである。FPでは、関数は一級市民であり、より大規模で構成可能な抽象化を構築するために使用される。

OOPとFPの主な違いは、状態と変更可能なデータの管理方法である。OOPでは、オブジェクトは状態を維持し、メソッドを通じてそれを変更する。一方、FPでは、関数は状態を変更することなく入力を受け取り、出力を生成する。もうひとつの違いは、OOPはオブジェクトとそれを操作するメソッドに重点を置くのに対し、FPは問題を解決するための関数の構成に重点を置くことである。
human
OOPを実装するコードの例を教えてください