• ベストアンサー

SJC-P の勉強

Javaの開発に携わって1年余りの初心者ですが、 SJC-Pの取得を目指して勉強中です。 2つばかりお聞きしたいのですが、  ○インナークラスの使い所。  ○サブクラスのオブジェクトを   スーパクラスのオブジェクトで宣言する、   事の意味 について、具体的な例などお教え下さい。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

○サブクラスのオブジェクトを、スーパクラスのオブジェクトで宣言したものに代入して使うことの意味 サブクラスを統一的に扱える ありがちな、しょーもないサンプル ---------------------------------------------------------------- abstract class Animal { abstract void voice(); } class Lion extends Animal { public void voice(){ System.out.println("がぉ~"); } } class Horse extends Animal { public void voice(){ System.out.println("ひひ~ん"); } } class Elephant extends Animal { public void voice(){ System.out.println("ぱぉ~ん"); } } class Sample { public static void main(String args[]){ Animal an[]; an = new Animal[3]; an[0] = new Lion(); an[1] = new Horse(); an[2] = new Elephant(); for(int i=0; i< an.length;i++){ System.out.println(an[i].getClass()); an[i].voice(); } } }

jun_j
質問者

お礼

遅くなりましてすみません。 判りやすい例を挙げていただき、 よくわかりました。 有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

>○インナークラスの使い所。 BLUEPIXYさんのNo1の例は非常に参考になるいい例だと思います。しかし実際には純粋なJavaプログラマーはインナークラス系を使う事は非常に少ないです。 多言語から流れてきたプログラマーに1枚のファイルに複数のクラスを作るという人が多いように感じます。 インナークラスを嫌う開発者が開発ポリシーとしてインナークラスを使ってはならないと明示するプロジェクトもあります。 そういう意味では使いどころはあるのですが、実際にはまず使わないという認識を持っていてもいいと思います。

jun_j
質問者

お礼

遅くなりましてすみません。 有難うございます。 余り使わないのですね。 インナークラスもしっかり覚え、 現場で見た時に、慌てないようにしたいと考えています。

全文を見る
すると、全ての回答が全文表示されます。
  • ac_2000
  • ベストアンサー率10% (9/87)
回答No.3

直接の回答ではありませんが。 SJC-Pには「使い所」や「意味」を知らなくても、文法をしっかり押さえておけば合格できますよ。逆に、初心者レベルでは使わないような文法や複数言語使い分けていると混乱しがちな文法など細かいところもしっかり押さえておきましょう。

jun_j
質問者

お礼

遅くなりましてすみません。 ご回答有難うございます。 よく解るのですが、 勉強の中で疑問に思った事と、 試験中迷った時に意味を知っていた方が良いと思い、 質問させてもらいました。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

