最近Javaについて勉強し始めたのですが、ポリモルフィズムについてぜんぜん分かりません。詳しく教えていただけないでしょうか?よろしくお願いします。

A 回答 (3件)

    • good
    • 0
この回答へのお礼

なんとなく分かったような気がします。迅速なアドバイスありがとうございました。

お礼日時:2001/06/04 15:22

締め切っていないということは、


まだ、分からないのでしょうか?

で、あれば、さらに参考になるようなサイトを探してみたいと思いますが。
どうなんでしょうか?
    • good
    • 0

ポリモーフィズム(polymorphism:多態性)とは、上位クラスにあるインタ


フェースを使うだけで、異なる処理をする下位クラスのインタフェースを呼んだ
ときと同じ効果を得られるしくみのことです。

例えば「図形」という上位クラスに、「長方形」「三角形」「円」という下位
クラスがあり、それぞれに面積を求めるためのメソッドが用意されていたと
します。そして実際に面積を求めるためには、通常ならばそれぞれの図形に応
じて処理を分岐してやらねばなりません。

しかしポリモーフィズムを用いると、「図形」という上位クラスにあるインタ
フェースを用いれば、「図形」インスタンスが勝手に「自分の図形は何なのか」
を判別し、それぞれの図形に応じた処理をしてくれるわけです。
つまり「図形」に対して「面積を求めよ」というメッセージを送りさえすれば、
そのインスタンスが「三角形」ならば「三角形の面積」が出てきてくれるので
す。
    • good
    • 0
この回答へのお礼

かなり分かりやすかったです。ありがとうございました。

お礼日時:2001/06/04 15:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJavaの実装方法?Eclipse?ポリモルフィズム?

Javaの実装方法はどうなのかの質問です。
Eclipseで解析しているのですが、解析は「宣言を開く」(F3)で進みながら解析しています。
以下のソースだと、yobidasiクラスのMethodXからMethodAにF3で飛ぶとOyaClassのMethodAにきます。
その後、MethodA内でMethodBにF3で飛ぶとOyaClassのMethodBに飛びます。
でも、実際の動きは、OyaClassではなくkoClassのMethodBに行きます。
この実装方法ってどうなのでしょうか?こういうものなのですか?
解析ミスに繋がらないかなと思っているんですが。
また、EclipseでkoClassに飛ばす方法はあるんでしょうか?
助言をください。

class yobidasi{
 methodX{
koClass cls = new koClass;
cls = methodA
 }
}
public class koClass extends OyaClass{
 protected methodB{
 }
}
public class OyaClass {
 public methodA{
methodB()
 }
 protected methodB{
//空メソッド
 }
}

Javaの実装方法はどうなのかの質問です。
Eclipseで解析しているのですが、解析は「宣言を開く」(F3)で進みながら解析しています。
以下のソースだと、yobidasiクラスのMethodXからMethodAにF3で飛ぶとOyaClassのMethodAにきます。
その後、MethodA内でMethodBにF3で飛ぶとOyaClassのMethodBに飛びます。
でも、実際の動きは、OyaClassではなくkoClassのMethodBに行きます。
この実装方法ってどうなのでしょうか?こういうものなのですか?
解析ミスに繋がらないかなと思っているんですが。
また、Eclipse...続きを読む

Aベストアンサー

とりあえず、コードを挙げるなら、まともに動くものをあげて欲しい。まともに動くようにするのに手間がかかると読む気がしなくなる。

まず、「MethodA内でMethodBにF3で飛ぶとOyaClassのMethodBに飛びます」これは正しい反応。なぜなら、メソッドを検索するときは、まずそのクラス内にあるものを検索し実行するのだから。

「実際の動きは、OyaClassではなくkoClassのMethodBに行きます」というのは、間違いではないが、おそらく頭の中で勘違いをしていると思う。なぜkoClassのMethodBにいくかといえば、そのインスタンスがOyaClassではなくkoClassだから。koClassのインスタンス内のメソッドで呼び出せば、同じkoClassにあるメソッドが呼び出されるのは当たり前。methodXでインスタンスを作っているが、

