Java100本ノック

文法など


Javaネーミング


Class


・大文字で始める

・名詞とする

・例 Employee

インターフェース


・大文字で始める

・形容詞とする

・例 Printable

メソッド


・小文字で始める

・動詞とする

・例 print()

変数


・小文字で始め、大文字で区切る

・例 firstName

パッケージ


・小文字とする

・例 java.lang

定数


・すべて大文字とする

・例 MAX_NUMBER

コメント


・1行のコメントは、// 。   // 以降がコメントとなる

 実行されるプログラムの行の後につけてもよい。

 // ここはコメント

・複数行のコメントは、/* で始まり、*/で終わる


  /* コメント
  コメント
     コメント  */


変数の宣言


・型 変数名 ;

 int empno 

変数名の規則


・使えるのは、文字、数字、アンダースコア、ダラー($)

・先頭に数字は、使えない

・予約語でないこと

変数への値の代入


・変数名 =  値 ; 

  empno = 80 ; 

変数の初期化


・型 変数名 = 初期値 ;

  int empno = 80 ;

キャスト


・(変換したい型名) 値など ; 

 int i = (int) 12.3 

・浮動小数点を、整数にキャストすると、切り捨てられる


if文


if (条件式) {

   処理

}

import static 



import static パッケージ名

スタティックなメソッドや、フィールドを

参照したいときに、利用

long l  = Math.round(d)



import static java.lang.Math.round

long l = round(d)

となる




ラムダ式



次のように書くようです。
(int x , int y) -> { return x+y ; } or (int x , int y) -> x+y
こんな意味のようです。
(仮引数) -> { 処理の式(複数あり); } (仮引数) ->処理の式



1.ネーミング



1-1.変数やメソッド名、パッケージ名は、英語を利用する。ローマ字読みは、利用しない

1-2.パッケージ名は、小文字とする

1-3.パッケージ名は、英語で省略しない

1-4.クラス名は、役割を表す名前とする

1-5.クラス名の先頭は、大文字とする

例) Employee

1-6.例外クラスは、クラス名の末尾に「Exception」をつける

1-7.インターフェースを実装するクラスには、「Impl」などをつける

例)EmployeeBeanImpl

1-8.抽象クラスには、クラス名の先頭に「Abstract」をつける

例) AbstractSample

1-9.テストクラスの名前は、対象のクラス名+Testとする

1-10.メソッド名は、動詞ではじめる

例) InsertEmp

1-11.メソッド名の区切りは、大文字にする

1-12.オブジェクトを生成するメソッド名は、create+オブジェクト名とする

1-13.変換のためのメソッドは、to+変換するオブジェクト名とする

例)toDate

1-14.boolean の戻り値を戻すメソッドは、次のようなものとする

is +    XXX     例) isEmpty()
can + XXX     例) canPut()
has + XXX     例) hasItem()

その他   例) contains()

1-15.定数の変数は、すべて大文字とする。区切り文字は、「_」とする

例)  public static final int  INT_CONSTAT_VALUE =100

1-16.forループのカウンターは、i, j ,k ・・・を利用する

2.コーディングのルール


2-1.オブジェクトの参照にはインターフェースを利用する

違反例)Arralist sampleList

修正例) List sampleList

2-2.推奨されないAPIを使用しない

2-3.適切なアクセス修飾子を使って宣言する

2-4.条件分岐では、「!」を使わない。== false や == true を使う

  読みやすさのため

2-5. 不等号は、左向き(<, <=)とする

2-6.import 文にアスタリスクを使用しない

2-7.一度に複数の変数を宣言しない

悪い例)private String empName , empDeptName  ;

修正例)   private String empName ;

2-8.配列宣言は、型名[] とする

悪い例)   int sampleArray[]

修正例)   int[] sampleArray

2-9.定数はstatic finalで宣言する

2-10.ローカル変数は利用する直前で宣言する

2-11.文字列同士が同じ値か比較するときは、equals()メソッドを利用する

== や != を利用しない。これは、同じオブジェクトかを判定することとなる

2-12.文字列の連結にはStringBuilderクラスを利用する

Stringの+は、都度オブジェクトを作り直すので、パフォーマンスが低下する

2-13.文字リテラルと変数を比較するときは、文字リテラルのequals()メソッドを利用する

 Stringオブジェクト.euqals([文字列]) ではなく、
 文字列リテラル.euqals(Stringオブジェクト)メソッドを使う
 
 前者は、nullチェックをする必要がある。
 後者は、nullチェックがいらない。

2-14. if 文など、制御構文の 括弧 {   } は、省略しない

2-15. for 文のカウンターは、0から始める

サンプルなど


HelloWorld


1.サンプル


以下のソースファイルを作り、 HelloWorld.javaという名前で保存します。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

2.コンパイル


以下のコマンドでコンパイルします。

javac HelloWorld.java

HelloWorld.classが生成されます。

3.実行


以下のコマンドで実行します。

java HelloWorld

Hello, World!

が出力されます。



定数の利用


1.文法


定数は、static final で宣言する。

2.サンプル


interface Const{
  static final int  MAXVALUE = 10 ; 
  static final int MINVALUE= 1 ; 
}
class Main {
  public static void main(String[] args) {
    System.out.println(Const.MAXVALUE);
    System.out.println(Const.MINVALUE);
  }
}

3.実行結果


10
1

と表示されます。





forで配列を処理する例


1.サンプル


int nums[] = {1,2,3,4,5} ; 

for(var x : nums){   
     System.out.println(x); 
}


2.実行結果


5

が出力されます。


プログラムを実行しているJVMのバージョンを出力する


1.文法


System.getProperty("java.version")

を使います。

2.サンプル


public static void main(String[] args) throws Exception {
    String javaVersion = System.getProperty("java.version");
    System.out.println("実行中のJVMバージョン: " + javaVersion);
}

3.実行結果


実行中のJVMバージョン: 18.0.2

が表示されました。

0 件のコメント:

コメントを投稿

アルゴリズムの考え方

総当たりアルゴリズム すべての場合をためし、解を求める。 近似アルゴリズム  ・正解に近い解を探す ・正解との誤差がある範囲におさまると保証されているものを  精度保証付アルゴリズムという。 ・精度の保証のないアルゴリズムを、発見的手法(ヒューリスティック)    という。