<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="ja">
<channel rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/rss.xml">
    <title>JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/</link>
    <description>JavaA2Z - Java プログラミング辞書 - </description>
    <image rdf:resource="http://www.kab-studio.biz/Info/Icon/JavaA2Z_200x40.png"/>
    <dc:creator>KAB-studio</dc:creator>
    <items>
    <rdf:Seq>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000729.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001116.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000058.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000055.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000005.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000684.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000090.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001117.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000089.html"/>
        <rdf:li rdf:resource="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001028.html"/>
    </rdf:Seq>
    </items>
</channel>
<image rdf:about="http://www.kab-studio.biz/Info/Icon/JavaA2Z_200x40.png">
    <title>JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/</link>
    <url>http://www.kab-studio.biz/Info/Icon/JavaA2Z_200x40.png</url>
</image>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000729.html">
    <title>コーディングとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000729.html</link>
    <description>プログラムを書くこと。&#13;プログラムは「コード」とも言い、そのコードを記述することを「コーディング」と</description>
    <content:encoded><![CDATA[<p>プログラムを書くこと。</p>
<p>プログラムは「コード」とも言い、そのコードを記述することを「コーディング」と言う。</p>
<p>　</p>
<p>「プログラム」はリソースファイルや設定ファイル、画像といった「アプリケーションに必要なもの全部」を指す場合がある。そのため、「プログラミング」はそれらも含めた「アプリケーション全体を作成する」という行為を指すことになる。</p>
<p>逆に、「コード」はJava言語で記述された部分のみを指すことが多い。そのため、「コーディング」は「Java言語での記述のみを行う」という行為を指す。</p>
<p>イメージとしては、一心不乱にただコードを打ち込むこと、それが「コーディング」である。</p>
<p>また、そのようなことを行う者、またはそれを職業とする者を「コーダー」と呼ぶ。</p>
<p>　</p>
<p>ただし、実際には「プログラミング」と「コーディング」に大きな違いはない。</p>
<p>「プログラミング」をする際にコードしか打ち込まない場合もあれば、「コーディング」をする時に必要なファイルも作成することもある。</p>
<p>　</p>
<p>「コーディング」という言葉をポジティブに捉える場合、それは「自分は高い技術を持つのでコード打ち込み以外の雑事はやりたくありません」という意味になる。</p>
<p>「コーディング」という言葉をネガティブに捉える場合、それは「コードの打ち込みしかできないただの下働き」という意味になる。</p>
<p>もしこのふたつを明確に区別して使用する場合には、上記のような意味合いを含んでいると考えた方がいいだろう。</p>
<p></p>]]></content:encoded>
    <dc:date>2010-03-11T03:30:20+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001116.html">
    <title>マジックナンバーとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001116.html</link>
    <description>プログラム中に突如出てくる整数リテラルや浮動小数点リテラルのこと。&#13;　&#13;たとえば「System.ou</description>
    <content:encoded><![CDATA[<p>プログラム中に突如出てくる整数リテラルや浮動小数点リテラルのこと。</p>
<p>　</p>
<p>たとえば「System.out.println( 100 );」と書かれていた場合、この「100」がマジックナンバーである。</p>
<p>このようなリテラルは、プログラムを書いた者以外にとって「謎の数字」である。よく分からないが、とにかくちゃんと機能している重要な数字、という意味で「マジックナンバー」と呼ばれる。</p>
<p>マジックナンバーは極力避けた方がよい。</p>
<p>前述したように、マジックナンバーは一見、その数字がどういう意味を持つのかわかりにくい。そのため、記述者以外がプログラムを修正するのが難しくなる。</p>
<p>また、同じマジックナンバーがプログラム中に含まれている際に、同じ意味の値なのか分からないという問題がある。「System.out.println( 100 );」という行がある場合、前述の「100」とこの「100」が同じ意味の「100」か分からず、一方を変更した際にもう一方も変更すべきかわかりにくい。</p>
<p>以上の問題から、マジックナンバーを書いてはならない。</p>
<p>できる限りstatic finalフィールドを用いることが望ましい。詳しくは「static final」の項目を参照。</p>
<p>　</p>
<p>「ハードコーディング」もほぼ同じ意味。</p>
<p>「マジックナンバー」を書く「行為」が「ハードコーディング」と言える。</p>
<p></p>]]></content:encoded>
    <dc:date>2010-03-11T02:09:50+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000058.html">
    <title>toStringとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000058.html</link>
    <description>インスタンスの「文字列表現」を返すメソッド。&#13;　&#13;インスタンスの内部に格納されたデータも含めて文字列</description>
    <content:encoded><![CDATA[<p>インスタンスの「文字列表現」を返すメソッド。</p>
<p>　</p>
<p>インスタンスの内部に格納されたデータも含めて文字列化し、Stringクラスの戻り値として返すメソッド。</p>
<p>引数なし、戻り値の型はStringクラス。</p>
<p>この戻り値の文字列にはインスタンスの「概要」が書かれていることになり、インスタンスについて簡単に情報を得ることができる、便利なメソッドである。</p>
<p>　</p>
<p>toString()メソッドは多くの場面で呼び出される。</p>
<p>たとえば、println()メソッドは渡されたインスタンスのtoString()メソッドを呼び出し、返された文字列を出力する。</p>
<p>また、Eclipse等の開発環境でデバッグ時に変数を見ようとすると、その変数がクラスの参照型変数の場合にはtoString()メソッドが呼び出され、返された文字列がウィンドウに表示される。</p>
<p>toString()メソッドのおかげでインスタンス内の状態を簡単に知ることができ、デバッグ時には非常に役立つメソッドである。</p>
<p>　</p>
<p>toString()メソッドはObjectクラスのメソッドである。すべてのクラスはObjectクラスのサブクラスだから、すべてのクラスがtoString()メソッドを持つことになる。</p>
<p>ただし、ObjectクラスのtoString()メソッドは、「クラス名@ハッシュ値」というあまり役に立たない情報しか返さない。</p>
<p>J2SEの多くのクラスは、ObjectクラスのtoString()メソッドをオーバーライドし、内部情報を出力する。</p>
<p>自分で作成したクラスに「toString()メソッドで内部情報を出力する」機能を持たせる場合、ObjectクラスのtoString()メソッドをオーバーライドし、フィールド等の「インスタンスの情報」を文字列化し、戻り値として返せばよい。</p>
<p>その際、返す文字列の書式は決まっていない。自由に決めてよい。</p>
<p>それは逆に言えば、返される文字列の書式がバージョンアップ等で変更される可能性が高いということである。書式が決まってない以上、たとえば「toString()メソッドの戻り値をパースして、見ることができないフィールドの情報を取得する」といった使い方は避けた方がいい。</p>
<p>toString()メソッドの戻り値はあくまで人間が目視で確認するためのものである。IntegerクラスのtoString()メソッドのような「出力書式が仕様で決められている」ものは別として、通常はデバッグ時の参考くらいにとどめておいた方がいいだろう。</p>]]></content:encoded>
    <dc:date>2010-03-10T17:56:36+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000055.html">
    <title>compareToとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000055.html</link>
    <description>ふたつの値を比較し大小の結果を返すメソッド。&#13;　&#13;Comparableインターフェイスのメソッドを実</description>
    <content:encoded><![CDATA[<p>ふたつの値を比較し大小の結果を返すメソッド。</p>
<p>　</p>
<p>Comparableインターフェイスのメソッドを実装したもの。</p>
<p>Integerクラス等のラッパークラスや、Stringクラス等が実装している。</p>
<p>　</p>
<p>compareTo()メソッドは「A.compareTo( B )」の形式で使用する。</p>
<p>この戻り値は、「A」が「B」より小さいとマイナス、一致は0、それ以外はプラスとなる。</p>
<p>これは「A - B」の結果と一致する。</p>
<p>一般に比較を行うためのメソッドとして使用する。</p>
<p>また、Arraysクラスのsort()メソッド等、比較を行う場合には、compareTo()メソッドの実装が必要となる場合がある。</p>
<p>その場合、まずComparableインターフェイスを実装し、そのcompareTo()メソッドを実装する。その戻り値は、比較結果としてマイナス、0、プラスのいずれかを返す。</p>
<p>この時、compareTo()メソッドの中では、上記の例で言えば「this」が「A」に、「第1引数」が「B」に該当する。</p>
<p>そのため、「this」が「第1引数」より小さいとマイナス、一致は0、それ以外はプラスを戻り値として返すように実装しなければならない。</p>
<p>これは前述のように「this - 第1引数」と同じである。また、比較対象にcompareTo()メソッドを使用できるのであればその結果を返してもよい。それ以外であれば、ifやswitchを使用して比較を行えばよい。</p>
<p></p>]]></content:encoded>
    <dc:date>2010-03-09T22:15:06+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000005.html">
    <title>ラッパーとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000005.html</link>
    <description>他のクラス、変数、システムを「覆い隠す」ために存在するクラス。&#13;　&#13;他のクラスや変数をフィールドとし</description>
    <content:encoded><![CDATA[<p>他のクラス、変数、システムを「覆い隠す」ために存在するクラス。</p>
<p>　</p>
<p>他のクラスや変数をフィールドとして持ち、隠蔽し管理し操作するためのクラスを「ラッパークラス」「ラップクラス」と呼ぶ。</p>
<p>言語仕様的な決まりはなく、明確な定義もない。</p>
<p>通常ラッパークラスは、クラスもしくは変数ひとつを「包み込む対象」として選び、それをフィールドとして持つ。そのフィールドへは直接外からアクセスできないようにし、間接的にアクセスするためのメソッドを用意する。そのメソッドは「包み込む対象」を安全かつ十分に使用できるものを用意する。</p>
<p>このような条件に当てはまるクラスを一般的にそう呼ぶ、ということである。</p>
<p>　</p>
<p>ラッパークラスとする目的は様々である。</p>
<p>目的のひとつに、隠す対象のクラスが使いにくいため、使いやすいメソッドを提供するため、というものがある。引数が複雑だったり、複数のメソッドを順番に呼ぶ必要があったりする場合に、これらを使用せず簡易な方法を用意する目的で、包み込みメソッドを用意するわけである。</p>
<p>また、隠す対象が直接操作されるのを避けるためだったり、隠す対象が持つ機能とは別の形での機能を提供するためだったり、といったことがラッパークラスを作る目的となる。</p>
<p>いずれも、「使う側」と「隠す対象」の間に「ラッパークラスのメソッド」を挟んでいる。このメソッドを仲介役とすることで、「隠す対象」への直接のアクセスを避けつつ、付加価値を加えている。</p>
<p>　</p>
<p>ラッパークラスの具体例のひとつに、int型に対するIntegerクラスが挙げられる。</p>
<p>Integerクラスはint型のラッパークラスとして機能し、int型が持たない「クラスとしての機能」を提供する。APIリファレンスには「The Integer class wraps a value of the primitive type int in an object.」と書かれており、この「wraps」が「覆い隠す」という意味になる。</p>
<p>　</p>
<p>プリミティブ型は、全ての型に対応するラッパークラスが存在する。</p>
<p>プリミティブ型に対応するラッパークラスは、以下の通り。</p>
<p>　</p>
<p>・byte → Byte</p>
<p>・short → Short</p>
<p>・int → Integer</p>
<p>・long → Long</p>
<p>・float → Float</p>
<p>・double → Double</p>
<p>・char → Character</p>
<p>・boolean → Boolean</p>
<p>　</p>
<p>これらのラッパークラスは「インスタンスは不変」なため、インスタンス内の値を変更することはできない。</p>
<p>この機能によって、ラッパークラスはよりプリミティブ型に近い扱いが可能となっている。</p>
<p>詳しくは「インスタンスは不変」の項目を参照。</p>
<p>また、オートボクシングによってプリミティブ型との変換が簡単にできるようになっている。詳しくは「ボクシング変換」「アンボクシング変換」の項目を参照。</p>
<p>　</p>
<p>これらはプリミティブ型にはない便利なメソッドを持ち、かつプリミティブ型が持たない「参照」を用いた処理を行うことができる。</p>
<p>特にこれはArrayListクラス等のコレクションを使用する場合に必要となる。コレクションクラスの要素はObjectクラスとなっているため、プリミティブ型を格納することができない。また、ジェネリッククラスやジェネリックメソッドの型パラメーター（「<T>」のこと）にもプリミティブ型を使用することができない。</p>
<p>そのため、コレクションの要素にプリミティブ型を使用したい場合には、その代わりに対応するラッパークラスを使用することになる。</p>
<p>また、ラッパークラスを使用することでプリミティブ型にはない「null」という状態を持つことができる。それにより、数値の入力を受け取る際に「入力なし」という状態を「null」で表現することができる。</p>
<p>　</p>
<p>「ラッパー」と言っても「Yo!」とか言う人達とは関係ないので注意。</p>
<p>意味的には「クレラップ」「サランラップ」の方が近い。</p>]]></content:encoded>
    <dc:date>2010-03-08T21:06:52+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000684.html">
    <title>Systemとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000684.html</link>
    <description>アプリケーション自身を示すクラス。&#13;　&#13;J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名</description>
    <content:encoded><![CDATA[<p>アプリケーション自身を示すクラス。</p>
<p>　</p>
<p>J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.System。</p>
<p>「実行中のアプリケーションに関する処理」を行うためのクラス。つまり「アプリ自分自身」を示すクラスである。</p>
<p>世界一有名なフィールド、outフィールド（System.outフィールド）を持つ。</p>
<p>また、「実行中のアプリケーションに関する処理」を行うための様々なstaticメソッドを備えている。</p>
<p>Systemクラスはインスタンスを作ることができない。</p>
<p>コンストラクタがprivateメソッドのため「new System()」ができない。これはSystemクラスが「アプリ自分自身」を示すため、インスタンスが複数あってはならないためである。</p>
<p>その代わり、フィールドとメソッドはすべてstaticとなっている。</p>]]></content:encoded>
    <dc:date>2010-03-05T17:39:09+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000090.html">
    <title>Dateとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000090.html</link>
    <description>J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.Date。&#13;日時を</description>
    <content:encoded><![CDATA[<p>J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.Date。</p>
<p>日時を格納するためのクラス。</p>
<p>　</p>
<p>ただし、現在は使用が「推奨されていません」。</p>
<p>日時を格納するためのクラスとして代わりにCalendarクラスの使用が推奨されている。</p>
<p>DateクラスからCalendarクラスへ変換する場合には、CalendarクラスのsetTime()メソッドにDateクラスの参照を渡せばよい。</p>
<p>逆に、CalendarクラスからDateクラスに変換する場合には、CalendarクラスのgetTime()メソッドを呼び出せばよい。このメソッドの戻り値がDateクラスとなっている。</p>
<p>このように相互変換が可能なため、基本的にはCalendarクラスを使用し、必要なときだけDateクラスに変換するのがよいだろう。</p>
<p>　</p>
<p>同名のクラスにjava.sql.Dateクラスがある。</p>
<p>SQLのDATE型に対応するのはjava.sql.Dateクラスである。しばしばの混乱の元となるため注意すること。</p>]]></content:encoded>
    <dc:date>2010-03-05T00:59:29+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001117.html">
    <title>エポックとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001117.html</link>
    <description>アプリケーションが使用する日時の「開始日時」。&#13;世界標準時の「1970/01/01 00:00:00</description>
    <content:encoded><![CDATA[<p>アプリケーションが使用する日時の「開始日時」。</p>
<p>世界標準時の「1970/01/01 00:00:00.000」である。</p>
<p>　</p>
<p>多くのコンピューターは、内部時計による時間を、世界標準時の「1970/01/01 00:00:00.000」からの経過ミリ秒で管理する。</p>
<p>この、経過時間を数える「開始時点」となる「1970/01/01 00:00:00.000」を「エポック」と呼ぶ。</p>
<p>現在日時等、日時の管理は多くの場合このエポックからの「のべミリ秒」で行う。</p>
<p>エポックからのミリ秒で日時を管理することで、秒から分への繰り上がり等を気にする必要がなくなり、整数値ひとつで管理することができる。</p>
<p>また、日時の表現は時代、宗教、文化によって異なるため、ミリ秒で管理することでそれらの差を吸収することができる。</p>
<p>そのため、古くから慣例的に、コンピューターでの時間管理はエポックからのミリ秒で行われてきた。</p>
<p>　</p>
<p>エポックからのミリ秒は、SystemクラスのcurrentTimeMillis()メソッドで取得できる。</p>
<p>また、CalendarクラスのgetTimeInMillis()メソッドや、DateクラスのgetTime()メソッドでも取得できる。</p>
<p>これらのメソッドで取得するミリ秒は、long型で返される。int型ではない理由は、ミリ秒という細かい数え方のため、int型の最大値を超えてしまうからである。</p>
<p>エポックからのミリ秒で日時を取得すると、日時の大小比較や、差の計算や増減、日時を扱うクラス間の変換を行うことができる。ただ、通常はCalendarクラスを用いれば問題ないだろう。</p>
<p>　</p>
<p>「エポック」とは「時代」という意味である。</p>
<p>つまり「1970/01/01 00:00:00.000」時点以降が「コンピューターの時代」となるわけである。</p>]]></content:encoded>
    <dc:date>2010-03-04T22:11:34+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000089.html">
    <title>Calendarとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000089.html</link>
    <description>J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.Calendar。</description>
    <content:encoded><![CDATA[<p>J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.Calendar。</p>
<p>日時を格納するためのクラス。日時を格納し、基本的な処理がひととおり行えるメソッドを持つ。</p>
<p>　</p>
<p>コンストラクタはprotectedのため直接呼び出すことはできない。getInstance()メソッドがstaticメソッドとして用意されており、このメソッドを呼ぶことでCalendarクラスのインスタンスを作成できる。また、このインスタンスには現在日時が格納されている。</p>
<p>ただし、正確に言うと「Calendarクラスのインスタンス」ではなく「Calendarクラスのサブクラスのインスタンス」である。詳しくは「GregorianCalendar」の項目を参照。</p>
<p>　</p>
<p>特定日時のセットにはset()メソッドを使用する。あらかじめclear()メソッドを呼び出しておくとエポックつまり「1970/01/01 00:00:00.000」にリセットしてくれるため、その後に希望の日時をセットするといいだろう。</p>
<p>年、月、日等を個別に取得する場合にはget()メソッドを使用する。</p>
<p>いずれも、項目を指定する場合には「Calendar.YEAR」等のstatic finalなフィールドを用いる。</p>
<p>また、月は-1された値となることに注意。これはプログラミングにおける慣習のようなもので、1月が0、12月が11となる。月を指定する際は、「Calendar.JANUARY」等のstatic finalなフィールドが用意されているためこれらの使用を勧める。</p>
<p>　</p>
<p>Calendarクラスの日時は「年、月、日、時、分、秒、ミリ秒」と7つの整数値によって表現されている。そして、これらは相関関係を持つ。「秒」が59の場合に1を加えれば、0になると同時に「分」に1が加わる。また、日時の比較を行う場合、この7つすべての比較を行わなければならない。</p>
<p>こういった「日時の処理」は非常にバグを生みやすいため、add()メソッドやbefore()メソッド、after()メソッドの使用を強く勧める。</p>
<p>add()メソッドは「年、月、日、時、分、秒、ミリ秒」のいずれかを任意の量だけ増減できる。繰り上がり及び繰り下がりを計算してくれるため大変便利である。</p>
<p>before()メソッドおよびafter()メソッドは、他の「Calendarクラスのインスタンス」との比較を行う。「A.before( B )」は「A < B」、「A.after( B )」は「A > B」という比較を行う。</p>
<p>また大小の比較を行う場合にはcompareTo()メソッドを使用する。こちらは「compareTo」の項目を参照。</p>
<p>　</p>
<p>内部的には「1970/01/01 00:00:00.000」つまり「エポック」からのミリ秒という形式で日時を格納している。詳しくは「エポック」の項目を参照。</p>
<p>エポックからのミリ秒はgetTimeInMillis()メソッドで取得できる。</p>
<p>　</p>
<p>出力にはSimpleDateFormatクラスが向いているのでこのクラスを使用した方がよいだろう。</p>
<p>詳しくは「SimpleDateFormat」の項目を参照。</p>
<p>　</p>
<p>同じく日時を格納するクラスとしてDateクラスが存在するが、Dateクラスは現在「推奨されていない」ため、Calendarクラスを使用する方がよい。</p>
<p>Dateクラスとの相互変換の方法は「Date」の項目を参照。</p>
<p>　</p>
<p>ちなみに「Calender」ではなく「Calendar」なので注意。</p>]]></content:encoded>
    <dc:date>2010-03-04T17:11:17+09:00</dc:date>
