オブジェクトを介して静的メソッドで非静的変数を使用していますか?ジャワ

トム:

私たちが使用することはできませんのでthis、静的メソッド内で、我々はまた、非静的変数を使用することはできません、なぜそれが我々が静的メソッド内の非静的変数を使用するオブジェクトを、使用することができるということですか?

ここで私が何を意味するかです:

public int x;
public int y;

public Account(int a, int b) {
    this.x = a;
    this.y = b;
}

public static void Swap(Account acc) {
    int holder;
    holder = acc.x;
    acc.x = acc.y;
    acc.y = holder;
}

だから、Swap()オブジェクトの内部変数が静的でなくても、動作します。私はこの部分を理解していません。いくつかの助けをお願い申し上げます。TIA!

彼らは次のとおりでした:

static方法は、電流(のアクセスインスタンス変数ではないことはできthisないような場合は、それらのコンテキストに存在しないので、)インスタンス。

あなたがそれらにインスタンスへの参照を渡す場合は、彼らは彼らの目に見えるすべてのインスタンス変数やメソッドにアクセスすることができます。

お使いの場合にはswapその方法がなかった場合たとえば、staticあなたが削除した可能性がacc議論をしてのインスタンス変数を操作しますthis

public void swap() {
    int holder;
    holder = this.x;
    this.x = this.y;
    this.y = holder;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=185069&siteId=1