インスタンス instance

いわゆる「モノ」のうち、具体的な個別のもの。
りんごは赤い
といったとき、一般の「りんご」を話題にしている場合と、 目の前にある特定の「りんご」の話をしている場合があります。
この目の前にある具体的な「りんご」はインスタンスです。

クラスとインスタンスは、 車の設計図とその設計図に基づいて作られた車 の関係にたとえられます。 設計図がクラスで、作られた車がインスタンスです。

Javaでプログラミングをする場合、
取り扱うクラスを定義しておく
そのクラスのインスタンスを生成し、そのインスタンスの処理を記述する
というのが一般的です。

基本データ型 primitive type

データの型には、基本データ型と 参照型 reference type があります。

基本データ型の種類と、メモリ上を占有するサイズ、記憶できる値の範囲は以下の通りです。
サイズ値の範囲
数値整数byte8ビット-128 〜 +127
short16ビット-32768 〜 +32767
int32ビット-2147483648 〜 +2147483647
long64ビット-9223372036854775808 〜 +9223372036854775807
文字char16ビット0 〜 65535
浮動小数点float32ビット±3.40282347E+38 〜 ±1.40239846E-45
double64ビット±1.79769313486231570E+308 〜 ±4.94065645841246544E-324
真偽値boolean-true false

符号なしの整数型はありません。文字型は、正の整数値をとります。

基本データ型の変数には、参照型のようにポインタが代入されるのではなく、値そのものが代入されます。

整数型と文字型に許される演算は、以下のとおり:

      比較演算子(結果は,型 boolean の値になる)
                  <,<=,>,>=, ==,!= 
      数値演算子(結果は,型 int 又は型 long になる)
            単項符号演算子  + 及び - 
            乗除演算子    *,/ 及び % 
            加法演算子    + 及び -  
            増分演算子    ++
            減分演算子    --
            シフト演算子   <<,>> 及び >>> 
            補数演算子    ~ 
            ビット単位演算子 &,| 及び ^ 
      条件演算子       ? : 
      キャスト演算子     ( )
      文字列連結演算子    +

浮動小数点型に許される演算は、上記の整数型に許される演算子から、 シフト演算子、補数演算子、ビット単位演算子 を除いたもの。

論理値型に許される演算は、以下のとおり:

      関係演算子       == 及び !=
      論理補数演算子     ! 
      論理演算子       &,^ 及び |
      条件付き演算子     && 及び ||
      条件演算子       ? : 
      文字列連結演算子    +

キーワード keyword


行の終り end of line

プログラムにおける「行の終り」は、改行(LF)、復帰(CR)、復帰改行(CRLF) のいずれかによって認識されます。CR/LFは、1文字とみなされます。
エスケープ・シーケンスでは、 \n で表現されます。

クラス class

いわゆる「モノ」のうち、一定の性質(形状や振る舞いなど)をもっているもの。

日本語では、クラスとインスタンスの区別がつけにくいのですが、たとえば
テーブルには脚が4つある
テーブルを買ってきてください
テーブルが汚れている
最初の「テーブル」は一般的なテーブルを指しています。 最後の「テーブル」はある具体的なテーブルを指しています。
2番目の「テーブル」は微妙です。英語では a table とか the table といった区別を助ける仕組みがありますが、 日本語では、文脈や、追加的な語句によって判断することになります。

最初の「テーブル」がクラス、 最後の「テーブル」がインスタンスです。

クラス定義

プログラムで取り扱うデータの性質と、 そのデータの取り扱い方をまとめて、 ひとくくりにしたものをクラスと いいます。
Javaプログラムを記述するにあたり、 まず「こんなクラスをつかいますよ」という宣言をしなければなりません。 この宣言のことをクラス定義といいます。
クラス定義は下記のように、 クラスがもつデータの性質を宣言する「変数の定義」と、 そのクラスのインスタンス を生成する方法を宣言する「コンストラクタの定義」、 および、その変数の取り扱い方を宣言する「メソッドの定義」からなっています。

  class  クラス名 {     ... クラス定義の始まり

  変数の定義
  コンストラクタの定義
  メッソドの定義

  }             ... クラス定義の終わり

  インスタンスの生成

クラスのインスタンスを生成するには、new演算子を用います。 たとえば、
  new javax.swing.JFrame("私の名前");
