• ベストアンサー

Javaの授業において先生のおっしゃっていることがわからない

毎日、曜日に関係なく10時間、昼は専門学校、夜はPCスクールに 通ってJavaを勉強して4ヶ月たちます。 しかしながら、先生方の説明そのものが理解出来ません。 例えば、継承する、実装するというのは、あるクラスを利用するという 意味でしょうか。また、呼び出すというのは、日常会話では、 校長先生が生徒の親を呼び出したとか、呼び出しというボタンを押すことで使いますが、 メソッドやコンストラクタを呼び出すという意味がわかりません。 日本語なのに、教科書に書かれていることも、先生方の 説明も意味が通じません。 そして、ある時は変数といったり、インスタンス名といったり、 オブジェクトといったり、フィールドと言ったり、言い方がいつも 変わってしまいます。 AはBを見てるだけという説明も絵ではわかりますが、 実際にコードでどうあらわすかわかりません。 なんとかしたいのですが、何かアドバイズを頂きたく御願いします。 簡単なコードでよいので読めように、そして書けるように なりたいのです。このまま学校もやめてしまいたくありません。 どうか宜しく御指導下さい。御願い申し上げます。

  • Java
  • 回答数8
  • ありがとう数10

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.8

そのPCスクール、対象者が、あなたのような「プログラミング自体も初心者」向けではなく、「プログラミングはできるけど、Javaは初心者」向けなのかもしれませんね。 参考書にも上記の2種類があるので、前者を選ぶといいのですが、なかなか区別がつかないのが現状です。 プログラミングで使われる技術用語は、日本語っぽいけど日本語ではありません。 業界用語とかネット用語とか、一部の人達にしか通用しない言葉ってありますよね?あれと同じです。 コンピュータの動作や状態を、それと似た概念の言葉に当てはめたものです。「日本語」で理解しようとしてもわからないのが当り前です。 それに、大抵は英語の用語を訳したものです。そこに若干のニュアンスの違いが入っていることもあります。 例えば、「呼び出す」 「関数を呼び出す」とは、今実行中のプログラムから、一時的に別のところで定義されている関数へと実行を移すこと(そして、終ったら元のプログラムへ戻ってくること)を意味します。 この様子が、仕事中の「プログラム」氏が、「おーい、関数君、ちょっと来て、コレやってくれんかね」と呼び出す様子に似てる、ということで「呼び出す」という言葉を当てはめたのです。 ついでに、関数に引数を指定するのを「渡す」と言いますが、これも「資料はこれね」と渡す様子ですね。

NEWYORKERS
質問者

お礼

「世界一やさしい」とか「超入門」と書かれていても、やっぱり私には難しいと思う本ばかりでした。2種類あるとは・・・・・。 *****『日本語っぽいけど日本語ではありません』 そうなんです。 *****『英語の訳に若干のニュアンスの違いが入っている』 本当にそうなんです。だから、どんなに繰り返し説明されても理解出来ないんです、その言い回しが。 でも、やっと今「呼び出す」と「渡す」がはっきりわかりました。 何を言っていたのかやっとわかった事が、すごく嬉しいです。 「ちょっとやってよ」と呼んでたんですね。 いったいどこへ(誰に)何故渡すんだと、もう半ば怒りに近い感情でいっぱいでした。「資料はこれね」と渡す様子・・これなら、なんの引っかかりもなくわかりました。 どうして、学校の先生はそう言ってくれないのでしょうか。 この一言で、私は充分わかったのに、大変悔しいです。 他にも山ほどあるのですが、まず自分で充分に考えてそれでもわからないものだけ質問しようと思っておりますので、 どうか、今後とも宜しく御指導頂きたく御願い申し上げます。 引数に渡すという説明が感覚的に琴線に響いて自分の中でしっくりきます。 ご回答者様が現在、先生として御活躍されていらっしゃる方でしたら、そこへ転校したい程です。 心から感謝しております。ありがとうございました!!

その他の回答 (7)

回答No.7

コンピューターにやらせたいことを、まず日本語で書けないと、プログラムなんて書けるわけがありません。まずはJavaのことを忘れて、日本語で書いてみればいかがでしょう。 たとえば「学校まで歩く」なら・・こんなふうにどんどん細かくしていくのです。(そのうち、一行一行がjavaの命令で書けるまで細かくなっていきます。) =>交差点まで歩く、交差点を左に曲がる、横断歩道を渡る・・・ => 交差点に着くまで{  一歩前進する } 左に曲がる 横断歩道の信号が赤の間、または車が来ている間{  待つ } 横断歩道を渡る

