To Top

English Example Sentences

HOME » Miscellaneous » Java

システム開発におけるJavaプログラミングで使う用語をまとめたページです。

To Bottom

Java

Javaとは、Sun Microsystems社が開発したオブジェクト指向のプログラミング言語。

Sun Microsystems社は、2010年にOracle社から吸収合併され消滅した。

Javaで開発されたソフトウェアは特定のOSやマイクロプロセッサに依存することなく、基本的にはどのようなプラットフォームでも動作する。

Javaでプログラムを開発するためには、コンパイラインタプリタというソフトウェアが必要です。 コンパイラは、Javaの文法に沿って記述したソースコードバイトコードに変換してくれます。 インタプリタは内部に持っているJVMの仕組みを使ってこれを解釈し、マシン語に変換してCPUが実行します。

オブジェクト指向

オブジェクトとは、データとその処理手順をまとめたものを指す。

オブジェクト指向とはソフトウェアを開発するときに用いる部品化の考えのこと。

《オブジェクト指向の3大機能》

カプセル化

カプセル化とは、クラス内のフィールド変数やメソッドについてアクセス制御することで、 クラスはpublic、メソッドはpublic、フィールドはprivateで修飾する。 フィールドにアクセスするためのメソッドとして、getterやsetterを使い、setterでは、引数のnullチェックなどの妥当性検査を行う。

継承

継承とは、親クラスで定義したフィールド変数やメソッドをextendsを使うことで、子クラスに引き継ぐことができる機能。 継承と行えば、子クラスでは差分だけを記述するだけでよい。

抽象クラスとは、それ自身のクラス内にメソッドの実際の処理がなく、メソッドの定義しかないクラスのこと。 抽象クラスを継承したクラスは、この抽象クラスのメソッドを必ずオーバーライド(override)しなければならない。 抽象クラスは、newによるインスタンス化が禁止される。

多態性

多態性(polymorphism)は、newしたインスタンスをザックリと親クラスなどのクラス変数に代入できる機能のことで、 複数のインスタンスを同一視して、親クラス型の配列にまとめて格納できる。

newしたインスタンスがその親クラスに属するかどうか判定するには、instanceof演算子を使う。

アクセス修飾子

アクセス修飾子とは、データを他のクラス、又は他のパッケージから参照を出来ないように指定する事が可能である。

アクセス修飾子 説明
private 同じクラス内からしか呼び出せないが、同じクラスから作られたオブジェクト同士であれば、相互の private メンバーにアクセスできる。
指定なし 同じパッケージ内からしか呼び出せない。
protected 同じパッケージか、そのサブクラスからしか呼び出せない。
public どこからでも呼び出せる。

オペランド

(operand)

式「a = b + 3」を分解すると、変数a, bや値の3、そして+, = の計算に分けられるが、Javaを含む多くのプログラミング言語では、このa, b, 3をオペランド(operand)、そして+, =を演算子(operator)という。

オペランドの中でも数字「3」や文字列「Hello World」など、ソースコードに記述されている値のことをリテラル(literal)という。

インクリメント演算子

(increment operator)

++はインクリメント演算子、--はデクリメント演算子という。

a++は、a=a+1やa+=1と同じ。

a--は、a=a-1やa-=1と同じ。

++や--は、他の演算子と一緒に使わないほうがよい。

  1. public class Main {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 10;
  5. System.out.println(++a + 50);
  6. System.out.println(b++ + 50);
  7. }
  8. }

実行結果

61

60

5行目の実行のされ方

  1. 変数aの値が1増える
  2. それに50を加えたものが画面に表示される

6行目の実行のされ方

  1. 変数bに50を加えたものが画面に表示される
  2. 変数bの値が1増える

平均点の求め方

(Calculating average)

平均点を求める時は、合計が格納されたint型の変数sumを人数で割るわけだが、(float)(sum/人数)としてしまうミスが多い。

これでは(sum/人数)がint型として計算され、整数値になってしまい、結果、平均値が整数になってしまう。正しくは以下である。

(float)sumに型変換(cast)すると、平均値もfloat型で表示される。

  1. public class Main {
  2. public static void main(String[] args) {
  3. int sum = 0;
  4. float average = 0.0;
  5. ………
  6. average = (float)sum/人数
  7. System.out.println("average = " + average );
  8. }
  9. }

switch文

Javaのswitch文は、文字列を判定することができる。

  1. public class Main {
  2. public static void main(String[] args) {
  3. String word = "";
  4. ………
  5. switch( word ){
  6. case "bilge"
  7. System.out.println("bilge");
  8. break;
  9. case "foam"
  10. System.out.println("foam");
  11. break;
  12. default:
  13. }
  14. }
  15. }