koClass cls = new koClass();

OyaClass cls = new OyaClass();

こう書き換えて試してみれば、今度はOyaClassのメソッドが使われるようになっているはず。

とりあえず、コードを挙げるなら、まともに動くものをあげて欲しい。まともに動くようにするのに手間がかかると読む気がしなくなる。

まず、「MethodA内でMethodBにF3で飛ぶとOyaClassのMethodBに飛びます」これは正しい反応。なぜなら、メソッドを検索するときは、まずそのクラス内にあるものを検索し実行するのだから。

「実際の動きは、OyaClassではなくkoClassのMethodBに行きます」というのは、間違いではないが、おそらく頭の中で勘違いをしていると思う。なぜkoClassのMethodBにいくかといえば、その...続きを読む

QJavaの勉強を始めましたが・・・

実は、独学でJavaの勉強を始めました。使っている本は「独習Java」ジョセフ・オニール著という結構分厚本です。そのほかに、「創るJava」という本も使っています。そして・・・、ついにインターフェースのとろろでつまずいてしまいました。独学でJavaを使えるようになりたいのですが、お薦めの本がありましたらどなたか教えていただけないでしょうか。自分はプログラマーというわけではないのですが、昔からプログラムに興味があって、できもしないのに色々プログラムの本を買っては、挫折しての繰り返しでした。でも、最近ようやくPHPが使えるようになり、意欲もわいてきています。でも、Java難しいです^^。お薦めの本がありましたら、どなたか是非ご紹介していただけないでしょうか。

Aベストアンサー

断然おすすめは、「やさしいJava」です。
自分が買ったのは、もう2年も前になりますが、
以前にJavaで挫折して、
「やさしいJava」に救ってもらいました。

立ち読みでもいいので、読んでみてください。
PHPなどのLLとは、違いJavaは、難しいですよね><;
がんばってください。

参考URL:http://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84Java-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4797319062

QJAVA EEの勉強を始めるには?

プログラミング歴(perl)半年のネットワークエンジニアです。
JAVA EEに関して三つ質問があります。

遠い将来、開発SEに転職するためにJAVA EEの勉強を始めたいと思っている
のですが、JAVA EEの勉強/実践を始めるには自前のサーバを立てる必要が
あるのでしょうか?

また、JAVA EEより前にJAVA SEを勉強しておく必要はあるのでしょうか?

最後に、JAVA EEでデータベースを利用する場合はORACLEを利用する
必要があるのでしょうか?

大分に見当違いな質問であるかもしれませんが、
ご回答、ご説明よろしくお願い致します。

Aベストアンサー

>遠い将来、開発SEに転職するためにJAVA EEの勉強を始めたいと思っている
>のですが、JAVA EEの勉強/実践を始めるには自前のサーバを立てる必要が
>あるのでしょうか?

外部のインターネットに常時接続をするような自宅サーバの構築とか、レンタルサーバの使用などは一切不要です。今お持ちのノートPCに、以下のフリーソフトをインストールするだけで、Javaの開発環境の準備は完了です。

・JDK→Javaの開発ツール。Java SEの勉強で使用。
・Eclipse→GUI形式でのIDE(統合開発環境)。現在は、こっちが主流。
・Tomcat→サーブレットコンテナ。Java EEの基本。
・MySQL(又は、PostgreSQL)→RDBMS。WinならMySQL、LinuxならPostgreSQLだが、実際にはどちらでも可能。
・Struts→MVCフレームワーク。仕事でどうしても必要なら仕方ないが、出来ればTomcatの方を先に終わらせておくべき。
・JBoss→EJBを用いた本格的なJava EE。Tomcatの後に、必要であればこちらの方も。

>また、JAVA EEより前にJAVA SEを勉強しておく必要はあるのでしょうか?

