私の質問は公開後すぐに締め切られることになると思いますが、Java での例に関して明確な違いを求めてサイトを検索していたことをお伝えします。急いで質問を閉じないでください。
私は次のように書いています:
public class Bank {
public String name="XXX Bank";
private int noOfCust;
public int getNoOfCust() {
return getNoOfCusts() + 2;
}
public void setNoOfCust(int noOfCust) {
if(noOfCust > 0)
{
this.noOfCust = noOfCust;
}
}
private int getNoOfCusts()
{
noOfCust = 100;
return noOfCust;
}
}
ここで、「noOfCust は非表示のデータです」。private getNoOfCusts() を導入して実装部分を公開しているのではありません。クラスのすべての詳細をバンドルし、データも隠しているため、これはカプセル化だと思います。
質問 1:この強力なカプセル化の場合は? そうでない場合、どうすれば強くカプセル化されるように改善できますか?
質問 2:抽象化とは、実装を完全に隠すことを意味します。では、私が上で行ったことは抽象化ですか?
上記の説明をインタビュアーに行ったところ、これは正しい意味ではないと言われたため、欲求不満からこの質問を投稿しました。
PS:上記の例で答えてください。リアルタイムの例や仮定は必要ありません。