フィールドに格納されているデータの処理方法が異なると問題が発生することがよくあります。したら、クラスのドキュメントを詳しく調べていない人もいるかもしれません。すべてのケースが説明されているわけではないのかもしれません。その結果、オブジェクトの内部データが「破損」し、オブジェクトが無効になる状況が頻繁に発生します。フィールドをプライベートにするのが通例です。クラスのメソッドのみがクラスの変数を変更できます。他のクラスのメソッドは変数に直接アクセスできません。つのメソッドをクラスに追加する必要があります。フィールドの値を直接変更できません。フィールドの値を取得する必要がある場合は、オブジェクトのメソッドを呼び出す必要がありますPerson。一部のコードで名前フィールドの値を変更したい場合は、オブジェクトのメソッドを呼び出す必要がありますPerson。このgetName()メソッドは「名前フィールドのゲッター」とも呼ばれ、メソッドは「名前フィールドのセッターsetName()」とも呼ばれます。これは非常に一般的なアプローチです。クラス内にパブリック変数が存在することはありません。され、各変数にはパブリックのゲッターとセッターが含まれます。このアプローチではコードが長くなりますが、信頼性は高くなります。クラス変数に直接アクセスすることは、黄色の二重線を通過して車の向きを変えるようなものです。そのほうが簡単で早いですが、全員がそれを行うと、全員にとって状況が悪化します。)を記述するクラスを作成するとしますy。初心者プログラマーがそれを行う方法は次のとおりです。プログラマーが行う方法は次のとおりです。}}コードが長くなりましたか?間違いなく。パラメーターの検証をゲッターとセッターに追加することはできます。それらは永遠に存在するわけではありません。それにはメモリが足りません。多くのプログラミング言語には、deleteオブジェクトを削除するための特別な演算子があります。すべての配置が少し異なります。削除演算子がありません。いや、もちろん削除されますよ。アプリケーションはすぐにメモリ不足になり、プログラムが何か月も中断せずに実行されるという話は成り立ちません。オブジェクトの削除は完全に自動化されています。マシン自体がオブジェクトの削除を処理します。コレクターは、すべてのオブジェクトを「到達可能」と「到達不能」に分割します。ある場合、そのオブジェクトは到達可能であるとみなされます。オブジェクトを参照する変数がない場合、そのオブジェクトは到達不能とみなされ、ガベージとして宣言されます。これは、オブジェクトを削除できることを意味します。既存のオブジェクトへの参照を作成することはできません。存在する参照を割り当てることのみが可能です。オブジェクトへの参照をすべて消去すると、そのオブジェクトは永久に失われます。単純な反例に遭遇するまでは、このロジックは素晴らしく聞こえます。つのオブジェクトがあるとします。他のオブジェクトは、これらのオブジェクトへの参照を保存しません。これらのオブジェクトはコードからアクセスできませんが、引き続き参照されます。コレクターがオブジェクトを「参照される」と「参照されない」ではなく、到達可能なものと到達できないものに分割する理由です。生存しているオブジェクトが到達可能リストに追加されます。次に、到達可能なオブジェクトのリストが拡張され、到達可能なオブジェクトの最初のセットによって参照されるオブジェクトが含まれます。次に、この拡張されたセットによって参照されるオブジェクトが含まれるように再度拡張されます。相互に参照するだけのオブジェクトがいくつかあるが、到達可能なオブジェクトからそれらに到達する方法がない場合、それらのオブジェクトはガベージとみなされ、削除されます。つの重要な点は、メモリの断片化です。オブジェクトを頻繁に作成および削除すると、すぐにメモリが大幅に断片化され、占有されているメモリ領域と占有されていないメモリ領域が点在するようになります。作成できない状況に簡単に陥ります。言い換えれば、空きメモリはたとえ大量であっても存在する可能性がありますが、空きメモリの大きな連続ブロックが存在しない可能性があります。マシンは、この問題を特定の方法で解決します。つの部分に分かれています。メモリの穴をクリーンアップする段階になると、前半のすべてのオブジェクトが後半にコピーされます。穴がないように隣同士にコピーされます。プロセスは大まかに次のようになります。オブジェクトの作成後ステップ2:「穴」の出現ステップ3:「穴」をなくすそのため、オブジェクトを削除する必要はありません。マシンは、到達可能なすべてのオブジェクトを新しい場所にコピーするだけで、オブジェクトが格納されていたメモリ領域全体を解放します。マスターできる完璧な方法です。基本的な理論のうち重要な範囲が紹介されています。ディベロッパーのキャリアなど、モチベーションアップにつながる要素を数多く取り入れています。