NEWYORKERS
質問者

お礼

言われてみると、私は一度もやらせたいことを考えたことがありませんでした。 エクセルVBAを習っていたときは、「大量のコピぺを自動でやってほしい」等、作成したいものがたくさんありました。 しかし、Javaだと、せいぜいコマンドプロンプトに文字や数字を表示させる以外に使い道がわからず、今の段階では便利に感じる事はありません。 意味不明のサンプルを丸写しすることだけに終始していました。 ちょっときっかけがつかめた気がします。 ご回答を有難うございました。

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.6

他のプログラミング言語は使用できますか? Java だけでは理解できなかったものが、他の言語を習得することで何が言いたかったのか理解できるようになることが多いですよ。 また、Java 関係の資格を取るトレーニングでも長くて1週間程度ですから、4か月かかってもわからないということは、教え方に問題があると思います。 講師が用語を理解しないまま説明していたり、わかりやすくしようとして返って理解を妨げる表現になっていたり・・・

NEWYORKERS
質問者

お礼

Javaが始めてです。 確かに他の言語が既に出来る方は授業についていけてる様に見えます。 (中には居眠りされてる人もいますが)先生がテキストを朗読されて いる時間が長いので、集中力の欠如もひとつの原因かもしれないと 思いました。 ご回答ありがとうございました。

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.5

Java以前にプログラミングの初歩の段階でつまずいているように思えます。 プログラム言語は呼び名は『言語』ですが、日本語や英語などの『言語』とは意味合いが全く異なります。 コンピュータと言う【機械】を動かす為の歯車の組み合わせがプログラムであり、プログラムを構成する歯車の形がJavaであったりCであったりするだけです。 自動車がレーシングカーやダンプトラックと形状や用途が大ききく違っても基本構造は変わらないように、コンピュータも基本構造は変わらず、それを動かす歯車も基本的な構造はJavaでもCでもBASICでも同じです。 個々の歯車の組み合わせを覚える事には意味がありません。 カローラの作り方を暗記してもセレナは作れません。 全体の構造を理解して役割と意味を捉えることが必要です。 自動車であればタイヤとエンジンとハンドル、アクセルブレーキはどんな自動車であっても存在します。 形状や構造が異なっていてもこれが無ければ自動車ではありえません。 プログラムも同じで最低限の構成部品は存在します。 それだけ覚えておけば、どんなプログラムにも応用が出来ます。 ※逆にこの基本が理解できないと何をやっても無駄です。 英語学習者が日本語で呼ばれる関係代名詞や現在完了形などの文法用語に惑わされるようなもので、プログラミングにも用語自体には深い意味はありません。 特にJavaなどのオブジェクト指向言語の場合には上位概念のオブジェクト指向デザイン(プログラムではなくもっと上位の業務フローとかを表現するための考え方)の用語が混じっていて、あたかも人間が役割を分担しているような表現をしますが、プログラムでは概念的な区切りをつけるだけで実際には連続して動きます。 用語は覚えていないと人に説明するときに困るだけで覚える事自体には意味はありません。 概念としてはインスタンスもオブジェクトも同じものです。 プログラム言語は 1) 手続き言語  順番に命令を実行するだけ、小さなプログラムなら問題ないけど複雑なプログラムになると全体を把握するのがとっても難しくなる。  FORTRANやBASICがこの種類に属する 2) 構造化言語  プログラムを分割して階層構造を持たせる事で、複雑なプログラムにも対応出るように【改良】した。  PascalやC言語がこの種類に属する 3) オブジェクト指向言語  データとデータを操作するプログラムのセットを作って部品化できるようにし、複雑なプログラムの改造をやりやすく【改良】した。  JavaやC++がこの種類に属する このように進歩してきましたが、置き換わったわけではなく改良を重ねてきただけですので、Javaを理解するには手続き型処理、構造化を理解しなければ全体が分かりません。 逆にオブジェクト指向は理解していなくても手続き型処理を理解していれば不恰好ではありますがプログラムは作れます。 一旦Javaから距離をおいて手続き型のBASIC(VisualBasicではなくN88BASIC)で幾つかプログラムを組んでみてはどうでしょうか? Javaをある程度でもやってたならBASICは30分もあれば理解できるはずですので、そう大きな回り道にはならないと思います。

NEWYORKERS
質問者

