忍者ブログ
へなへな元文系PG⇒今は何故かWebデザイナーの補佐のブログ。主にネット上のコンテンツを参考に勉強中。その備忘録的ブログです。
2025/04/28 (Mon)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2009/05/28 (Thu)
今日も今日とてJavaです。

*----------------------------------------------------*
Java入門3   キーボードからの入力
http://www.asahi-net.or.jp/~YF8K-KBYS/newjava3.html
*----------------------------------------------------*

*****************************************************************
//Hello2.java

        上記サイト様をご参照ください。

*****************************************************************
//Sum.java

        上記サイト様をご参照ください。

*****************************************************************

ここらへんはまぁ、なんとなくやってることは分かります。
サイトの解説も分かりやすいので BufferedReader についても把握できました。
インポートと「throws IOException」についても調べるまでもなく解説されているのでこの回は問題なさそうです。
しかし、これで終わるのも簡素過ぎなので、「Java.io.*;」についてちょっと調べてみました。

まず、インポートっていうけどどこから引っ張ってきてるの?
っていうのがすごーく気になります。
ググル先生に聞いてみました>「Java インポート どこにある」
んでヒットしたページが↓です。

*---------------------------------------------------------------------*
【普段、importするクラスはどこにある?】
http://okwave.jp/qa4939561.html
*---------------------------------------------------------------------*

JDKフォルダ の中の libフォルダ にあるってことで探してみました。
が、libフォルダの中にはない。
じゃあどこにあるんだろう、と探したところ、「src.zip」なるものを発見。
「Eclipse」触ったときに「src」フォルダの中に色々とあったような覚えがあるので解凍してみることに。

    ****解凍****
    
ありました! src>java>ioと無事目当てのフォルダと、ファイルを見つけることができました。
先達ありがとう。

さて、ここで調べたかったのは「IOException」について。
今の段階でちんぷんかんぷんでもどんな処理をしているかだけでも見ておきたいんです。

    >「throws IOException」のIOExceptionは、「入出力時の例外」というものを表しています。throwsは、「投げ出せ」という程度の意味なのです。

という解説の通りにいくと、「IOException」はエラーに関する処理を行っているんでしょうか?
みてみます。

「src\java\io\IOException.java」
*********************************************************************
/*
 * @(#)IOException.java    1.21 03/01/23
 *
 * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package java.io;

/**
 * Signals that an I/O exception of some sort has occurred. This
 * class is the general class of exceptions produced by failed or
 * interrupted I/O operations.
 *
 * @author  unascribed
 * @version 1.21, 01/23/03
 * @see     java.io.InputStream
 * @see     java.io.OutputStream
 * @since   JDK1.0
 */
public
class IOException extends Exception {
    /**
     * Constructs an <code>IOException</code> with <code>null</code>
     * as its error detail message.
     */
    public IOException() {
    super();
    }

    /**
     * Constructs an <code>IOException</code> with the specified detail
     * message. The error message string <code>s</code> can later be
     * retrieved by the <code>{@link java.lang.Throwable#getMessage}</code>
     * method of class <code>java.lang.Throwable</code>.
     *
     * @param   s   the detail message.
     */
    public IOException(String s) {
    super(s);
    }
}

*********************************************************************


……あぁ、やっぱりちんぷんかんぷん。
うん。わかっていたけどもちんぷんかんぷんですね。
「error」「message」の単語があるのエラーメッセージを表示しているのかな。
>error detail message
「detail」が「詳細」などの意味があるので、「エラー詳細内容」みたいな感じでしょうか。

ここでよくわからない書き方を発見。
---------------------------------------------------
    public IOException() {
    super();
    }
---------------------------------------------------
        と
---------------------------------------------------
    public IOException(String s) {
    super(s);
    }
---------------------------------------------------
なんでわけるんだっけ……?
昔勉強したはずなのに理由が思い出せないや。
まぁそのうち思い出すだろう。

あと、何回教えてもらっても分からないのが↓

------------------------------------------------------
public class IOException extends Exception {
    ~略~
}
------------------------------------------------------
※src\java\lang\Exception.javaのコードは割愛

えーと、これは「IOException」クラスが「Exception」クラスを拡張しているってことでいいんだっけか??
てかそもそも拡張ってなんだ。
またググル先生に聞いてみた>「Java extendsとは」

*------------------------------------------------*
extends (えくすてんず)
http://www.okapiproject.com/java/java_ref/foundation/extends.htm
http://www.okapiproject.com/java/java_ref/index.html    
*------------------------------------------------*

>簡単な例を言うと、「ラジオカセット」クラスを継承して、「CD」機能を追加した「CDラジオカセット」クラスを作る。ということになります。


ほう、わかりやすいな。
てことは、「Exception」クラスを継承して「IOException」クラスでなんか追加してるよってことか。
……と読み続けたらまたよく分からなくなった。
例のスーパークラスもサブクラスもやってることは同じだよね??
わざわざ継承・拡張指定する必要があるの???
さっきの「ラジオカセット」クラスと「CDラジカセット」クラスの例を思い出してみる。
「カセット」    を「再生」
「CD」        を「再生」
みたいな感じだからだろうか。
あ、そう考えると

>このようにスーパークラスを継承したサブクラスを new してインスタンスを作成するとサブクラスだけではなくスーパークラスをも呼び出すことが可能になります。

てことの意味がわかる!
なるほどねー!
とりあえず「extends」の大まかなところは理解できた!

PR
この記事にコメントする
your name:
title:
font color:
mail:
URL:
comment:
pass:   Vodafone絵文字 i-mode絵文字 Ezweb絵文字

:secret?   

※secret を設定した際、「管理人の了承後に表示されます」と出るのは仕様です。ご了承ください。
trackback
この記事にトラックバックする:
初心者が書いているためブログ内のコードには効率の悪いもの、誤った文法も含まれます。
ご指摘・アドバイス大歓迎です。
オススメ記事
ブログ内検索
リンク
 Use OpenOffice.org
ランキング
BlogRanking
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
最新CM
最新TB
プロフィール
HN:かがみ奎/かがみけい
性別:女性
職業:PG見習い
趣味:読書
自己紹介:
大学浪人中退、フリーターを経てIT業界に。
今はLotusNotesのエンジニア目指してる文系女子。
バーコード

★系ぷろぐらま!
Blog Produce : かがみ奎/かがみけい / Template design : Fomalhaut
[PR]忍者ブログ / [PR]