Javaのコーディングスタイルとは?

このQ&Aのポイント
  • Javaのコーディングスタイルには、BSD/オールマン・スタイルとK&Rスタイルがあります。
  • EclipseではデフォルトでK&Rスタイルが採用されています。
  • コーディングスタイルは個人の好みによって選ぶことができますが、他の人とのコラボレーションを考えると標準のスタイルに合わせることが望ましいです。
回答を見る
  • ベストアンサー

Javaのコーディングスタイル

Javaをつかってみようと思っています。 http://ja.wikipedia.org/wiki/%E5%AD%97%E4%B8%8B%E3%81%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB を確認すると、 >Java は後述の BSD/オールマン・スタイルなどで書かれることが多いが、 とあるのですが、 >K&Rスタイルで書かれたコードも多い。これはサン・マイクロシステムズの当初のスタイルガイド >(java-style.pdfやCodeConventions.pdfを参照)はK&Rスタイルを使っていたためで ともあります。 実際どんなものでしょうか?★ 私は、c/c++・各種スクリプト などで、  BSD/オールマン・スタイル  GNUスタイル を好んで利用していたのですが、Eclipseでは、標準でK&Rになっています。 好みでいいのでしょうけど、他の人にソースを見せた際に、変態扱いされるのは残念なので、大人数にあわせようかと思っています。

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