ホーム > トレーニング > 認定資格 > Java
http://suned.sun.co.jp/JPN/certification/javamain.html

上記サイトにもあるように、Sun Educational Servicesとしてはそのように推奨しています。確かに、型変換やコレクションなどはきちんとマスターしておくべきですが、マルチスレッドにファイル入出力などは必要になった時でもいいような気もするので、できる限り基本的な事は理解しておいた方がベターかと。

>最後に、JAVA EEでデータベースを利用する場合はORACLEを利用する
>必要があるのでしょうか?

無料のMySQLやPostgreSQLで十分です。ネットワークの勉強をする時にも、わざわざCiscoルータやCatalystスイッチを購入したりはせずに、シミュレータソフトを使いますよね。商用のソフト(Oracle Database,BEA WebLogic Server,WebSphere Application Server,・・)は何れも高額ですし、DBの利用に関しても最近ではHibernateなど、各種RDBMSの違いを吸収してくれるO/Rマッピングツールなどがあったりします。実際には、違いといってもほんのわずかですので、フリーで基本的な事が理解できていれば大丈夫です。

ただ、ベンダー資格に関しては、「Oracle Master」はCiscoと同じぐらい認知度が高いですので、できるだけ早めに取得しておく事が望ましいでしょう。

>遠い将来、開発SEに転職するためにJAVA EEの勉強を始めたいと思っている
>のですが、JAVA EEの勉強/実践を始めるには自前のサーバを立てる必要が
>あるのでしょうか?

外部のインターネットに常時接続をするような自宅サーバの構築とか、レンタルサーバの使用などは一切不要です。今お持ちのノートPCに、以下のフリーソフトをインストールするだけで、Javaの開発環境の準備は完了です。

・JDK→Javaの開発ツール。Java SEの勉強で使用。
・Eclipse→GUI形式でのIDE(統合開発環境)。現在は、こっちが主流...続きを読む

Qjavaを学び始めた方や他のプログラムからjavaを

学んでいる方に聞きたいのですが
自分は「明解Java入門編」という本で
勉強しています。
同じ本で学習されている方がいれば
聞きたいです。
この本は初心者には難しくないですか?
また、本で出てくる問題を全部解けないと
現場では通用しないですか?
内容は濃い良い本とは思いますが
分からないものが多すぎて前に全然進みません
熟練者の方や現場でやっている方も
意見下さい。

Aベストアンサー

>また、本で出てくる問題を全部解けないと
>現場では通用しないですか?

厳しい言い方ですが、入門書の練習問題が解けないようでは、現場では使い物にならないでしょう。でもこれから解けるようになればいいんです。

「明解Java入門編」が初めて読む入門書であれば、基本的には全部解くべきだと思います。ただし、自分には関係ないと思う問題は飛ばしてもいいでしょう。

ある程度力がついてきて、「解こうと思えば、必ず解ける。」くらいの自信があれば、問題をとばすのも有りだと思います。

もちろん問題が解けることはプロの必要条件であって、十分条件でないことは明らかです。覚えるべきことは入門書の何十倍もありますから。

>内容は濃い良い本とは思いますが
>分からないものが多すぎて前に全然進みません

本を理解するためにはサンプルを手打ちで入力することが大切だとよく言われます。確かにその通りですが、ただ打ち込むだけでは、効果が少ないと思います。サンプルを作り替えてみることです。「ここをこう書き換えたらどうなっちゃうんだろう。」などと、わくわくしながらやってみることです。頭でっかちで、何も試さず悩んでるだけではプログラマはできませんよ。

私なんか実験のために書いたけど、結局不採用になり、いまではガラクタフォルダ行きになってしまったソースファイルが山ほど有りますよ。費やした時間も半端じゃありません。でも、ものすごく勉強になったし、自分の血肉になったので、今ではいい思い出です。

本でわからないことをWebで検索して調べるのもいい方法でしょう。これができるのはプログラマにとって重要な能力だと思います。それでもわからないなら、ここでどんどん聞けば良いじゃないですか。ここで答える人たちも、勉強になるから答えているわけです。何も遠慮は要りませんよ。