お礼

実はお恥ずかしい話ですが、プログラム言語と外国語が同じとは思っていませんが、『言語』という単語のせいか、最初に発明した人が機械語そのものを英語(人間の言葉)で作れば良かったのにと思っていました。ご回答のおかげでこの妄想はなくなりすっきりしました。 ご回答を何度も繰り返して読むほどに、「そうなんだ」と感じ、わかってくるのを実感出来ます。 御指導有難う御座いました。

  • tom11
  • ベストアンサー率53% (134/251)
回答No.4

ちょっと、どうなるかなと思い!!! コードにしてみました。 class seito { // フィールド 生徒の名前 String name; //コンストラクタ 生徒を作った時に最初に呼び出される関数 public seito(String name) { this.name = name; } } public class koucyou { // フィールド 校長先生の名前 String name; // コンストラクタ 校長を作った時に最初に呼び出される関数 public koucyou(String name) { this.name = name; } /** * @param args the command line arguments */ public static void main(String[] args) { // 校長先生の作成 koucyou kname = new koucyou("小泉"); //呼び出す生徒の作成 seito s1 = new seito("一郎"); //校長先生が生徒を呼び出すメッソドを呼び出す kname.yobidasi(kname,s1); // TODO code application logic here } //校長が、生徒を呼び出すメッソド、、、関数 private void yobidasi(koucyou k, seito st){ System.out.println("校長の"+ k.name+"です"); System.out.println(st.name+"君 早く校長室に来たまえ"); } } 実行結果 校長の小泉です 一郎君 早く校長室に来たまえ ちょっと、コードにしてみました。 日本語が出来れば、英語に翻訳するように javaに翻訳すると考えても、いい様な 気もします。

NEWYORKERS
質問者

お礼

私の投稿した文が、コードになってしまってびっくりです。 不思議なものを見た様な感じがして、私にも、いつか書けるようになるんだろうかと思ってしまいます。 楽な道なんてないのだから、元気を出して、とにかく、投げ出さない事を目標に頑張ります。 本当に御指導有難う御座いました。

  • tom11
  • ベストアンサー率53% (134/251)
回答No.3

折角、この様な場があるんですから、 どんどん、質問してみたら??? >校長先生が生徒の親を呼び出したとか、呼び出しというボタンを押すことで使いますが、 >メソッドやコンストラクタを呼び出すという意味がわかりません。 自分なりの考えがあって、意味が解らないなら、 日本は、広いので、一人くらいは、答えてくれるかも 自分が、理解が出来る、考え方を探すのも良いことのような インターネットのない時代は、 自分の、理解できる書籍を探すしかなかったし 時間も、金もかかった。 メソッドというから、解らないのかも 正確な、言葉じゃないのかもしれませんが、 関数で良いのでは 呼び出すも、ボタンを押すで、駄目なのかな?? 校長先生という、プログラムには 生徒を呼び出すという、関数があります。 生徒を呼び出すためには、呼び出し関数を利用する必要が あります。そこで、インターホン(例えばボタンとかで) 呼び出し関数を、実行させます。 これが、呼び出しメッソドを呼び出すということかな? 変な、表現かな??? 結局、解らなかったら、わかる表現を探すしか 無いような気もします。 時間は、かかりますが。

NEWYORKERS
質問者

お礼

小学生の頃、国語の教科書に出てくる言葉がわからなくて 国語辞典を引くと、その中に知らない単語があって、 もっとわからなくなっていた事を思い出しました。 関数や実行と言ってもらうと自分にはすごく自然に感じます。 ありがとうございます。

回答No.2

自分は高校生の頃に趣味でやっていた頃から数えればプログラミング歴は10年以上になります。オブジェクト指向についてきちんと学んでから5年くらいでしょうか。 No.1さんの仰っているように、まずは使うこと。 失敗や間違いを恐れずに話たり書いたりすることなしに語学の学習はできません。 小さくて他人から見ればくだらないプログラムでもいいので自分で1から手を動かして作ることですね。また、「日本人に英作文は無理だ、英借文をすべきだ」という誰かの言葉ではありませんが、プログラムを書くときは参考書などの書き方を真似ることから始めることです。誰かが書いた100行以下の小さいプログラムをプチ改良したときにどう動きが変わるかを試行錯誤しながら学びつつ、それを組み合わせて大きなものを作っていくとよいでしょう。 用語の概念と実際のプログラムは対応はしますが、どちらかだけでは理解しにくいものなので両方を並行して習得することが肝要でしょう。(これはプログラミングに限った話ではなく、新しいことを覚える際のすべてに共通することだと思います) あと、継承やオブジェクトというような言葉の理解は気長に捉えた方が良いかと思います。自分はよくわかっている人に教えてもらいながら勉強して3年以上かかりました。その際に使われた教科書はProgram Development in Java: Abstraction, Specification, and Object-Oriented Designという本ですが、読み下してくれる人がいないときついかもしれません。また、「呼び出す」などプログラミングの世界の言葉と日本語の言葉とでは概念が違うことも多いので、それも理解を妨げる一因ですね。

NEWYORKERS
質問者

お礼

そう言えば、かつて、エクセルでマクロの自動登録して、それを一部プチ改良して色を変えてみたりして感動したことを思い出しました。 確かに、この4ヶ月間で、自分でちょっと変えたりして、実行結果を見てみるなんて一度もしませんでした。 授業に対して、受け身だけだったかもしれません。 御指導ありがとうございます。すぐやってみます。

  • braun5
  • ベストアンサー率50% (1/2)
回答No.1

プログラミング経験4年程度の者です. プログラミング上達の方法は,とにかく手を動かして本に載っているサンプルコードを書いて動かすということを繰り返すことです. Javaのような継承といった言葉が出てくるプログラミング言語をオブジェクト指向言語といいますが,オブジェクト指向の各用語の概念は理解が難しく,(私を含め)オブジェクト指向言語について正確な知識を持っている人はほとんどいないのが現状かと思います. 概念の理解に努めるのではなく,とにかくサンプルコードを書いて動かすというのが一番の近道ではないでしょうか. Javaですと入門書としては以下のような本があります. 高橋麻奈:やさしいJava 第4版,ソフトバンククリエイティブ (2009). http://www.amazon.co.jp/dp/4797355727/ 結城浩:改訂第2版 Java言語プログラミングレッスン (上),ソフトバンククリエイティブ (2005). http://www.amazon.co.jp/dp/4797332115/ 結城浩:改訂第2版 Java言語プログラミングレッスン (下),ソフトバンククリエイティブ (2005). http://www.amazon.co.jp/dp/4797332123/

NEWYORKERS
質問者

お礼

ご回答を有難う御座います。 勉強を始めて4ヶ月、毎朝6時に家を出て帰宅は11時過ぎ、仕事も家事も一切しないでJavaにすべてをかけているのに、以前勉強を始める前と何ひとつわからない自分に、腹が立ち、泣きながら続けています。 教科書のコードを何度も入力しましたが、何かの暗号を打っているのと同じ感覚でスケールをあてて、入力し、次にそれを紙に印刷して、データ入力のチェックのように、入力ミスがないかチェックしています。最近は、入力ミスが減ってきましたが、コードの意味を知るすべがありません。暗記してしまったものもありますが、コードは解読出来ずにいます。サンプルコードを一行ずつ訳してくれている本はないか捜しています。教えていただいた本を今日すぐ見に行って来ます。精神的にまいってしまっているので、ご回答いただけたことを本当に感謝しております。有難うございました。

関連するQ&A

  • Javaのstaticメソッドの意味を教えて下さい

    Javaのstaticメソッドの意味を教えて下さい。 現在の解釈では、staticなメソッドとはインスタンスの生成に依存せず呼び出せる処理のことだと認識しています。逆にstaticでないメソッドは、生成後のインスタンスにしか使えない処理だと理解しています。 しかし、コンストラクタがstaticでないことに気がつき、疑問が生まれました。コンストラクタはstaticではないので、コンストラクタを呼び出す時にはそのクラスのインスタンスが必要になるはずです。しかしこのインスタンスを作るのにもコンストラクタが必要です。コンストラクタを使うためにインスタンスが必要で、インスタンスを作るためにコンストラクタが必要という無限ループになってしまいました。 そこで改めて、staticメソッドの意味を教えて頂きたいです。

  • 継承・実装の関係で悩んでいます。

    継承・実装の関係について悩んでいます。 ここでは、アクセス制御を考えずに、インスタンスかstaticかabstract(ここではabstract final staticやabstract classのこと)の違いで、どう継承するのか考えています。 // 継承 はメソッドのオーバーライドのことを考えます。(オーバーロードは考えない) クラスAからクラスBでオーバーライドしたメソッドは、 クラスCでさらにオーバーライドできるのでしょうか? クラスCが クラスBのクラスAからオーバーライドしたメソッド をクラスBのメソッドとして見たときに、オーバーライドすることは可能なのでしょうか? クラスA │ インスタンスフィールドA │ staticフィールドA │ │ クラスA() { } │ │ インスタンスメソッドA () { } │ staticメソッドB() { } ↓ クラスB extends クラスA │ インスタンスフィールドA // 継承 │ インスタンスフィールドB │ staticフィールドB │ │ サブクラス1() { } // コンストラクタは継承しない、super()で呼び出す │ │ インスタンスメソッドA () { } // 継承 │ │ インスタンスメソッドB () { } │ staticメソッドB () { } ↓ クラスC extends クラスB implements インタフェースD, ... ↑ インスタンスフィールドA // クラスBのフィールドを継承 │ インスタンスフィールドB // クラスBのフィールドを継承 │ インスタンスフィールドC │ staticフィールドC │ │ サブクラス2() { } │ │ インスタンスメソッドA () { } // クラスBのメソッドを継承 │ インスタンスメソッドB () { } // クラスBのメソッドを継承 │ インスタンスメソッドD () { } // インタフェースDのメソッドを実装 │ インスタンスメソッドE () { } // インタフェースDのメソッドを実装 │ │ │ インスタンスメソッドC () { } │ staticメソッドC() { } │ interface インタフェースD extends インタフェースE ↑ │ staticフィールドD // public static final │ │ インスタンスメソッドD() { } // public abstract │ インスタンスメソッドE() { } // 継承 │ interface インタフェースE staticフィールドE // public static final インスタンスメソッドE() { } // public abstract

    • ベストアンサー
    • Java
  • メソッドの引数としてのthisの意味

    java初心者です。教えてください。 メソッドの引数としてのthisは何を表しているのですか? いろいろ調べてみてthisには以下の2つの使用法があることがわかりました。 1.インスタンス変数の名前とインスタンスメソッド内のローカル変数名がかぶったときに、メソッド内でインスタンス変数を表すときにthis.変数名とする。 2.あるクラスのコンストラクタ内で、同じクラスの別のコンストラクタを呼ぶときに使う。 しかし、引数としてのthisの意味がわかりません。 具体的には、addMouseListener(this);や、g.drawImage(img,10,10,this);のthisです。 後者の場合はオブジェクトgのインスタンスメソッドなので、thisはオブジェクトgへの参照を表しているのでしょうか?

    • ベストアンサー
    • Java
  •  superについて教えて下さい

     superについて教えて下さい  JAVAの初心者です、宜しくお願いします。  「super」についてよくわかりません。 ある本には、「親クラスのコンストラクタを呼び出す」、またある本には、「親クラスのオブジェクトを呼 び出す」、と書かれていました。  ・コンストラクタとオブジェクトとは同じ意味なのでしょうか。  ・また、ある本には、「コンストラクタの継承はされない」とかかれていますが、どのように違うのでしょうか。  ・JAVAのApIには、次のように書かれています。   「paint     public void paint(Graphics g)コンテナをペイントします。このコンテナの子コンポーネントで    あるすべての軽量コンポーネントへペイント要求を転送します。このメソッドが再実装される場合、軽量    コンポーネントが正しく描画されるように super.paint(g) を呼び出さなければなりません。    (以下略)」   super.paint(g)と各意味は、親クラスのメソッドを呼びだすことで、親クラスのメソッドを呼びだす時に  も、superが必要ということでしょうか。  コンストラクタ自体についてよく理解出来ていないのですが  ・そもそもクラス(オブジェクトの生成)にとってどのような役割、意味があるのでしょうか。   オブジェクトの生成すると、デフォルトで自動的に引数なしのコンストラクタが作成されると書かれています  が、  ・作成されること自体にどのような意味があるのでしょうか。  変数の初期化とかをコンストラクタ内で設定するのは意味があるとは思うのですが、、、、

    • ベストアンサー
    • Java
  • thisキーワードについて確認

    下記の確認事項が正しいかどうか、yesかNoかで判定してくださいましたら幸いです。 確認1:thisは、現在実行中のオブジェクト自身をあらわす参照型変数。 確認2:『インスタンスメソッドやコンストラクタから他のメソッドやメンバ変数を参照する場合、 オブジェクト変数を指定せず参照することができるが、それは、インスタンスメソッド、コンストラクタは現在のオブジェクトを表すthisを持っているため。単純名で参照されているインスタンスメンバは、 実はコンパイラによりthis.単純名に変換されている。 クラスメソッドは個々のオブジェクトに属さないため、メソッド内にthis を持っていないので、thisは使えない。』

    • ベストアンサー
    • Java
  • C#のdelegateをC++とjavaで?

    C#のデリゲードを javaとC++でできないでしょうか。 ただし、質問内容を勘違いされそうなので、求めている内容と、 求めていない内容を、詳しく 書きますと。 インタフェース委譲を使った例は、求めていません。 あらかじめ、委譲先に静的に仕組みを 作っておかなく手も、C#のデリゲードのように、シグニチァが同じなら 委譲先をはめ込めれるのが欲しいです。 単なる関数ポインタの例は、求めて いません。 C#でdelegate型を引数にとる ところに、あるインスタンスの メソッドを渡すと。 どのインスタンスのどのメソッドかまで、 認識して、コールバックできます。 関数ポインタでは、これができない。 STLの関数オブジェクトとか、古い感じの情報にヒントがあるか。調べてみましたが。よくわかりませんでした。 結局、この関数オブジェクトは、僕が求めているモノとは、違うような気がします。 よくわかりませんが。 欲しいのは、どのインスタンスのどのメソッドかまでを特定して、 記憶できる型をどうやって javaや、C++で実装できるか。 それをインタフェース委譲のように、 委譲先にあらかじめ、仕込んでおくことなしに。 ただ、メソッドのシグニチァが同じであるだけで、どのインスタンスのどのメソッドかまでを特定して記憶できる C#のデリゲードのような型を。 特殊なコンポーネントを利用せず。 標準的な言語構文のみをつかって、 どのようにしたら、 javaや、C++で、実装できるか? です。 詳しい方が、いらっしゃいましたら、 教えてください。

  • 初歩的な質問です・・・

    最近javaの本を買って勉強しているのですが、最初で躓き、理解できないことろがたくさんあります。 ・インスタンスを作る ・コンストラクタを定義する ・メソッド ・引数 ・voidの使い方(public void ,void ~~ そもそもvoid自体の意味が・・・) ・クラスの継承 APIというのを見てもプログラミング初心者の私には説明が難しくて理解できません・・・。 なにかに例えて教えていただければうれしいです(^^) よろしくお願いします!

    • ベストアンサー
    • Java
  • Javascriptでオブジェクト思考は可能でしょうか?

    Javascriptでオブジェクト思考は可能でしょうか? クラスを作成して、変数を隠ぺいして、コンストラクタ・メソッドとか 継承などできるのでしょうか? 簡単なサンプルがあれば助かります。

  • Javaのハッシュコードについて

    SunJava2認定ガイドでJavaを勉強している初心者ですが、「オブジェクトとコレクション」を説明した章(第7章)に、 ・2つのオブジェクトがequals()メソッドで等しいと判定された場合、 両者のハッシュコード値は同じでなければならない ・2つのオブジェクトを等しいと見なすためには、両者のハッシュコー ドも等しくなければならない という記述がありますが、この2つのオブジェクトのハッシュコードというのは2つのオブジェクトを指すそれぞれの参照変数であると理解していいのでしょうか? … もしそうであるなら、2つのオブジェクトが等しいという意味は、2つのオブジェクトは同一であるということを意味することになるのでしょうか  どなたかご教示ください

  • Javaの課題がわかりません。教えてください

    ジェネリックスでコレクションクラスの作成です //次のクラスを実装する。 //クラス: /** * オブジェクトの集合(セット)を管理するクラス。 */ public class MySet<E>{ } //フィールド: /** オブジェクトを格納する配列への参照 */ private E[] elements;{ } /** 格納されている要素数 */ private int size;{ } //コンストラクタ: /** * 8件の要素を格納できる配列を用意する。 */ public MySet(){ } /** * n件の要素を格納できる配列を用意する。 */ public MySet(int n){ } //メソッド: /** * elemをセットに追加する。成功でtrueを返す。 */ public boolean add(E elem){ } /** * セット内でelemと同値の要素を探索する。存在すればtrueを返す。 */ public boolean contains(E elem){ } /** * セットに含まれる要素数を返す。 */ public int size(){ } /*※mainメソッドを用意し,実装した全てのコンストラクタやメソッドが正常に 機能しているかどうかを検証する。*/ {}の中身以外は変更しないで作成します。

専門家に質問してみよう