K&Rの4タブです。うちの会社だと K&R以外はみませんね。 K&Rも昔風の8タブは変態扱いです(^^;

nico60000
質問者

お礼

レスありがとうございます。 ある現場の姿が見えて参考になりました。

関連するQ&A

  • コーディング支援

    C,C++に限らず MicrosoftのVisualstudioのインテリセンスのような コーディング支援機能を搭載したソフトウェアを探しています。 知っているところではEclipseやStyleNoteなどがあります。 国内産でも海外産でもかまいません。 HTML,PHP,C,C++などなどなんでもOKです。 お願いします。 ※インテリセンスとは http://e-words.jp/w/E382A4E383B3E38386E383AAE382BBE383B3E382B9.html

  • javaプログラムについて

    java初心者です。プログラムを改良したいのですが public void init(){ // パネルにコンポーネントを配置 Panel p = new Panel(); p.setLayout( new GridLayout( 2, 4)); this.button1 = new Button("Play"); this.choice = new Choice(); choice.addItem( "0°"); choice.addItem( "30°"); choice.addItem( "60°"); choice.addItem( "90°"); choice.addItem( "120°"); choice.addItem( "150°"); choice.addItem( "180°"); choice.addItem( "210°"); choice.addItem( "240°"); choice.addItem( "270°"); choice.addItem( "300°"); choice.addItem( "330°"); choice.addItem( "350°"); ・・・・・・・・・ public void actionPerformed( ActionEvent ev){ if(this.choice.getSelectedItem().equals("0°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e000a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e000a.dat"; }else if(this.choice.getSelectedItem().equals("30°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e030a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e030a.dat"; }else if(this.choice.getSelectedItem().equals("60°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e060a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e060a.dat"; }else if(this.choice.getSelectedItem().equals("90°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e090a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e090a.dat"; }else if(this.choice.getSelectedItem().equals("180°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e180a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e180a.dat"; }else if(this.choice.getSelectedItem().equals("210°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e210a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e210a.dat"; }else if(this.choice.getSelectedItem().equals("240°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e240a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e240a.dat"; }else if(this.choice.getSelectedItem().equals("270°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e270a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e270a.dat"; }else if(this.choice.getSelectedItem().equals("300°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e300a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e300a.dat"; }else if(this.choice.getSelectedItem().equals("330°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e330a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e330a.dat"; }else if(this.choice.getSelectedItem().equals("350°")){ nameL = "C:/eclipse/workspace/L3/elev0/L0e350a.dat"; nameR = "C:/eclipse/workspace/L3/elev0/R0e350a.dat"; } if( ev.getSource() == this.button1){ byte[] d = this.getByteStream(); this.play(d); } } というプログラムの"nameL","nameR"の呼び出し部分を今チョイス部分にあわせて一つずつ作成しているのですが、"C:/eclipse/workspace/L3/elev0/R0e000a.dat"の"000a.dat"をチョイスで呼び出すたびに変更するプログラムに改良したいと思っています。 どのようにしたらよいか教えていただけないでしょうか。お願いします。

    • ベストアンサー
    • Java
  • JAVAを学ぶための本のおすすめは??

    まだJAVAを学ぶまでには時間があるのですが、 今のうちに調べておきたいと思い質問させていただきます。 C言語ではいわゆるK&R本などを読みました。 個人的にはK&Rのような書きぶりの本がとても好みだったので、 JAVAを学ぶのに、K&R本のような本で学ぼうかなぁと思い、探しています。 JAVAで、C言語のK&R本に対応するのような、おすすめの本はありますでしょうか?場合によっては、全く親しみを感じそうにない、文字ばかりの、教科書のような本でも構いません。 幅広い意見をお願いします。よろしくお願いします。

  • Fedora8のjavaパッケージについて

    いつも参考にさせて頂いています。 Fedora8をインストールし、jdk1.5.0_15をインストールしたのですが、# rpm -aq | grep java でパッケージを確認したところ、下記のように表示されました。 sun-javadb-client-10.3.1-4.1 tzdata-java-2007h-1.fc8 java_cup-0.10-0.k.6jpp.1 java-1.7.0-icedtea-plugin-1.7.0.0-0.19.b21.snapshot.fc8 sun-javadb-common-10.3.1-4.1 sun-javadb-docs-10.3.1-4.1 java-1.5.0-gcj-1.5.0.0-17.fc8 sun-javadb-core-10.3.1-4.1 sun-javadb-javadoc-10.3.1-4.1 java-1.7.0-icedtea-1.7.0.0-0.19.b21.snapshot.fc8 sun-javadb-demo-10.3.1-4.1 # java -version とコマンドすると、 java version "1.7.0" IcedTea Runtime Environment (build 1.7.0-b21) IcedTea Client VM (build 1.7.0-b21, mixed mode) と表示されます。 私はJDK1.5.0_15を使いたいのですが、何かに上書きされている? しかも一体どれが必要で何のためのパッケージなのかよくわからず困っています。 必要のないものはアンインストールしたいのですが… JDK1.5を使用する場合、 「java-1.5.0-gcj-1.5.0.0-17.fc8」 以外は必要ないのでしょうか? どうか宜しくお願いいたします。

  • Javaにてシリアル通信を行っております。

    やりたいことは、 電話がかかってきた際にアロハPC1(ナンバーディスプレイ)から 着信番号を受信して、 番号に該当する会員情報(DBから)をWEB画面に表示したいのです。 SerialDebugというソフトを使って、情報は取得できていると思います。 下記のような感じでいろいろ出てきます。 [TEXT] こ0ア3アイアイク090ア6ア5クキ00 [CHAR] _sp _sp 0 _sp 3 _sp _sp 0 _sp _sp 0 9 0 _sp 5 _sp 9 _sp _sp 5 5 _sp _sp _sp _sp _sp _sp _sp _sp _sp _sp [DEC] 130 177 48 177 51 177 178 48 178 184 48 57 48 177 53 57 57 184 183 53 53 160 160 160 160 160 160 160 160 160 3 [HEX] 82 B1 30 B1 33 B1 B2 30 B2 B8 30 39 30 B1 35 B1 39 B8 B7 35 35 A0 A0 A0 A0 A0 A0 A0 A0 A0 03 この時点で、このわけの分からないデータ(信号?)をどうすれば着信番号になるのかさっぱりです。 [HEX]の " 30 39 30 B1 35 B1 39 B8 B7 35 35 " から 09015198755 というテストに使っている携帯番号が取れるのが分かります。 (ここに書いてある番号は適当です。) とりあえず、このデータはどういう風に解析して正確な着信番号にすればいいのでしょうか? また、これをJavaのRXTXライブラリを使用して取得したいと考えていて、 下記、サンプルソースを真似して実行してみました。 http://www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/samples/samples.zip の中の./src/DumbTerminal.java すると、イベント処理ルーチンのデータの読み込みのときにエラーが発生してしまいます。 java.io.IOException: Underlying input stream returned zero bytes at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) at sun.nio.cs.StreamDecoder.implRead(Unknown Source) at sun.nio.cs.StreamDecoder.read(Unknown Source) at java.io.InputStreamReader.read(Unknown Source) at java.io.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at SerialTest.serialEvent(SerialTest.java:67) at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732) at gnu.io.RXTXPort.eventLoop(Native Method) at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575) こんな感じです。 これは何が原因なのでしょうか? 少ない情報で申し訳ありませんが、 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • JAVAの定番本

    これからJAVAを勉強しようとしている者です。 C言語ならK&R、C++ならStroustrupなどの いわゆる「定番本」がありますが、 JAVAの書籍をネットで探っていても なかなか「定番本」が見当たりません。 自分の探し方が悪いのかもしれませんが、 どうか、ご教授下さい。 よろしくお願い致します。

  • IE7におけるJavaについて

    ネットで調べるとIE7で「ツール」-「インターネットオプション」-「詳細設定」のタブでHTTP1.1設定の次の項目に「Java(Sun)」と次に「Microsoft VM」という項目があるようなのですが私が使っているNEC製Mate MY30V/R-3 Vista Businessに入っているIE7にはその項目がありません。無くてもJavaは入っていてコントロールパネルにはJavaのアイコンもあります Javaを使っていると思われるHP等もちゃんと表示されます(動きます) これは不思議であっても問題ないのですが、知人のPC Sony VAIO Type-C VGN-C51HB Vista Home basicのIE7でJavaを使った画面が表示されないので現在入っているJ2SE Runtime Environment5をアンインストールの後、入れなおしてみても表示されません このJavaは表示されないHPであるFXのパソコン取引の画面を開こうとすると自動的にインストールを促されるもので、Java(Sun)のHPから最新のJava6をインストールしようとすると失敗します Javaのバージョンは最新版よりそのHPを作成しているところからの旧版の方がいいのでしょうか?

  • java データベース接続

    javaの勉強していまして、質問があります。よろしくお願いします。 javaでデータベースの接続ができなくて迷っております。ずっとネットで調べてもダメでした。 ネットで調べたとおりにやっても、 例外発生:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver このようなエラーがでます。 eclipseを使ってます。windows7 練習にアクセスにつなごうと思ってます。 事前にデータソース(ODBC)の登録はしました。 ドライバーとかインストールするものなのでしょうか? package sample; import java.sql.Connection; import java.sql.DriverManager; public class Hello { public static void main(String args[]) { try { //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //各設定 String url = "jdbc:odbc:SampleDB030"; String user = ""; String pass = ""; //データベースに接続 Connection con = DriverManager.getConnection(url,user,pass); System.out.println("接続成功"); //データベースを切断 con.close(); } catch (Exception e) { System.out.println("例外発生:" + e ); } } }

    • ベストアンサー
    • Java
  • Java 起動しません

    「アプリケーションの起動に失敗しました」詳細をクリック すると下記のような表示がJavaコンソールにでます。IEのオプション 「詳細設定」にJavaが現れません。対応を教えて頂ければ幸です。 記 Java Plug-in 1.6.0_17 使用中の JRE のバージョン 1.6.0_17-b04 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\igarashi ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- load: クラス jreCheck.class が見つかりません。 java.lang.ClassNotFoundException: jreCheck.class at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 7 more 例外: java.lang.ClassNotFoundException: jreCheck.class

  • javaについて

    OSXでjavaゲーム作ろうとしているんですが http://javagame.main.jp/index.php?%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%B9%BD%C0%AE のHelloWorld.javaとMainPanel.javaができません ターミナルを開いて public class HelloWorld extends JFrame { public HelloWorld() { // タイトルを設定 setTitle("Hello Worldを表示する"); // メインパネルを作成してフレームに追加 MainPanel panel = new MainPanel(); Container contentPane = getContentPane(); contentPane.add(panel); // パネルサイズに合わせてフレームサイズを自動設定 pack(); } public static void main(String[] args) { HelloWorld frame = new HelloWorld(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } と打ち打ち込み HelloWorld.javaで保存して もう一個もMainPanel.javaをMainPanel.javaのコードをコピーしてペーストして保存して よくわからず同じフォルダにいれて javac Helloworldと打ち込んでもエラーがでます もしかしてEclipseをつかってフレームみたいにしなくてはダメなんでしょうか? よくわかりませんがとりあえず javaでゲーム作りますが何か?でゲームが作れるようになりたいです 応用などきかせて 私はいつも出だしで全部 挫折してしまうのでダメです どなたか詳しい方このHelloWorldが出せるまで教えて下さい

    • ベストアンサー
    • Java

専門家に質問してみよう