15

私は最近、次の方法に出くわしました。私はグーグルを試してみて、次のようにメソッドを定義することによって違いを確認するための例を実行しました。どちらも同じようです。しかし、私はそれが本当に同じであるかどうかを知る必要がありますか?

public abstract void methodName();
abstract public void methodName();

注: publicabstractは、上記の2つの方法で交換されています。

4

6 に答える 6

22

機能に関しては違いはありませんが、どちらを選択しても、一貫性を保つことが最善です。

そうは言っても、私はこれまでabstract public中古品を見たことがほとんどありません。したがって、コーディング標準の観点からpublic abstractは、おそらくより多くの人々によってより簡単に認識されるでしょう。

于 2012-12-04T17:11:47.137 に答える
11

それは同じだ。心配しないで。メソッドの2つの類似した宣言abstract

于 2012-12-04T17:08:47.757 に答える
4

どちらも修飾子であり、任意の順序で使用できます

于 2012-12-04T17:10:42.713 に答える
2
public abstract void methodName();
abstract public void methodName();

これらの2つの方法は同じです同様の例は

public static void main(String args[]);
static public void main(String args[]);

したがって、上記の2つは同じです。私たちがどのように書きたいかは私たちの願いです。

于 2012-12-04T17:38:15.170 に答える
1

両方のコードは同じであり、コードを逆コンパイルすると、コンパイラはそれを同じバイトコードに変換します。ただし、他のキーワードではなくアクセス指定子でコードを開始するのが一般的な方法です(経験則ではありません)。

public abstract void methodName();
abstract public void methodName();

コンパイラは両方のメソッドを以下のコードに変換します

public abstract void methodName();
于 2020-10-05T06:16:28.513 に答える
1

James Gosling et。による本「Java言語仕様、第3版」。al。セクション8.4.3「メソッド修飾子」(214ページ)の状態:「2つ以上のメソッド修飾子がメソッド宣言に表示される場合、必須ではありませんが、本番環境で上記に示されている順序と一致する順序で表示されるのが通例です。 MethodModifierの場合。」

制作は:

MethodModifier:次のいずれか:アノテーションパブリック保護プライベート抽象静的最終同期ネイティブstrictfp。

したがって、はい、正式には、順序は重要ではありませんが、Javaの発明者自身が「パブリックアブストラクト」を好みます。

于 2021-07-21T17:01:26.863 に答える