抽象化とカプセル化について議論している他の投稿を読んだことがありますが、それらを理解しているとは確信が持てません。または、理解はしているが、内容の明確さに不満を感じているかもしれません。抽象化とカプセル化に関する私の理解は次のとおりです。それらはどのような点で正確/不正確/完全/不完全ですか?
「抽象化は、プリミティブ データ型が不十分な場合に言語を拡張するためにプログラマーによって作成されたデータ型です。プリミティブ データ型と同様に、抽象化には、必要な入力とそれらが返す出力をリストする仕様がありますが、仕様はメソッドでプログラマーを圧倒しません。関数、および入力の操作に使用される変数。クラスは抽象化の一例です。API は抽象化の別の例です。」
「カプセル化とは、抽象データ型 (つまり、クラス) を互いに分離した状態であり、メソッド、関数、および変数が互いに競合しないようにするため、プログラマーは他のプログラムで既存のクラスを簡単に再利用できます。そのため、プログラムの残りの部分に干渉します (プログラマーが必要な入力を正しく提供し、返されるデータを正しく処理すると仮定します)。」