- PR -

クラス内のメンバーのソート順

1
投稿者投稿内容
cloy
会議室デビュー日: 2004/01/19
投稿数: 16
投稿日時: 2005-11-10 13:22
Eclipseには「メンバーのソート」という機能があって、
メソッドやフィールドをアルファベット順に並べたり、
コンストラクタ、メソッド、フィールドなどのカテゴライズすることができると思います。

このとき、ソート順もカスタマイズ可能で、デフォルトでは
・型
・staticフィールド
・staticイニシャライザー
・staticメソッド
・フィールド
・イニシャライザー
・コンストラクター
・メソッド
となっています。
個人的な「慣れ」でしかないかもしれませんが、
このソート順に違和感を感じてカスタマイズして使っています。

そこで質問なのですが、このソート順は一般的なのでしょうか?
こういったソート順に関するコーディング規約とか慣例とか
参考になる情報がありましたら紹介願います。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-11-10 15:40
Sunが公開しているコーディング標準に以下の記述があります。

http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/CodeConventions.doc2.html#3043
cloy
会議室デビュー日: 2004/01/19
投稿数: 16
投稿日時: 2005-11-10 21:22
返答ありがとうございます。
紹介いただいたURLを確認しました。

・クラス(static)変数 =staticフィールド
・インスタンス変数 =フィールド
・コンストラクタ
・メソッド
となっていますね。

これだと
・型
・staticイニシャライザー
・イニシャライザー
のおき場所はわかりませんでした。
メソッドもstaticメソッドの位置は言及されていませんね。

一般的にはあまりこだわらないものなのでしょうか。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-11-11 00:15
引用:

cloyさんの書き込み (2005-11-10 21:22) より:
・型


ってなんのことですか? クラス/インタフェースの宣言なら書いてありますよね。

引用:

メソッドもstaticメソッドの位置は言及されていませんね。


これに関しては、

引用:

メソッドは,スコープやアクセシビリティ(public,protected,パッケージレベル,private)よりも,機能によってグループ化すべきである. たとえば,private なクラス(static)メソッドが public なインスタンスメソッド2つの間に記述されても構わない. このコーディング規約の目標は,コードを読みやすく理解しやすいものにすることである.


と書いてありますね。
cloy
会議室デビュー日: 2004/01/19
投稿数: 16
投稿日時: 2005-11-11 00:38
引用:

ukさんの書き込み(2005-11-11 00:15)より:
引用:

cloyさんの書き込み (2005-11-10 21:22) より:
・型


ってなんのことですか? クラス/インタフェースの宣言なら書いてありますよね。


ネストクラス(インナークラス)のことです。
※ これもstaticと非staticがあるわけですが、Eclipseのメンバーのソート機能では分類はされないようです。

このネストクラスの置き場所がEclipseのメンバーのソート機能のデフォルトでは先頭に置かれていたことが
一番違和感を感じたことなのです。
個人的には末尾に配置することに慣れているもので。


引用:

引用:

メソッドもstaticメソッドの位置は言及されていませんね。


これに関しては、
引用:

メソッドは,スコープやアクセシビリティ(public,protected,パッケージレベル,private)よりも,機能によってグループ化すべきである. たとえば,private なクラス(static)メソッドが public なインスタンスメソッド2つの間に記述されても構わない. このコーディング規約の目標は,コードを読みやすく理解しやすいものにすることである.


書いてありますね。


そうですね。見落としていました。
ありがとうございます。
cloy
会議室デビュー日: 2004/01/19
投稿数: 16
投稿日時: 2005-11-13 13:00
webを彷徨っていたらこんな規約も見つけました。
http://nekop.programmers.jp/wiki/Java/?CodingStandard

引用:

クラスの内容は以下の順で記述する。

  • static fields
  • static methods
  • instance fields
  • constructors
  • instance methods
  • inner classes

同列のものについては、以下のアクセス修飾子の順に記述する。

  • public
  • protected
  • none (package private)
  • private

アクセス修飾子の順に記述するのではなく、そのメソッドを呼び出しているメソッドの直後に記述することで可読性が向上する場合は、そちらに移動することを検討すること。



ますます混乱してきます。
1

スキルアップ/キャリアアップ(JOB@IT)