○インナークラスの使い所。 そのクラスでしか使わないようなクラス 良い例かどうかは、わからんけど、以前に作ったプログラム。 普通に文字をソートしたら、大文字が先に来るが、小文字が先に来るようにソートするためにコンパレータを作成している。 このような、ココだけでしか使わないクラスのインスタンスが必要になるために無名クラスで作成している。 ちなみに、インナークラスにしても、同じ。 また、MyCharSort クラス自体にコンパレータインターフェースをインプリメントしてインスタンスを作成してもOK。 ---------------------------------------------------------------- //compareを無名クラスで使う import java.util.Arrays; import java.util.Comparator; //import java.lang.Character; //[A-Z]は[a-z]より大きい class MyCharSort { public static void main(String args[]){ char inpData[] = {'A','b','z','Q',' ','R','Z','H','A'}; Character data[] = new Character[inpData.length]; for(int i=0;i<inpData.length;i++){ data[i]=new Character(inpData[i]); } Comparator<Character> cmp= new Comparator<Character>(){ public int compare (Character ch1, Character ch2) { char c1=ch1.charValue(), c2=ch2.charValue(); if(Character.isUpperCase(c1) && Character.isLowerCase(c2)) return ( 1); if(Character.isLowerCase(c1) && Character.isUpperCase(c2)) return (-1); return (ch1.compareTo(ch2)); } }; Arrays.sort(data, cmp); for(Character c : data){ System.out.println(c.charValue()); } } }

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JAVAプログラムの勉強なら、SJC-PやSJC-Aの勉強が良いですか

    JAVAプログラムの勉強なら、SJC-PやSJC-Aの勉強が良いですか? 業務でJAVAのプログラムを覚える必要がでてきました。 プログラムはやってこなかったです。 CCNAやLPIC系統ばかりでした。 ただ漠然と、市販のテキストを見て覚えるより、 資格取得などの目標があったほうが、気持ちが違うかと思いまして。 SJC-PやSJC-Aの資格合格する程度の勉強をがんってもJAVAプログラムは身につきますか? (※絶対的に業務経験が必要なのはわかりますが、それはおくとして) 勉強期間は約2ヶ月くらいです。 最適な勉強方法ってなんでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • SJC-Pについて

    SJC-P取得のため勉強しています。何年か前に購入した「サン技術者認定資格教則本Java2」という本で勉強しているのですが、amazonのレビューを見てみると「間違いだらけ」と叩かれています。 で、その本に載っていた問題に疑問があります。次のうち正しいのはどちらかという問題です。 A同じ名前、引数をもつメソッドがあった場合、オーバーロードされる B継承を定義しない場合Objectクラスが親クラスとみなされる 正解はAとなっていましたが、これはBが正解ではないのでしょうか?同じ名前、引数をもつメソッドはオーバーライドですし、クラスに対して何も継承しない場合はコンパイラによって自動的にextends java.lang.Objectが追加されると思うのですが・・・

    • ベストアンサー
    • Java
  • SJC-A

    SJC-Aの取得に向けて、勉強しようと思っています。 色々な学校にはSJC-P合格保証講座と言って 20万コースなどがあるのですが・・ SJC-Aなら独学で取得が出来ますでしょうか? ある程度の知識はあるのですが(*_*; 本屋さんに行っても、SJC-A講座と言う本がないので どうして勉強して参考にすればいいのか分りません?? 過去問とかがあれば良いのですが・・ Javaのホームページで受験申し込みのページを見ましたが、 試験日とか時間は記載されていませんでした? Java資格について詳しくお分かりになる方がいらっしゃったら、教えて頂きたいのですが 宜しくお願い致します!!

    • ベストアンサー
    • Java
  • SJC-P・CCNA・LPICを取得したいのですが…

    学校でSJC-P・CCNA・LPICの資格を取得するための勉強をしています。 上記3つの資格を来年中には取得予定なのですが、学校では3つの授業を平行して行っています。 一応、来年の後期に希望者を募ってみんなで受験、という形を取るそうなのですが、自分で勉強をして、みんなより先に受験してもかまわないそうです。 私は上記3つの資格+できれば来年中にソフト開発技術者の資格も取得したいのですが、このような場合、どのように勉強するのが一番効率が良いでしょうか? 平行して勉強ではなく、自分で勉強してSJC-Pを取得後、次はCCNAの勉強をして取得…というふうに、ひとつずつ勉強→取得をしていった方が良いでしょうか? また、ひとつずつ勉強するとすれば「SJC-P・CCNA・LPIC・ソフト開発技術者」どれから勉強すればよいですか? 難易度はどれが一番低いですか? また、上記4つの試験は実際持っていて役に立ちますか? 質問だらけですが、よろしくお願いします。

  • Java認定資格(SJC-P/310-035)の問題集について

    現在Java認定資格(SJC-P/310-035)を取得しようと勉強中ですが、 問題集についてわからない事があります。 Platform5.0 対応という問題集と書いてない問題集があるのですが、 どちらがいいのでしょうか?また良い問題集が御座いましたら教えて下さい

    • ベストアンサー
    • Java
  • ■Java 資格 SJC-wc の受験を考えているのですが・・■

    以前 sjc-pを取得した経験があるので、 今度は SJC-WCの資格の勉強を始めようと思いまして、書籍を購入したのですが書籍の試験番号を見ると 310-080 と記載があります。 しかし、sunのサイトで調べると試験番号が310-081と記載があります。 http://suned.sun.co.jp/JPN/certification/compdetails.html SJC-WCって何種類か存在するのでしょうか。。疑問です。 Javaのバージョンによって試験の種類があり試験番号がちがったりするのでしょうか? SJC-WCを取得する為にこの本で勉強をスタートさせていいものか悩んでます・・・・ 詳しいかた教えてください。 ◆購入書籍 http://ec.nikkeibp.co.jp/item/books/P81710.html

  • javaで、オブジェクトを生成しないとメソッドは使えないんですか?

    javaで、オブジェクトを生成しないとメソッドは使えないんですか? そのように習ったのですが、サブクラスのメソッド定義の中で、オブジェクトを生成せずにスーパークラスのメソッドを使える例(下に簡単に書きました)をみて、分からなくなってしまいました。 おしえてください、よろしくおねがいします。 ------------------------------- class superclass { method_a(){ ~~~~ } } --------------------------- class subclass { method_b(){ super.method_a(); }

    • ベストアンサー
    • Java
  • どこまで覚えればいいの?SJC-WC試験

    こんばんは。 javaの資格ですが、こちらに質問させていただきました。 今度、お仕事で、webアプリを担当することになりました。 なので、お勉強もかねて、 SJC-WC(Sun Certified Web Component Developer)を受験しようと思っています。 (SJC-Pは以前に取得済みです) 学習書を買ってきて、すこし読んでみたのですが、 HttpServletRequest、HttpServletResponse、 さらにはServletに関するクラス、インターフェイス、メソッドがたくさん出てきて、 とまどっています。 もちろん全部覚えられればよいのですが、数が多すぎて、覚えきることが出来ません・・・。 これって、すべて覚えないといけないのでしょうか? それとも、学習書に出ているような代表的なものを覚えればよいのでしょうか? 練習問題を見ると、ときどき、「戻り値はなに?」という問題があります。 ってことは、メソッドのシグネチャまできちんと覚えないといけないのかな? と不安になっています・・・。 webアプリのことを学習するのが目的なんだし、 いちいち全部覚えるよりも、 シグネチャも代表的なメソッドだけ覚えればいいのかな、とも思っています。 細かく覚えなくても大丈夫なのか、どのように勉強されたのか、 受験された方の、ご意見やアドバイスを聞きたいです。 宜しくお願いします。

  • インスタンス化について(ポリモーフィズムについて)

    Java初心者です。 Javaの書籍で、ポリモーフィズムを説明している箇所において オブジェクトを生成する際に、以下のような書き方をしているのを見ます。 1.----- スーパークラス名 オブジェクト名 = new サブクラスのコンストラクタ名(); -------- 上記は、 何を実現する為に、左辺と右辺のクラス名とコンストラクタ名を変えているのでしょうか? (もちろん詳細は実際に書かれたメソッドや変数によると思いますが、一般的な話として。) また併せて、 2.----- サブクラス名 オブジェクト名 = new サブクラスのコンストラクタ名(); ------- と書いた時とでは、使用(アクセス)出来るメソッドや変数、 生成されたオブジェクトの中身が、どのように変わってくるのでしょうか? 2.の方法では、何が実現出来ないのでしょうか? 教えて下さい!

    • ベストアンサー
    • Java
  • JAVAの勉強にかかる時間

    来月からJAVAを勉強するためにスクールに通いたいと思っています。 それで私は早く転職をしたいので昼間クラスを希望しました。 そうしたらスクールの方では初心者にはゆっくりやれる夜間か週末クラスを勧めて来ました。 それで昼間部では厳しいですかと質問したら 「基本的に昼間部は業界経験者のために設定がしてある。 全く異業種の方で2ヶ月で転職をされている方もいるので無理とは言い切らないが ペーパーライセンスにならないためにもゆっくりの方がいいのではないか」と返事をもらいました。 だったらスクールの言う通りにすればいいじゃないかと思われるかもしれませんが 私は出来るだけ早めに転職を実現させたいと思っております。 昼間であれば早ければ2ヶ月でSJC-PとあとSQLの勉強をして就職が可能らしいのですが 夜間を希望すると年明けまで授業があるので就職するのは来年の4月になってしまうと思います。 なので出来れば昼間部で受講をしたいと思っているのですが 実際に全くの初心者が1ヶ月でSJC-Pを取得してもう1ヶ月でSQLの資格を取るのは厳しいでしょうか? 経験者の方アドバイスをよろしくお願い致します。

    • ベストアンサー
    • Java