0

そのクラスのオブジェクトを作成せずに、パッケージ内のすべてのクラスからメソッドにアクセスするにはどうすればよいですか。

メインクラス

public class mainclass
{
public void methodOne()
{
subclass obj = new subclass();
System.out.println("Height and Width" + obj.width()+" "+obj.height());
}
}

私の2番目のクラス

public class subclass
{
public int width()
{
return (int)windowWidth;
}

public int height()
{
return (int)windowHeight;
}
}

サブクラスのオブジェクトを作成せずに width() と height() を呼び出すことは可能ですか?

4

4 に答える 4

2

いや、簡潔に言えば。何かを変更せずにこれらのメソッドを呼び出す方法はありません。

メソッドstaticにマークを付けると、オブジェクトを作成せずに呼び出すことができます。ただし、windowWidthインスタンスwindowHeightメンバーである場合は、それらにアクセスできないため、メソッド自体のコードはコンパイルされません。そうすれば、それらはもはや同じ方法ではなくなるでしょう、明らかに-それで答えはまだ、本当に、いいえです。

于 2012-04-10T04:07:46.283 に答える
1

いいえ。非静的メソッドの場合、それらを呼び出すためのインスタンスが必要です。

于 2012-04-10T04:07:33.843 に答える
1

そのメソッドを呼び出すには、オブジェクトのインスタンスを作成する必要があります。メソッドが呼び出し元のオブジェクトにない限り。

編集

上記は、非静的メソッドにのみ当てはまります。一方、静的メソッドは、クラスレベルでアクセスでき、アクセスする必要があります(つまり、インスタンスは必要ありません)。

于 2012-04-10T04:07:49.693 に答える
1

特定のクラスのインスタンスを作成せずにメソッドを使用する場合は、そのメソッドを静的として宣言する必要があります

于 2012-04-10T04:10:45.337 に答える