• ベストアンサー

命名規約について

略称を用いるときの変数名、クラス名の付け方ですが 推奨されている付け方はありますでしょうか。 例えば以下の場合だとどちらになりますか? (1)略称であっても単語区切りなので小文字 class TestDao TestDao testDao = new TestDao() (2)略称なので、大文字 claas TestDAO TestDao testDAO = new TestDAO() (2)の場合だと、例えばIDを処理するDAOを作ると class IDDAO ・・・っておかしいですよね。 なので class IdDaoだと思うのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

Sun のコーディング規約では特に言及されていないようですね。 http://numata.designed.jp/javacodeconv/CodeConventions.doc8.html Javaスタイルブックでは、「頭字語は、先頭文字だけを大文字にする」となっていますね。 “HogeDao”,“Xml”,“Html”のようにする様に推奨しています。 http://www.amazon.co.jp/dp/4798119202 ご指摘のように、全て大文字にすると単語区切りが分からなくなる事が理由のようです。

rararat
質問者

お礼

なるほど、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB2008でのクラスや変数などの命名について。今VB6で作成したプロ

    VB2008でのクラスや変数などの命名について。今VB6で作成したプログラムをVB2008に移植中なのですが、名前の付け方で悩んでいます。 VB6のときはハンガリアン記法が推奨されており、クラス名は頭にclsをつけてclsHogeとかやっていたわけですが、VB2008ではそのような記法はもう主流でないと聞きましたので、clsを取っ払い始めたのですが、やっていくうちにそのクラス名が変数名やプロパティ名とぶつかっていることに気付きました。 Javaだとクラス名は大文字で始め、変数名や関数などは小文字で始める規則になっており、大文字小文字を区別する仕様なので問題ないと思いますが、VBでは区別ないので適用不可です。  VBにお勧めの命名規則はありますか?

  • classファイルの取り扱い方

    クラスファイルをnewをしてから関数を呼び出す場合と クラス名::関数名で呼び出す場合だとパフォーマンスやメモリの負担などの違いは在りますでしょうか? また、独自のpublic function関数のみのファイル(lib.php)をclassで囲ってあるのですが、 実際はincludeして扱うので、classで囲わなくても問題はないと思うのですが、どこのクラスにあるのかという目安として囲っています。 上記のファイル関数を呼び出す場合に 1.newをしてから$クラス変数->関数名(); 2.それともクラス名::関数名(); 3.そもそもclassで囲わないで、関数名();のみ コーディングルールがないのでどれが一般的なのかが分かりません。 教えて下さい。

    • ベストアンサー
    • PHP
  • トリガープロシージャのNEW変数について

    トリガを実行したときに、処理部分のfunctionで更新されたデータの値を取得したいと考えております。 NEW変数を使い、 NEW.[フィールド名]とすれば取得できるのは知っているのですが、 この[フィールド名]にfunction内で取得した項目名を指定するにはどうしたら良いのでしょうか? 仮に取得したいフィールド名が「sample_id」だった場合、 functionの中でNEW.sample_idとすれば取得できます。 が、今回考えていたのは以下のような処理の場合です。 記述イメージなので間違っているかもしれませんが、、、 begin for rec in SELECT att.attname         FROM pg_attribute as att         INNER JOIN pg_class as class ON class.oid = att.attrelid         WHERE att.attnum > 0         AND class.relname='テーブル名'         ORDER BY att.attnum  loop  insert into 'テーブル名2' values(NEW.rec.attname); loop end end; ループでテーブル内の項目を取得し、取得した項目の値をテーブル名に入れるという処理です。 rec.attnameには「sample_id」と入っていたので、NEW.rec.sample_idとしたのですが、 実行したときにエラーになり、どうしてもinsertできません。 どうにかして、sample_idの値をinsertしたいのですがわかりません。 ご教授お願い致します。

  • 違うクラスからの変数の共有化

    一つのクラスの中にある変数の値を、二つの別なクラスから呼び出して、その二つのクラスのどちらから変数を参照しても同じ値が帰ってくるようにしたいのですが、いろいろ調べてもできなかったので質問させていただきますm(_ _)m // 共有化させたい変数を持つクラス // Var.java public class Var{  public static int i;  public Var(int i){ this.i = i; }  public Var(){}  public static void getI(){   return i;  } } //クラス1 //Class1.java public class Class1{  Var var = new Var(1); } //クラス2 //Class2.java public class Class2{  Var var = new Var();  System.out.println(var.getI()); } とした場合、Class1を実行し、次にClass2を実行すると、クラス1で定義した変数の値である 1 が戻ってくるようにしたいのですが、上記の方法では、Class2を実行すると結果は 0 になってしまいました。 まだまだ習い始めたばかりでいまいちstaticを使い切れていないと思います・・・ たとえば、PrintStreamクラスの public static final PrintStream out というのはどこから参照しても同じ結果なのでそのようなやり方で大丈夫だろうと思ったのですが・・・ このような方法では共有化させることはできないのでしょうか?またできないのでしたらほかのやり方がもしあった場合は教えていただきたいと思います。 どうかお願いします。

    • ベストアンサー
    • Java
  • Ruby 特異メソッドのnewが先に実行?

    Rubyのインスタンス生成について質問があります。 通常クラスを定義する場合は class Hoge ; def hello(); pirnt "hello"; end であると思います。 ただ Hoge = Class.new(); でもクラスは定義できるとききました。 ただこの場合Hogeクラスに定義できるのは HogeというClassクラスから作られた特異クラスとしてのHogeに 特異メソッドのみを定義できるということですよね? 通常のインスタンスメソッドは定義できませんよね? ではでは、 hoge = Class.new(); とした場合はどうなるのでしょうか? この場合は Classクラスの純粋なインスタンスとなるのでしょうか? 前者の定義とおなじ仕方ですが代入先が、通常の変数です。 この場合は、クラスオブジェクトとして生成されるのですか? オンラインマニュアルをみたところ 「新しく名前の付いていない superclass のサブクラスを生成します。 superclass が省略された時にはObject のサブクラスを生成します。 名前のないクラスは、最初に名前を求める際に代入されている定数名を検索し、見つかった定数名をクラス名とします。」 とあります。 上記内容は Classクラスの特異クラスとして定義されている特異メソッド(new)です。 これは Class.new()で作られたインスタンスを代入する先が定数であればその定数名と同じクラスを定義しつつそのClassクラスのクラスオブジェクトを生成するという意味合いでまちがいないでしょうか? 上記のとおりであれば hoge =Class.new()の場合は、やはりhogeというクラスを定義することになるのでしょうか? クラス定義は定数でなければならないはずですよね。 ただ実際、 p hoge;として出力すると#とひょうじされています。これはhogeがクラスオブジェクトではなく ただのインスタンスであるということでしょうか? であるならばこの hoge = Class.new()の式のnewはClassクラスオブジェクトに定義された特異メソッドではなく Classクラスに定義されたnewメソッド・・・・・つまりClassクラスに定義されたインスタンスメソッドの方のnewメソッドだとおもうのですが・・・・・・。 つまりこちらのメソッドですね。 「new( ... ) クラスのインスタンスを生成して返します。このメソッドの引数はブロック引数も含め initialize に渡されます。」 ※オンラインリファレンスから参照しました。 しかし 通常メソッドの検索は特異メソッドからはじまりその後クラスのインスタンスメソッド->親クラスのメソッドと 検索して行くとあります。 必ず先に、特異メソッドを実行しているはずだと思うのですが・・・。 やはり特異メソッドnewを実行しているのでしょうか? 長々すみませんが、ご教授ください。

    • ベストアンサー
    • Ruby
  • マルチスレッド下でのインスタンス変数・クラス変数

    よろしくお願いします。  マルチスレッド下で動作するクラスを作成しています。データにアクセスするためのオブジェクトを クラスのフィールド値として保持し、使い回しを行いたいと考えています。このデータアクセスオブジェクト(以下Dao)内では特にフィールドは使用せず、全てローカル変数のみで動作するようになっています。Dao自体は初回のクラス生成時にstatic処理にてフィールドにセットされます。  このDaoを保持するフィールドは、staticなクラス変数が良いのか、インスタンス変数として保持する方が良いのか迷っております。  クラス変数ならばPermanent領域をオブジェクト1つ分のメモリ使用で済み、インスタンス変数だとスレッド毎にheapを使い、処理数が増えるとメモリ圧迫しちゃう?と安易に考えてしまったりしています。  ご意見・ご助言よろしくお願い致します。

    • ベストアンサー
    • Java
  • 変数の命名

    すみません...教えていただきたいのですが、 どんな言語でも良いのですが、(私は現在、vb2005とobjective-cを使用しています。) アクセッサ内などで同じものについての変数の命名にいつも悩んでしまいます。 皆さんは、外に見えない変数名には記号的な文字列を使っていますか? どんな感じで命名していますか? よろしくお願いします。 苦労してこんな感じでつけています。 Protected identifier As String Public Property nodeID() As String Get Return identifier End Get Set(ByVal id As String) identifier = id End Set End Property

  • アロー演算子について

    php素人です アロー演算子についてわかりやすく教えてください クラスとか使ったことありませんのでアロー演算子をみるとパソコンの前から逃げ出したくなります 質問1 アロー演算子を使うときはクラス内の変数などにアクセスするときだけですか?(普通はclassを使わない場合、アロー演算子は使わないのですか?) 質問2 他のファイルから呼び出す場合はrequire_onceなどをつかってからアロー演算子でよびだすのですか? 質問3 PDOもrequire_onceなどで呼び出してからつかってるのですか? 質問4 下記のようにclassを定義する前にnewでオブジェクトを出現させても大丈夫なんですか? 質問5 アロー演算子とはクラスから変数や関数を使うためのものですか?下記の場合、 $hoge変数にclass numberdayoの処理が詰まっているってことでしょうか? $hoge = new numberdayo(); $hoge ->number = 2; $hoge ->numberdayo(); class numberdayo{ public $number; function numberdayo(){ print($this -> number); } } 質問6 別の質問ですが、classをつかってない単なる関数functionは定義する前に呼び出せますか? hoge(); function hoge(){ print("関数"); } よろしくお願いします

    • ベストアンサー
    • PHP
  • static変数を持ったクラスを継承した複数のクラスで、独立してその変

    static変数を持ったクラスを継承した複数のクラスで、独立してその変数を使いたい。 例えば、 class AbstractStatic{ public static String str; } class Ex1 extends AbstractStatic{} class Ex2 extends AbstractStatic{} というクラスがあったとして、 Ex1 e1 = new Ex1(); ex1.str = "hoge"; といれると、 ex2.str で、hogeが入ってしまいます。同じようなstatic変数を持つクラスを複数作りたいのですが、継承させると、独立して変数を持たせられません。 同じようなクラスに直接static変数を、記述するしかないのでしょうか?

    • ベストアンサー
    • Java
  • Servlet上でのClass#forName()について

    こんにちは。三田と申します。 Class#forName()で取得したClassオブジェクトが、Servlet上とそうでない場合で結果が違っていました。 実際、行っている処理は、あるクラスのClassオブジェクトをClass#forName()で取得して、次にそのクラスのインスタンスを生成して、Class#isInstance()をしているだけです。 上記の処理を行った場合に、Servlet上ではfalseで そうでない場合は、trueになるのです。 デバックしてみたところ、インスタンスを生成したときにServlet上では、Classオブジェクトの変数に値が入っていないのに対し、Servletを使用しない場合は、Classオブジェクトの変数に値が入っていました。 その違いは発見したのですが、なぜそうなるのかがわかりません。理由を知っている方がいらっしゃいましたら、ぜひご教授をお願いします。 以上、よろしくお願いします。

このQ&Aのポイント
  • 購入したDVDドライブを職場のパソコンで利用したい場合、USB接続を使用することができますか?また、付属のソフトを必ずインストールする必要があるのでしょうか?
  • DVDドライブを購入しようと考えていますが、職場のパソコンにソフトをインストールすることができないため、USB接続で利用できるか知りたいです。
  • エレコム株式会社のDVDドライブで、職場のパソコンで使うためにはUSB接続が必要ですか?また、ソフトのインストールは必須なのでしょうか?
回答を見る