>また、本で出てくる問題を全部解けないと
>現場では通用しないですか?

厳しい言い方ですが、入門書の練習問題が解けないようでは、現場では使い物にならないでしょう。でもこれから解けるようになればいいんです。

「明解Java入門編」が初めて読む入門書であれば、基本的には全部解くべきだと思います。ただし、自分には関係ないと思う問題は飛ばしてもいいでしょう。

ある程度力がついてきて、「解こうと思えば、必ず解ける。」くらいの自信があれば、問題をとばすのも有りだと思います。

もちろ...続きを読む

QJavaを仕事で使うには、Javaだけ勉強したのではダメ?

プログラマーの仕事に就きたいと思っています。
求人誌やスクール情報誌を拝見しますと、現在、言語の中ではJavaが需要が多いようですね。

先日、あるパソコンスクールへ見学に行った際に言われたのですが、Java言語でプログラマーになるならHTMLなど他の言語(Web系言語とういうのでしょうか?)の知識がないと実務で通用しないとのことでした。

スクールとしては、沢山勉強してもらった方が収入も増えるわけですから多少のセールストークをするのはやむを得ない部分もあるかと思っています。

実際のところはどうなのでしょうか。Javaだけを勉強したのでは、やはり実務に就きにくかったり、又実務に就けても仕事がしずらいのでしょうか。

現在の私のスキル(というほどのものではありませんが)は、ブラインドタッチでの入力とワード・エクセルが多少解るという程度です。今のスキルからJavaだけ勉強してプログラマーになるのは無理なのでしょうか。

ちなみに入社を目指している会社は、アルバイトか契約・請負・派遣社員待遇で、プログラム知識ゼロの者はお断りだが実務未経験者(知識はある程度有)なら受け入れも検討といった感じのところです。
そのような会社なら、まさか最初から完全な知識は期待していないですよね?もちろん、いずれはOS・ハードなどの知識やJabaに関連する言語も勉強する必要があるとは思っています。

正直、なるべく早く実務経験者になりたいというのが本音なのです。Javaのみの勉強で、不十分ながらもとりあえずはプログラマーの職に就くことは可能でしょうか?
もし、それが不可能でしたら、最低限Java以外に知っておかなければいけないことは何でしょうか。

どなたか宜しくお願い致します。

プログラマーの仕事に就きたいと思っています。
求人誌やスクール情報誌を拝見しますと、現在、言語の中ではJavaが需要が多いようですね。

先日、あるパソコンスクールへ見学に行った際に言われたのですが、Java言語でプログラマーになるならHTMLなど他の言語(Web系言語とういうのでしょうか?)の知識がないと実務で通用しないとのことでした。

スクールとしては、沢山勉強してもらった方が収入も増えるわけですから多少のセールストークをするのはやむを得ない部分もあるかと思っていま...続きを読む

Aベストアンサー

みなさん、長く書いてありますね。私にはかけないので。。。

開発っていっても色々あります。
Javaなら、Web系が中心となるので、Java全体というよりもServlet、JSPをまず知る必要があります。

その次に、HTMLの基礎的な知識、SQLが必要です。

この4つがしっかりしていれば、かなりいいです。
一番いい方法は、書店などでJSPやサーブレットとデータベースが連携してある本を購入してやってみると良いです。

わたしも25で未経験で業界入りしました。スクール(ほとんど意味ない)と独学でやりました。すんなりと入れ、経験者よりも当初から仕事ができました。。。

そのかわり、独学でやっていたとき、書籍代だけで、6,7万かかり猛烈に勉強しました。

実際、入社してみることをお勧めします。自分でやるよりも的を絞った勉強法がわかりますし、余分なことをやらなくてよいです。

Javaと決めたらWeb系だけ勉強すればよいので、思ったよりは楽です。


人気Q&Aランキング

おすすめ情報