とすると、コンストラクタ JFrame が呼び出され、 パラメタとして "私の名前" という文字列が渡され、 クラス JFrame のインスタンスが1つ生成されます。 この例では、クラス JFrame は、パッケージ javax.swing の中で 準備されているものを参照していて、自分でクラス定義をする必要がありません。


言語 Language

プログラミング言語 参照。

コマンド・ラインのパラメタ

DOS画面から、Javaプログラムを実行する際に少量のデータを プログラムに渡す方法。たとえば、DOS画面で

java program a b c
java program xx yy zz
などのように入力することによって、同じプログラムに対して、 異なるデータを与えるという方法です。

プログラムでの取り扱いかたは コマンド・ライン 参照。

講義録は、5.1 コマンド・ラインからの入力 および、 5.2 判断を分岐 を参照。


コメント comment

「注釈」ともいわれ、他人が(または、本人が後で)プログラムを読む際の 助けになるような情報を、日本語や英語(というか、ふつーの言葉) で埋め込んだもの。
次に述べる形を守る限り、何をどんな風に書いても、プログラムの動作には 影響を与えません。

コメントの形式は次のいずれかです。

コメントはコンパイルする際には、区切りの空白とみなされます。 つまり、空白をいれてよいところに書くことができます。 また、リテラルの中では /* が出てきてもコメントになりません。


コンパイルcompile



参照型 reference type

データの型には、基本データ型 primitive type と 参照型 があります。

参照型は、クラス型、インターフェース型、配列型の3種です。

参照型の変数には、オブジェクトに対するポインタか、 何も指していない空参照をあらわす定数 null のいずれかが、代入されます。


実行execution


整列 sort

13章 整列 参照。

ソート sort

13章 整列 参照。

デフォルト default

省略時解釈。 指定を省略した場合に、システム側で採用する値、あるいは一定の処理のこと。

浮動小数点 floating point

7章 浮動小数点 参照。

プログラム program

コンピュータを動かすための一連の命令。

「あらかじめ、書いたもの」 pro-gram からきている。発想は、運動会や催し物の「プログラム」と同じ。

一連の命令の書き方の約束を「文法」といい、書き方の体系を 「言語」 あるいは、「プログラミング言語」といいます。

使用例:

Java言語で書かれたプログラム

簡単なJavaプログラムは、次のような構造をしている。

パッケージをいくつか参照し、あらかじめ定義ているクラスを、 以降のプログラムで使用できるようにする。

import の少し詳しい説明は、1.2 のプログラムの補足説明 を参照してください。
その後に、自分の定義したいクラスを記述する。
publicのついたクラスの名前と プログラムのはいっているファイルの名前(.javaの前の部分)は、 同じつづりでなければならない。

プログラミング programming

プログラムを作成すること。

プログラムを、「書く」、「作成する」、「つくる」、「コーディングする」 というように、いろんな言い方がされています。

プログラムを作成する手順は、以下のとおりです。

  1. 解くべき問題を明らかにする。
    小さい課題であれば、プログラム作成の目的と、処理の手順の概要を記述する程度で済みます。
    大きなプログラムを作る際には、要求定義書(外部仕様書)、内部仕様書といった膨大なドキュメントが必要になります。
  2. コーディングをする。
    プログラミング言語を用いて、処理の手順を記述します。狭義のプログラミングは、このコーディング作業を指します。
    小さなプログラムであれば、テキスト・エディタでファイルを作成します。
    大きなプログラムになると、コーディングをしたり、後工程のコンパイル、実行、動作確認をしたりするための「統合開発環境」を利用するのが普通です。
  3. コンパイルする。
    できたプログラム(ソースプログラム)を、コンパイラというプログラムで処理し、 コンピュータで処理しやすい形(オブジェクトプログラム)に変換することをコンパイルといいます。
    ソースプログラムは文字で記述されていますが、 オブジェクトプログラムは、コンピュータが理解できる命令の列(機械コード)であったり、 どのコンピュータでも実行しやすい命令の列(擬似コード)であったりします。 C言語は前者、Java言語は後者です。
    コンパイルをすると、コンパイラからエラーメッセージが表示される場合があります。 プログラミング言語の約束(文法と呼ぶ)に合致せず、「何を書いてあるのか解らない」というコンパイラの悲鳴です。 エラーメッセージがでなくなるまでプログラムを修正します。この作業を狭義のデバッグと呼びます。

    言語によっては、このコンパイルをおこなわず、ソースプログラムを直接実行するものがあります。 このような処理系をインタプリタと呼びます。

  4. 実行する。
    オブジェクトプログラムを実際に実行します。
    ソースプログラムに書かれたとおりにコンピュータを動かす段階です。実行時にもエラーメッセージが表示される場合があります。 「言われた通りにやったけれど、うまくいかない」というコンピュータの悲鳴です。 エラーメッセージがでなくなるまでプログラムの修正をします。広義のデバッグにはこの作業が含まれます。

    実行に先立って、リンクが必要な言語もあります。 プログラミング言語として提供されている機能を実行するために必要なプログラム(javaの場合はパッケージと呼ぶ、一般にはライブラリと呼ぶ) をまとめて、1つの実行可能プログラムにする作業です。リンクとか結合、あるいは make と呼ばれます。 javaの場合は、実行中に自動的に行われますので、リンクを意識する必要はありません。

  5. 動作確認をする。
    テストデータを用意し、処理の手順が正しく記述されているか、プログラム作成の目的が達成されているかを確認します。
    大きなプログラムになると、個々のプログラムが内部仕様書を満たしているか(単体試験)、機能が目的を満たしているか(結合試験)、 実用に耐えるか(性能試験、耐久試験)、スムーズな運用ができるか(運用試験)といった膨大な試験が必要となります。
    試験のためのデータを上記の仕様書と同レベルで扱い、何を作成するかを決定すると同時に、 どんなデータで動作確認をするかを明示する手法を「テスト・ファースト」と呼びます。

プログラミング言語 Programming Language

プログラムを書くための一連の約束事(流儀)。

プログラムを構成する最小単位を語彙 Token といいます。 識別子や、リテラル、演算子などが語彙です。 言語を定めるには、まず語彙の書き方を決め、 さらに、どのように語彙を組み合わせると、 正しいプログラムが書けるのかを決めます。 正しい語彙の組み合わせ方のことを、「構文」、あるいは狭義の「文法」といいます。 さらに、この正しく組み合された語彙の集まりが、命令として実行されたときに、 コンピュータがどのように振る舞うかを決めます。 これを、構文に対する「意味」といいます。
すなわち、語彙、構文、意味によって、ひとつの言語が定義されます。

言語定義の例

標準情報(TR) TR X 0005-1997 Java言語規定(原案)
1996年に発行され, 改訂 を続けている The Java(TM) Language Specification(Sun Microsystems, Inc.)を サン・マイクロシステムズ社の承認のもとに翻訳したもの
作成者:(財)日本規格協会 情報技術標準化研究センター(INSTAC)のマルチメディア/ハイパメディア調査 研究委員会
注意:1996年8月の仕様

予約語 keyword


ラッパークラス wrapper class

基本データ型はクラスではありません。このため、すべての基本データ型に対応して、 ラッパークラスというものが用意されています。 ラッパークラスの目的は以下の2つです。

基本データ型とラッパークラスの対応は以下のとおりです。

基本データ型ラッパークラス親クラス
byte Byte NumberObject
short Short
int Integer
long Long
float Float
double Double
char Character
booleanBoolean

【コンストラクタ】

【よく使われるメソッド】 Integer と Double について

メソッド機能
public static Integer valueOf(String str) 2番目の形式のコンストラクタと同様
public static Double valueOf(String str)(同上)
public String toString() ラッパークラスのインスタンスから文字列への変換
Integer val = new Integer(10);
System.out.println( val.toString() );
public int intValue() ラッパークラスのインスタンスから基本データ型への変換
Integer val = new Integer(10);
int sum += val.intValue();
public static int parseInt(String str) 文字列 から int への変換
String s = "123"
int val = Integer.parseInt( s );
public static int parseInt(String str, int radix) 文字列を radix 進法表示として int へ変換
String s = "123"
int val = Integer.parseInt( s, 8 );
public static double parseDouble(String str) 文字列を double へ変換
String s = "123"
int val = Double.parseDouble( s );

リテラル literal

基本データ型、String型、およびnull型のデータの定数(具体的な値) をプログラムに書くための表記方法です。

基本データ型の値の範囲については、 6.1 基本データ型 を参照のこと。


Top Page
作成日:2012/04/02
更新日:2015/01/30