1

私は実装を見直しJava.lang.Stringました。コンストラクターは私を混乱させます。直接使用できる
理由。 3人の所有物は私的なものです!!!result.value,result.count,result.offset

 /** The value is used for character storage. */
private final char value[];

/** The offset is the first index of the storage that is used. */
private final int offset;

/** The count is the number of characters in the String. */
private final int count;

public String(StringBuilder builder) {
    String result = builder.toString();
    this.value = result.value;
    this.count = result.count;
    this.offset = result.offset;
}
4

3 に答える 3

4

Java メソッドは、それを宣言するクラスの任意のインスタンスのプライベート フィールド値にアクセスできます。それは言語の一部です。

(おそらく、「プライベート」は、Java での「プライベート」とは、実際の生活と同じことを意味すると考えているかもしれませんが、そうではありません。Java アクセス修飾子は、主にデータのプライバシーやセキュリティを維持するためのメカニズムではありません。アクセス修飾子の主な目的は何ですか?抽象化の境界を維持しています。つまり、あるクラスが別のクラスの内部実装の詳細に依存するのを防ぎます。)

于 2013-03-29T03:24:58.057 に答える
1

result.value,result.count,result.offsetパラメータから来るbuilder

于 2013-03-29T03:24:55.063 に答える
0

プライベート アクセス修飾子

private と宣言されたメソッド、変数、およびコンストラクターは、宣言されたクラス自体の内部、つまりそのすべてのメンバーからのみアクセスできます。プライベート アクセス修飾子は、最も制限の厳しいアクセス レベルです。クラスとインターフェイスをプライベートにすることはできません。プライベートとして宣言された変数は、そのクラスのプライベート エンティティを取得できるクラスにパブリック メソッドが存在する場合、クラスの外部からアクセスできます。

于 2013-03-29T03:40:18.003 に答える