Javaクラスの構文について説明します。
Javaクラスの構文の骨格は以下の図のようになっており、実にシンプルです。
初めてのJava
/**
* Copyright 2017 hoge.
* 本ソースファイルの著作権は株式会社hogeに所属します。
* 株式会社hogeの許可なくして、本ソースファイルの
* 配布、改修、コピー、利用を禁止します。
* 会社名 :株式会社hoge
* 組織名 :システム開発部
* プロジェクトコード :education
* バージョン :1.0
* 最終更新日時 :2017/02/10 17:21
*/
//package宣言部
package jp.co.yourcompany.education.samples;
//import 宣言部
/**
*
* このクラスは、Javaの全体の構成を分かり易くした
* 標準出力にメッセージを出力するクラスです。
*
* @author Raita.Kuwabara
*
*/
public class HowToWriteJava {
//定数宣言部
/**
* デフォルト値として設定されるメッセージ
*/
public static final String MESSAGE_DEFAULT_JA = "こんにちは 日本へ";
/**
* エラーメッセージ
*/
public static final String MESSAGE_ERROR_JA = "メッセージが指定されていません。";
/**
* 主処理の終了メッセージ
*/
public static final String MESSAGE_END_JA = "-------- END outputMessage method------------";
//static実行部 今は気にしない
//メンバフィールド宣言部
private String message;
/**
* デフォルトコンストラクタ
*/
public HowToWriteJava() {
message = MESSAGE_DEFAULT_JA;
}
/**
* デフォルトコンストラクタ
* 指定したメッセージをmessageフィールドに初期設定する。
*
* @param message 出力するメッセージ
*/
public HowToWriteJava( String message ) {
//クラスのメンバフィールドに値を設定しています。
this.message = message;
}
/**
* 主処理
* messageプロパティに設定されたメッセージを出力します。
*/
public void outputMessage() {
if( isNotNullMessage() ){
outputCurrentMessage();
} else {
outputErrorMessage();
}
outputEndMessage();
}
/**
* メッセージを初期化する。
*/
private void init() {
message = null;
}
/**
* メッセージフィールドのメッセージがnullでないことをチェックする。
* @return true:値あり false:値なし
*/
private boolean isNotNullMessage() {
return ( message != null );
}
/**
* messageフィールドに設定された文字列を出力する。
*/
private void outputCurrentMessage() {
System.out.println( message );
}
/**
* エラーメッセージを出力する。
*/
private void outputErrorMessage(){
System.out.println( MESSAGE_ERROR_JA );
}
/**
* 主処理終了時のメッセージを出力する。
* @return true:値あり false:値なし
*/
private void outputEndMessage() {
System.out.println( MESSAGE_END_JA );
}
/**
* 決まったユーティリティのような定型の関数のようなメソッドだけをstaticにする。
* クラスメソッド(静的メソッド)の例
* クラスの定型メッセージを出力します。
*/
public static void outputClassMessage() {
System.out.println( HowToWriteJava.MESSAGE_DEFAULT_JA );
}
/**
* javaコマンドで起動されるmainメソッド
* @param args javaコマンドで引き渡しされる引数
*/
public static void main( String[] args ) {
//sample1-1 デフォルトのメッセージ
HowToWriteJava howToWriteJava = new HowToWriteJava();
howToWriteJava.outputMessage();
//sample1-2 outputErrorMessageが実行されるケース
howToWriteJava.init();
howToWriteJava.outputMessage();
//sample2 引数を渡すケース
HowToWriteJava howToWriteJava2 = new HowToWriteJava("インスタンス2のHello");
howToWriteJava2.outputMessage();
//sample3
HowToWriteJava.outputClassMessage();
}
}
public
は、アクセス修飾子を意味しこのクラスが他のパッケージからも利用可能なクラスを意味します。パッケージ名の接頭辞は、常に小文字のASCII文字で書かれており、トップレベルのドメイン名、
現在はcom、edu、gov、mil、net、org、または英語の2文字コードのいずれかでなければなりませんISO規格3166,1981に規定されている国を特定します。
パッケージ名の後続のコンポーネントは、組織独自の内部命名規則に従って異なります。
このような規則は、特定のディレクトリ名の構成要素が部門名、部署名、プロジェクト名、マシン名、またはログイン名であることを指定します。
import宣言部例
//import宣言部
import java.util.Calender;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jp.co.yourcompany.education.samples.BoxOnly;
定数のサンプル
/**
* 主処理の終了メッセージ
*/
public static final String MESSAGE_END_JA = "-------- END outputMessage method------------";
public
は、アクセス修飾子で他のアクセス修飾子と動きは同じです。final
は、final修飾子と呼びます。static
は、static修飾子と呼びます。new
で幾つ作成されても、メンバ変数のサンプル
//出力するメッセージ
private String message = null;
private
またはprotected
(子クラスのみ利用可能)」にして下さい。
コンストラクタのサンプル
public class Test{
//メッセージ
private String message = null;
/**
* デフォルトコンストラクタ
* @paaram メンバ変数のメッセージを設定します。
*/
public Test( String message){
this.message = message;
}
}
コンストラクタの利用方法
public class ExecTest{
public static void main( String[] args ){
//デフォルトコンストラクタが実行される。
Test test = new Test("Java学習中");
}
}
public
で宣言します。これはお作法です。 HowToWriteJavaよりメソッドのサンプル
/**
* 主処理
* messageプロパティに設定されたメッセージを出力します。
*/
public void outputMessage() {
if( isNotNullMessage() ){
outputCurrentMessage();
} else {
outputErrorMessage();
}
outputEndMessage();
}
public
,protected
,public
省略
から指定します。public
で他のパッケージに公開されたメソッドは、そのクラスの主処理の1つとなります。private
メソッドを作成します。void
を記述します。return
句で呼び出し元のクラスに戻り値を返します。メソッドの引数に引き渡し方に基本は以下になります。
( 型1 引数名1 , 型2 引数名2 )
ジェネリクス型で詳しく説明しますが、
引数がListクラスなどのコンテナの場合には、コンテナに梱包するクラスをシェネリクス型で明示します>
ジェネリクス型で型を明示した引数
/**
* List<String>の引数の引渡し方例
* @param 郵便番号のリスト
*/
public void setZipList( List<String> zipList) {
//doSomething;
}
メソッドの引数のが可変の場合には、「...」型と引数名の間に「.」(ドット)を3つ並べます。
...
引数名1 , 型2 引数名2 )
public
,protected
,public
省略
から指定します。public
で他のパッケージに公開されたメソッドは、そのクラスの主処理の1つとなります。private
メソッドを作成します。void
を記述します。return
句で呼び出し元のクラスに戻り値を返します。String[] args
には、javaコマンド実行時に指定した引数が設定されてきます。