サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
www.lcv.ne.jp/~kenmio
メソッドからはreturn文で戻り値が返されます。実はもうひとつ例外というものが戻ってくることがあるのです。例外の場合は、戻されるというより、投げつけられるという感じですか。身をかわすもよし、しっかり受け止めるのもよし、お好みでどうぞ。 プログラムの実行中にエラーが起こった場合、Javaでは例外と呼ばれるオブジェクトが発生します。発生する可能性のある例外に対する処理を、あらかじめ記述しておくことで、プログラムがそのエラーにより終了してしまうことを避けることができます。 メソッド内で例外が発生した場合、呼び出し元へそのまま例外を渡してしまうことができます。これを、「例外が投げられる」といいます。呼び出し元では例外を受け取りますが、そのまた呼び出し元にポイッとそのまま投げてしまうことも可能です。 また例外に対する処理をtry~catchであらかじめ指定しておくこともできます。これをハンドラとい
public class Main { public static void main(String[] args) { A p = new A(1); A q = new A(2); System.out.println(p.methodA(10)); System.out.println(q.methodA(10)); } } ばかにするな!と言われそう。そう 11 12 です。二つのメソッド呼び出し p.methodA(10) と q.methodA(10) は 実引数の値はどちらも10なのに、どうして戻り値がちがうのでしょう?呼び出しているオブジェクトがpとqでちがうためですね。 実引数の値10は、メソッドmethodAの仮引数pで受け取ります。では、どのオブジェクトで呼び出しているか、pかqか、という情報はmethodAの何で受け取っているのでしょうか?もうおわかりで
13章でチラッと出てきた抽象クラスをもう一度見直してみましょう。さらにinterfaceまで話を進めます。 第13章「保育園児の豚汁作り」の復習です。保育園児のクラスを抽象クラスとして定義しました。覚えていますか?青さんや黄さんといったクラスの、共通部分のくくりだし(汎化)でしたね。ここで「豚汁の準備をする」メソッドを抽象メソッドとしました。青さん、黄さん、桃さんで、「豚汁を準備する」行為がそれぞれ異なるためです。具体的な内容は各サブクラスで定義しました。野菜を切る、とか野菜の皮をむく、などです。青さんのクラスからオブジェクトは生成できるけれども、抽象クラスである保育園児のクラスからは生成できませんでしたね。思い出しましたか。 ここでは抽象クラスをもう一度見ておきましょう。 抽象クラスには抽象メソッドが含まれており、サブクラスで必ずオーバーライドしなければなりません。簡単な例で見ていきまし
手始めにラッパークラスを見ていきましょう。メソッド名など必要になったらAPIドキュメントで調べれば結構です。「へぇこんなのがあるんだ」と読み進めてください。 基本データ型は次の8種類がありました。(→基礎編 第1章)それぞれに対応して、右のようなクラス型があります。これをラッパークラス(wrapper class)といいます。 基本データ型 ラッパークラス boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double ほとんどが先頭1文字を大文字にしただけですが、CharacterとIntegerはフルネームになっているので
引き続き基本データ型の話になります。やっぱりプログラムは計算できなきゃね。まあショッピングサイトもニュース配信サイトも、難しい計算をするわけじゃない。でも基本は計算、読み書きそろばんは大事ですよ。 またぞろaとかbとか意味のない変数名を使って心苦しいのですが、例をシンプルにするためご勘弁願います。 「いち足すいちは?」「2」「残念でした、田んぼの田ですぅ」やりませんでした? 加減乗除は小学校でやったのと同じですが、掛け算の×は*(アスタリスク)、割り算の÷は/(斜線)になります。分数はありません。割り算で書き直してください。(小学校でやりましたよね) int型どうしの演算は結果もint型になります。double型同士の演算は結果もdouble型になります。int型とdouble型の演算は、int型の値がdouble型に変換されてから演算が行われ、結果はdouble型になります。 int a
オブジェクトの比較方法もいろいろあります。よく使う標準の比較方法は、クラスの中にcompareToで指定すればよかったですね。第5章の続編として、この章では他の比較方法を使いたい場合を解説します。 さあ、今日はいやーな予防接種の日です。普段背の順で並んでいる梅組の子供たちも、今日は出席番号順に並ばなければなりません。第5章で、クラスStudentに、背をもとにオブジェクトを比較するメソッドcompareToを作りましたが、出席番号をもとに比較するには、どうすればいいのでしょう? 実はクラスStudentの中ではなく、Comparator(java.util.Comparator)を実装する別のクラスをわざわざ作って、その中のメソッドcompareで比較方法を定義してやります。次のようになります。 import java.util.Comparator; public class Stude
オブジェクト指向の山場に来ました。そのわりにタイトルはのんびりしていますが...ここではイメージ作りを先行させ、細かいJavaの文法はやりません。話が長くなりますが、(関係ないことも入っているかも)さらさら読んでいってください。 娘の保育園は、ときどき豚汁会やカレー会をやります。自分たちで作って、自分たちで食べるのです。もちろんほとんどの作業は先生方がやるのですが、園児たちもちゃんと作業が分担されています。 まず桃さんは「野菜を洗う」、黄さんは「野菜の皮をむく」、青さんは「野菜を切る」のです。桃さんは3歳児の桃組の園児の呼び名で、黄さんは4歳児の黄組、青さんは5歳児の青組です。それぞれの組では、豚汁作りの手順をあらかじめ先生がみっちり教え込んであります。青さんだとこんな具合かな。 「包丁を持たない方の手は、グーにしてにんじんを押えて下さい。パーでやると指を切っちゃうかもしれないですからねぇ
ポリモーフィズムの便利さは、前章でわかったかと思いますが、ここではオーバーライドとポリモーフィズムの関係を、もう少し詳しく見ていきましょう。 販売管理のアプリケーションを考えます。商品、顧客、仕入先、いろいろなクラスが必要になりそうですね。 スーパーのレジでは、商品に付いたバーコードでピッピッピと素早くお買い上げ金額を計算してくれます。バーコードは何桁かの数字(普通13桁)に対応していて、これでどの商品かがわかり、レジの中に記憶された、あるいはレジとつながったコンピュータに記憶された対応表から、単価を引っ張り出してきているわけです。商品名が同じ「野沢菜袋詰め」が、350円と500円との2種類あっても、バーコードが違えば別の商品だとわかります。 近頃はレジでカードを渡すと、お買い上げ金額でポイントを加算してくれて、年末などに還元してくれたりします。この場合も顧客のカードにバーコードが付いてい
すべてのクラスは、そのスーパークラスをたどっていくと、java.lang.Objectに行き着きます。ということはご先祖様であるクラスObjectの財産は把握しておかねばなりません。その中でも基本となるメソッドtoStringとequalsについて見ていきましょう。 java.lang.Object、つまり標準ライブラリのパッケージjava.langの中のクラスObjectが特別のクラスであることは、第14章でやりました。すべてのクラスのスーパークラスであるということは、そこで定義されているメソッドはどのクラスでも使えるということで、これらについて知っておく必要があります。また基本のメソッドequalsとtoStringについては、必要に応じてオーバーライドして、自分で作成したクラス用に書き換える方法も知らなければなりません。では第9章のクラスMyRectangleでこの二つのメソッドをオ
「読み物Java(基礎編)」は初心者向けです。さーっと読み進めてください。「合格Java(基礎編)」でSunのJava2認定試験(310-035)向けの模試の問題を少しずつ増やしていきますので、細かい文法はこちらでチェックしてください。 「読み物Java(ライブラリ編)」は標準ライブラリの中からよく使われるクラスを紹介していきます。
このページを最初にブックマークしてみませんか?
『www.lcv.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く