乱数

(Random number)

乱数を発生させるにはRandomクラスを利用する。

// 0から99までの整数の乱数を取得する

int rndNum = new java.util.Random().nextInt(100);

// 0.0f~1.0fの範囲で乱数を取得する

float rndNum = new java.util.Random().nextFloat();

// 0.0d~1.0dの範囲で乱数を取得する

double rndNum = new java.util.Random().nextDouble();

標準入力

(Standard input)

標準入力とは、キーボードから入力した値を変数に読込むための操作である。

int value = new java.util.Scanner(System.in).nextInt();

String name = new java.util.Scanner(System.in).nextLine();

スコープ

(Scope)

変数が利用可能な場所の範囲のことをスコープという。

複数の文をひとまとまりとして扱うものをブロック(block)といい、ブロック内で宣言した変数は、そのブロックが終わると同時に消滅する。

  1. public class Main {
  2. public static void main(String[] args) {
  3. for(int i=0; i< 3; i++){
  4. System.out.println("She is an astronomer.");
  5. }
  6. for(int i=0; i< 3; i++){
  7. System.out.println("She is an astrologer.");
  8. }
  9. }
  10. }

拡張for文

拡張for文は、配列やリストの要素を1つずつ取り出すループを簡単に書くために導入されたfor文のこと。

  1. public class Main {
  2. public static void main(String[] args) {
  3. int[] score = {10, 20, 30, 40 50}
  4. for( int value : score ){
  5. System.out.println( value );
  6. }
  7. }
  8. }

参照型

(Reference type)

配列のコピーでは、配列の要素を参照しているアドレスをコピーするので、取り扱いに注意が必要である。

以下のプログラムのa[0]には100が入っている。

  1. public class Main {
  2. public static void main(String[] args) {
  3. int[] a = {10, 20, 30, 40, 50};
  4. int[] b;
  5. b = a;
  6. b[0] = 100;
  7. System.out.println( a[0] );
  8. }
  9. }

ArrayIndexOutOfBoundsException

ArrayIndexOutOfBoundsExceptionとは、配列などで存在しない範囲外(out of bounds)の要素を参照したときに発生する例外(exception)。

NullPointerException

NullPointerExceptionとは、null値(定義されていない値のこと)の参照型変数を参照しようとした時に発生する例外。

Camel case

Camel caseとは、アルファベットで複合語やフレーズを表記する際、各単語や要素語の先頭の文字を大文字で表記したもの。

例)createAlignment、simulateAlignment

オーバロード

(overload)

プログラミングで、同じ関数名を多重定義すること。

具体的には引数の型や数が異なる定義を同じ関数名に対して定義すること。

C++では関数のオーバーロードは関数名が同じで引数が異なることが条件です。そのため同じ関数名で戻り値の型だけが違う関数を作るとエラーになってしまいます。

JAVAでは、戻り値の有り無しや戻り値のデータ型が異なっているだけのものはオーバーロードすることはできません。

オーバーロードでは、仮引数の型が異なっていれば、JVMが呼び出し元の引数(実引数)を見て、その引数の型に一致するメソッドを呼び出してくれる。

標準アノテーション型

java.langパッケージに「Override」「Deprecated」「SuppressWarnings」が定義されています。

標準アノテーション型 説明
@Override スーパークラスのメソッドをオーバーライドするという注釈
@Deprecated クラスやメソッドが非推奨であるという注釈
@SuppressWarnings コンパイル時の警告を抑制するという注釈

JavaBeans

JavaBeansとは、プログラムの再利用を目的としてJavaで書かれたソフトウェアの部品のこと。

ポリモーフィズム

(polymorphism, 多態性)

ポリモーフィズムとは、オブジェクト指向で、同名のメソッドや型などをオブジェクトの種類に応じて使い分けることができる性質のこと。

素数を求める処理

(エラトステネスの篩)

  1. public class Main {
  2. public static void main(String[] args) {
  3. int n=100;
  4. int[] A = new int[n+1];
  5. for(int k=2; k<=n; k++){
  6. A[k] = 1;
  7. }
  8. for(int m=2; m<=(int)Math.sqrt(n); m++){
  9. for(int k=2*m; k<=n; k+=m){
  10. A[k]=0;
  11. }
  12. }
  13. for(int k=2; k<=n; k++){
  14. if(A[k]==1){
  15. System.out.println(k);
  16. }
  17. }
  18. }