</item>
<item rdf:about="http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001028.html">
    <title>ショートサーキットとは : JavaA2Z</title>
    <link>http://www.kab-studio.biz/Programing/JavaA2Z/Word/00001028.html</link>
    <description>左オペランドのみ評価し、右オペランドを評価しないこと。&#13;　&#13;&amp;amp;&amp;amp;演算子と||演算子は</description>
    <content:encoded><![CDATA[<p>左オペランドのみ評価し、右オペランドを評価しないこと。</p>
<p>　</p>
<p>&&演算子と||演算子は、左オペランドを先に評価する。</p>
<p>その際左オペランドが、&&演算子はfalse、||演算子はtrueの場合には、右オペランドを評価しない。</p>
<p>つまり「右オペランドの評価を省略する」ため、これを「ショートサーキット」「短絡評価」と言う。また&&演算子と||演算子を「ショートサーキット演算子」「短絡演算子」とも言う。</p>
<p>&&演算子の場合、左オペランドを評価した結果がfalseの場合に右オペランドを評価しない。</p>
<p>これは、右オペランドの結果に関わらず結果はfalseとなり、右オペランドの評価が「必要ない」ためである。</p>
<p>　</p>
<p>||演算子の場合、左オペランドを評価した結果がtrueの場合に右オペランドを評価しない。</p>
<p>これは、右オペランドの結果に関わらず結果はtrueとなり、右オペランドの評価が「必要ない」ためである。</p>
<p>　</p>
<p>右オペランドで何らかの処理を行っている場合、その処理そのものが行われない。</p>
<p>ショートサーキットを使用することでプログラムを簡略化することができる場合がある。</p>
<p>ただし、この2つの演算子がショートサーキットを行うことを知らない場合、処理されるはずなのに処理されない、といったバグを生む可能性ががあるため注意すること。</p>]]></content:encoded>
    <dc:date>2010-03-04T03:35:00+09:00</dc:date>
</item>
</rdf:RDF>