CodeGym /Java Blog /ランダム /旧レベル09
John Squirrels
レベル 41
San Francisco

旧レベル09

ランダム グループに公開済み

知識とスキル

旧レベル09 - 1大学では、理論と実践の間に大きな違いはない、と教えられました。まあ、それが同じではないことは確かに理解しています。しかし、核心的な違いはわかりません。それでも、1つあります。 ほとんどの人は、「知っています」と「できる」の間に等号を置きます。あなたは? いくつか例を挙げてみましょう。
  1. 喫煙が体に悪いのはわかっていますが、喫煙してしまいます。
  2. ファストフードは体に悪いとわかっていますが、食べてしまいます。
  3. 交通規制は知っていますが、運転はできません。
  4. ジョギングが体に良いことは知っていますが、朝はジョギングしません。
人々が「知っている」を「できる」と受け取ってしまうことがよくあります。交通規制の良い例です。規制を知っていて、運転方法を知っている人は、運転できるということでしょうか? いいえ。もし彼が自分は運転の仕方を知っていると思っているとしたらどうしますか?では、なぜ彼にインストラクターが必要なのでしょうか。彼はすでにすべてを知っています。 すでにすべてを知っていると確信している場合、おそらく新しいことは何も学ばないでしょう。そして、すべてのやり方を知っていると確信しているなら、勉強する必要はありません。このような考えは頭をよぎることさえありません。それは、何かを学ぶための素晴らしい機会をすべて逃すことを意味します。通常の大学は知識だけを与えてくれます。自分でスキルを習得する必要があります。でも、何が聞こえますか?大学では理論以外に実践も行ったことがありますか?OK、物理学部で勉強した場合、少なくとも 20% の効率を持つ蒸気エンジンの実用的なモデルを作成します。やり方は知っていると思いますが、実際にできるわけではありませんよね?あなたは化学者ですか?無煙粉末を作ります。方法は知っていますが、それはできませんね? 数学者ですね?砲弾の弾道を計算します。シェルの形状を考慮することを忘れないでください。現実世界では数学の点は飛びません。そして球状の馬は存在しません。 旧レベル09 - 2生物学者?ペニシリンを分離します。このカビはメロンに生えるんですね。ご存知の通り、素晴らしいですね!それできますか? エコノミスト?原油価格の上昇を予測します。終わり?そして、あなたの予測に基づいて、それを年間 2,000 ドルまたは 200,000 ドルに変換します。FOREXでプレイしたことがありますか?リアルマネーのため?それともそれが何なのか知っているだけですか? 国際経済?素晴らしい!どこでオフショア会社を設立すればよいですか? 香港、アイルランド、または米国。なぜ?たとえそれが疑わしいとわかっていても、実際にやったことがないので、なかなかできないでしょう。あなたにはそれをどうやって行うか全く分かりません。ああ、大学でそれを勉強しなかったのですか?準備ができていない仕事をあなたに与える権利が私にあるでしょうか? だって、これらは現実の仕事だから。これは実践です。あなたが大学で勉強してきたのは、球体の馬、完全な競争だけです。現実にはどれも存在しません。しかし、なぜ私は言及するのを忘れたのでしょうかマーケティングのスペシャリスト?できるだけ多くの人に私の講義を知ってもらうために、私の 500 ドルをどのように使うのが最善ですか? 広告で?古典的な広告がすでに時代遅れであるだけでなく、USP (ユニークな販売提案) の概念も時代遅れであることに気づいていますか。これはほぼユニークな万能薬として大学で教えられたと思います。 何も知っていることを忘れてください。自分に問いかけてください – 私に何ができるでしょうか? 役に立つということですか?人々がお金を払って買うものは何ですか?お金がいいということですか? それでは、皆さん、CodeGym のような素晴らしいコースに感謝の意を表しましょう。そのおかげで、プログラミングの方法を知るだけでなく、実際にそれを実行できるようになります。数年後には仕事に就いて十分な収入を得られるようになるでしょう。このお金で快適に暮らすのに十分だといいのですが。もう一度言いますが、覚えておいてください。何を知っているかは問題ではありません。重要なのは、あなたがどのような有用なスキルを持っているか、つまり人々があなたにお金を払いたがるであろうスキルだけです。これを理解するのは早ければ早いほど良いです。

新しいレベルに到達しました

レベル9

旧レベル09 - 3

1 リーシャ、スタックトレース

旧レベル09 - 4- おい!今日はスタックトレースとは何かについて説明します。まず、スタックとは何かについて説明しましょう。- 書類の山を想像してください - 特定の事務員への割り当て。新しい割り当てをスタックの一番上に置くことができ、彼はスタックの一番上から割り当てを取得します。したがって、割り当ては先着順ではなく行われます。事務員が最後に来る課題を引き受けるたびに。このようなコレクションの構造をスタックと呼びます。 - Java には、特別なコレクションであるスタックがあります。このコレクションには、«要素の追加» と «要素の取得 (取得/削除)» メソッドがあります。すでにご存知のとおり、最後に追加された要素が最初に取得されます。 - うーん。難しいことではないと思います。 - 大丈夫。それでは、スタックトレースとは何かを説明しましょうは。- Java で、関数 А が関数 Bを呼び出し、後者が関数 Cを呼び出し、関数 C が関数 Dを呼び出すと想像してください。したがって、関数 Bを終了するには、まず関数 Cを終了する必要があり、そのためには関数 Dを終了する必要があります。これはスタックに非常によく似ています。 -そして、類似点は何ですか? - スタック内で、特定の割り当てに到達するには、一番上にあるすべての割り当ても完了する必要があります。 - そうですね、ちょっと例え話ですが、すべてを正しく理解できているかどうかはわかりません。 - ここを見て。Java では、スタックは要素のセットです。それは紙が束になっているようなものです。上から3枚目を取るには2枚目を取らなければなりませんが、その前に1枚目を取らなければなりません。シートはいつでも出し入れできますが、上からしかかけず、上からだけ取ることもできます。関数呼び出しにも同じことが当てはまります。関数 Aは関数 Bを呼び出し、後者は関数 Cを呼び出します。Аを終了するには、まずBを終了し、そのためにはCを終了する必要があります。 - ちょっと待って。私が正しく理解できた場合、スタック全体は「スタックに置かれた最後のシートのみが取得可能」であり、「最初に、最後に呼び出された関数が終了する必要がある」ことがわかります。そうですか? - はい。したがって、関数呼び出しのシーケンスは「関数呼び出しスタック」、または単に「呼び出しスタック」と呼ばれます。最後に呼び出された関数が最初に終了される必要があります。例を見てみましょう: 旧レベル09 - 5- OK。関数呼び出しを見ればすべてが明らかだと思います。しかし、このStackTraceElementとは何でしょうか? - Java 仮想マシンはすべての関数呼び出しをログに記録します。この目的のために、特別なコレクションであるスタックがあります。ある関数が別の関数を呼び出すと、JVM は新しい要素StackTraceElementをこのスタックに配置します。関数が終了すると、要素はスタックから削除されます。したがって、このスタックには、«関数呼び出しスタック» の現在の状態に関する最新の情報が常に保存されます。 - すべてのStackTraceElement呼び出されたメソッドに関する情報が含まれます。したがって、 getMethodNameを使用してこのメ​​ソッドの名前を取得できます。- 上の例はそれを示しています。
  1. «コールスタック» を取得します。
  2. for-eachループを使用して配列を繰り返します。忘れていないことを願っています。
  3. メソッド名をSystem.outに出力します。
- 興味深いことですが、どうやら簡単です。ありがとう、リーシャ!

2 Diego、スタックトレース表示上のタスク

- やあ、アミーゴ! ここでは、スタック トレースを画面に表示する小さなタスクを示します。
タスク
1
各メソッドは、相互に呼び出すStackTrace Write 5 つのメソッドを返す必要があります。各メソッドはその StackTrace を返す必要があります。
2 StackTrace を再度
呼び出します。相互に呼び出す 5 つのメソッドを作成します。各メソッドは呼び出し元メソッドの名前を返す必要があります。StackTrace を使用して呼び出し元のメソッドを取得できます。
3 メソッドは、このメソッドが呼び出されたコードの行番号を返す必要があります。
相互に呼び出すメソッドを 5 つ作成します。各メソッドは、このメソッドの呼び出し元のコードの行番号を返す必要があります。関数element.getLineNumber()を使用します。
4 10 回の呼び出しのスタック トレース
10 回の呼び出しのスタック トレースを取得するコードを作成します。
5 メソッドは結果、つまりスタック トレースの深さを返す必要があります。
スタック トレースの深さを表示して返すメソッドを作成します。スタック トレースの深さは、そのメソッドの数 (リスト内の要素の数) です。

3 Elly、エラーと例外

- やあ、アミーゴ! 今日はとても興味深いレッスンがあります。例外についてお話します。例外は、プログラム内のエラーを制御するための特別なメカニズムです。プログラムで発生する可能性のあるエラーの例をいくつか示します。
  1. プログラムは、フルディスクにファイルを書き込もうとします。
  2. プログラムは、null 参照を格納する変数のメソッドを呼び出そうとします。
  3. プログラムは数値を 0 で除算しようとします。
これらの操作を行うとエラーが発生します。通常、これはプログラムの終了につながります。コードを実行し続ける意味がありません。 - 何故ですか? - 車が崖から落ちそうなときにハンドルを切る意味はありますか? - 番組を終了するということですか? - はい。以前はそうでした。エラーが発生するとプログラムが終了します。 - とても賢明な決断ですね。 ―取り組んでみたほうがいいんじゃないですか? - うん。MS Word に巨大なテキストを入力して保存しましたが、まだ保存されていませんが、プログラムはすべてが正常であることを示します。そして入力を続けます。ばかばかしいですね。 - うん。 - そこでプログラマーは興味深い手を思いつきました。各関数はその作業のステータスを返しました。0 は関数が想定どおりに動作したことを意味し、その他の値はエラーが発生したことを意味します。この値はエラー コードです。- しかし、このアプローチには欠点がありました。各 (!) 関数呼び出しの後に、関数によって返されるコード (数値) をチェックする必要がありました。まず、不便でした。エラー処理コードはめったに実行されませんが、常にコードを記述する必要がありました。第二に、関数自体が異なる値を返すことがよくあります。それらをどうすればよいでしょうか? - うん。それが私が尋ねようとしていたことです。 - そして明るい未来がやって来ました - 例外とエラー処理が登場しました。仕組みは次のとおりです。
  1. エラーが発生すると、Java 仮想マシンはエラーに関するすべての情報を含む特別なオブジェクト (例外) を作成します。エラーが異なれば、例外も異なります。
  2. この例外により、プログラムは現在の関数を直ちに中断し、メイン メソッドを終了するまで次の関数を強制的に中断します。その後、プログラムは終了します。Java 開発者は、このプロセスを「コールスタックのロールバック」と呼びます。
- しかし、あなたはプログラムが確実に終了するわけではないと言いました。 - そうです。例外をキャッチする方法があるからです。いつでもどこでも必要なときに、特別なコードを記述してこれらの例外をキャッチし、重要なことを行うことができます。- これを行うには、特別な構造のtry-catchがあります。それがどのように機能するかを見てください: 旧レベル09 - 6- なぜ«method1の呼び出し後。決して表示されません» が画面に表示されませんか? - 質問してよかったです。25 行目にはゼロによる除算があります。これによりエラー、つまり例外が発生します。Java 仮想マシンは、エラー情報を含むオブジェクトArithmeticExceptionを作成しました。このオブジェクトは例外です。- メソッドmethod1()内で例外が発生しました。これにより、この方法は即時に中止されました。また、 try-catchブロックがない場合は、メソッドmainが終了することになります。- try ブロック内で例外が発生した場合は、catchブロックでキャッチされます。ブロックtry内の残りのコードは実行されず、ブロックcatchの実行がすぐに開始されます。 - よくわかりません。 - つまり、このコードは次のように動作します。
  1. tryブロック内で例外が発生した場合、このブロック内のコードは実行されなくなりますが、ブロックcatchの実行が開始されます。
  2. 例外が発生しなかった場合、try ブロックは最後まで実行されcatchは実行されません
- えーっ! - 各メソッド呼び出しの後に、呼び出されたメソッドが自動的に終了したか、それとも例外によって終了したかを確認すると想像してください。例外があった場合、JVM はブロック キャッチが利用可能な場合はその実行を開始し、例外をキャッチします。catch ブロックがない場合、JVM は現在のメソッドを終了します。次に、現在のメソッドを呼び出したメソッドで同じチェックが開始されます。 - 今は理解できたと思います。 - それはいいです。 - catch ブロック内の例外とは何ですか? -すべての例外は、クラス Exception から継承されたクラスです。catchでそのクラスを指定することで、それらのいずれかをキャッチできます。ブロックするか、共通の親クラスの例外を指定してすべてを一度に実行します。次に、変数 e (この変数には例外オブジェクトの参照が格納されます) から、エラーに関する必要な情報をすべて取得できます。 - 素晴らしい!また、自分のメソッドでさまざまな例外が発生した場合は、別の方法で処理できるでしょうか? - 必ず。これは次のように行うことができます。 旧レベル 09 - 7- try ブロックには複数のcatchブロックを含めることができ、それぞれがそのタイプの例外をキャッチします。 - うーん。まあ、なんとなく分かりました。もちろん、私自身がこのようなことを書くつもりはありません。でも、そんなコードに出会っても怖くない。

4 Elly、RuntimeException がスローされる

旧レベル09~8- 今日は別の話題を取り上げることにしました。Java では、すべての例外は、制御/チェック済み非制御/非チェックの2 つのタイプに分類されます。チェックされた例外はキャッチする必要があり、チェックされていない例外もキャッチできますが、それは必須ではありません- コード内で意図的に例外をスローすることは可能ですか? - コード内で、自分で例外をスローできます。独自の例外を作成することもできます。しかし、この穴の奥深くには後で行きます。次に、Java 仮想マシンによってスローされた例外を処理する方法を学びましょう。 - OK。 - 例外ClassNotFoundExceptionおよびFileNotFoundExceptionの場合メソッド内でスローされる (出現する) 場合、プログラマはメソッドのシグネチャ (メソッド ヘッダー) でそれらを指定する必要があります。このような例外はチェックされます。通常は次のようになります。 旧レベル09 - 9- したがって、スローを記述し、カンマで区切って例外をリストするだけです。右?そうですか? - はい。しかし、もう一つ興味深いことがあります。以下の例をコンパイルするには、 method1()を呼び出すメソッドがこれらの例外をキャッチするか、例外を転送する必要があります。チェック済み例外を前方にスローしたい場合は、メソッドのヘッダーでそれを指定する必要があります。- もう一度言いますが、メインメソッドで、ヘッダーフレーズに FileNotFoundExceptionをスローする メソッドを呼び出したい場合、…次に、次の 2 つのことのいずれかを行う必要があります。
  1. 例外をキャッチするには FileNotFoundException, …危険なメソッドを呼び出すコードをtry-catchブロック
    でラップする必要があります
  2. 例外 FileNotFoundException をキャッチしないようにするには、…
これらの例外をmainメソッドのthrowsリストに追加する必要があります。 - 例を挙げてもらえますか? - ここを見てください: - この例はコンパイルされません。これは、メソッドmainがメソッド method1() を呼び出し、キャッチする必要がある例外をスローするためです。- サンプルをコンパイルするには、メソッドmainに例外処理を追加する必要があります。これは 2 つの方法で行うことができます: - そしてここではtry-catchを使用してそれをキャッチします: - より明確になってきましたが、非常にわずかです。 - 以下の例を見てください: - まだ例外があります – RuntimeExceptionとそこから継承されたクラス。旧レベル09~10旧レベル09~11旧レベル09~12旧レベル09~13捕まえたり投げたりする必要はありません。これらはチェックされていない例外です。これらの例外は予測が難しいと考えられているため、その発生を予測することはほとんど不可能です。これらを使用して同じことを行うことができますが、 throwsで指定する必要はありません。

5 Risha、コールスタックのローリング、例外でのローリング方法

- 例外がどのように機能するかについてもう少し詳しく説明したいと思います。以下の例は、次のことを説明しています。 旧レベル09~14- 理解できません。 - Ok。何が起こっているのか説明します。- 左側の例では、複数のメソッドを連鎖的に呼び出しています。Method2()では、(エラーを開始するために) 例外を具体的に作成してスローします。- 右の例は、何が起こるかを示しています。Method2()を見てください。これが例外の作成の変換です。RuntimeExceptionタイプのオブジェクトを作成し、それを特別な変数例外に格納し、すぐにメソッドを終了します ( return )。- method1では、 method2の呼び出し後にチェックが行われます。例外があるかどうか。例外が発生した場合、method1 は直ちに終了します。このチェックは、各 (!) Java メソッドを呼び出した後に暗黙的に行われます。 - おお! - その通り。- メソッドmainの右側の列に、try-catchブロックで例外がキャッチされたときに何が起こるかを書きました。例外がなかった場合、コードは計画どおりに実行を続けます。catchで指定されたタイプの例外があった場合は、それを処理します。 - そして、throwinstanceof は何を意味しますか? - 左側の最後の行を見てください。新しい RuntimeException がスローされます。。このようにして、例外を作成してスローします。これはほんの一例です。今のところはやりません。- 右側のブロックでコマンド「аinstanceof B」を使用して、オブジェクトa がタイプBを持つかどうかを確認します。つまり、変数Exceptionに格納されているオブジェクトの型が RuntimeException であるかどうかです。論理的な表現ですね。 - そうですね、少しずつ明確になってきました。

6 Diego、例外キャッチタスク

- ここを見て!ディエゴおじさんは、あなたのために捕獲に関する仕事をほとんど持ってきませんでした。あなたの幸運を祈ります。必要になると思います。へー。 旧レベル09~15- やあ、アミーゴ! ここでは、興味深い例外キャッチ タスクをいくつか紹介します。
タスクをキャッチする
1 1. 数値を操作する場合の例外
コードの実行時に発生する例外をキャッチします。
int a = 42 / 0;
タイプを指定して例外を画面に表示します
2 2. 文字列操作時の
例外 コードの実行時に発生する例外をキャッチします

文字列 m = s.toLowerCase();
タイプを指定して例外を画面に表示します。
3 3. 配列操作時の例外
コードの実行時に発生する例外をキャッチします。
int[] m = new int[2];
m[8] = 5;
タイプを指定して例外を画面に表示します。
4 4. List コレクションを操作する場合の
例外 コードの実行時に発生する例外をキャッチします。
ArrayList<String> list = new ArrayList<String>();
文字列 s = list.get(18);
タイプを指定して例外を画面に表示します。
5 5. Map コレクションを操作する場合の例外
コードの実行時に発生する例外をキャッチします。
HashMap<String, String> map = new HashMap<String, String>(null);
マップ.put(null, null);
マップ.削除(null);
タイプを指定して例外を画面に表示します。
- ヒント: まずプログラムを作成し、次にどのような例外が発生するかを確認し、その後コードを変更してその例外をキャッチします。

7 Risha、複数のキャッチの仕組み

旧レベル09~16- さて、さらに興味深い講義があります。私は教えるのがとても好きです。- 複数のキャッチがどのように機能するかを説明したいと思います。実際には非常に単純です。ブロックtryで例外が発生すると、プログラムの実行は最初のcatchに転送されます。-ブロック キャッチのかっこ内に指定された型が例外オブジェクトの型と同じである場合、コードの実行は {} 内で開始されます。それ以外の場合は、次のcatchに進みます。そこでチェックが繰り返されます。- catchブロックがなくなっても、例外がキャッチされていない場合、例外は前方にスローされ、現在のメソッドは中断されます。 - そうか。そのキャッチは、例外のタイプと一致するタイプで実行されます。 - はい、そうです。実際にはもう少し複雑です。重要なのは、クラスが相互に継承できるということです。クラス«Cow»がクラス«Animal»から継承されている場合、タイプ«Cow»のオブジェクトはタイプ«Cow»の変数だけでなく、タイプ«Animal»の変数にも格納できます。 。 - だから何? - すべての例外はクラスExceptionまたはRuntimeException (これもExceptionから継承) から継承されるため、それらはすべてコマンドcatch (Exception e)またはcatch (RuntimeException e)を使用してキャッチできます。 - だから何? - この意味は、まず、コマンド catch(Exception e) を使用して例外をキャッチできます次に、 catchブロックの順序が重要です。 例: - 0 による除算の結果生じる ArithmeticException は、2 番目のキャッチでキャッチされます。旧レベル09~17- 以下の例では、すべての例外のクラスが Exception から継承されているため、最初のcatchでArithmeticException がキャッチされます。したがって、Exception はあらゆる例外をキャッチします。 - 以下の例では、例外ArithmeticException はキャッチされませんが、呼び出し元のメソッドにスローされます。 - そうですね、だんだんはっきりしてきました。これらの例外はそれほど簡単ではありません。旧レベル09~18旧レベル09~19 -そう見えるだけです。実際、これは Java で最も単純なものの 1 つです。 ――喜ぶべきか怒るべきか迷ってしまいます…。

8 Diego、複数の例外キャッチ タスク

- やあ、アミーゴ! 昨日私は酔っ払ってあなたの仕事を複雑にしすぎましたが、あなたにつらい思いはなく、すべて解決してくれることを願っています。それはあなた自身の利益のためです。ここ:
タスク
1 1. 例外Exceptionから継承された 2 つの例外と、 RuntimeExceptionから継承された他の 2 つの例外( NullPointerExceptionArithmeticExceptionFileNotFoundException、およびURISyntaxException )
をスローするメソッドがあります。NullPointerExceptionFileNotFoundException を キャッチする必要がありますが、ArithmeticExceptionURISyntaxException はキャッチする必要はありません。どうやってするの?

2 2. 例外のキャッチException
から順番に継承される例外は 3 つあります。class Exception1 extends Exception class Exception2 extends Exception1 class Exception3 extends Exception2 次のようなメソッドがあります。public static void method1() throws Exception1, Exception2, Exception3 catch を書きます。 3 つのException1Exception2 、およびException3をすべてキャッチするブロック






3 3. 選択的例外のキャッチ1. BEAN.methodThrowExceptions
メソッドによってスローされる例外を調べます。 2. メソッドprocessExceptions() は、メソッドBEAN.methodThrowExceptionsを呼び出して例外を処理する必要があります。 2.1. FileSystemException例外が発生した場合は、 BEAN.logメソッドを呼び出してログに記録し、2.2 をスローします 。例外CharConversionExceptionまたはその他のIOExceptionが発生した場合は、 BEAN.logメソッドを呼び出してログに記録します。 3. 2.1 で転送する例外のクラス/タイプを追加します。processExceptions()



メソッドのシグネチャ。
4. main() メソッドで残りの例外を処理し、ログに記録します。try..catchを使用する

ヒント:キャッチしたくない
例外MyException をキャッチした場合は、次のコードを使用して
例外を前方にスローできます

}
4 4. チェック例外の捕捉メソッドprocessExceptions()
ですべてのチェック例外を処理します。 発生したチェック例外をそれぞれ画面に表示する必要があります。try ブロックは 1 つだけ使用できます。

5 5. 未チェック例外のキャッチすべての未チェック例外をprocessExceptions()
メソッドで処理します。printStack() メソッドを使用して、発生した各例外のスタック トレースを画面に表示する必要があります。try ブロックは 1 つだけ使用できます。

9 教授、例外に関する講義

- 今日は非常に興味深いトピックがあります - 例外。当時、若い科学者やプログラマーがこのトピックに深く興奮していたとき… - 申し訳ありませんが、研究室に行かなければなりません。こちらが講義ノートです。あなた自身でそれを理解すると思います。ここ: Java 例外 (Oracle ドキュメント) Java での例外処理 (Java T ポイント) Java - 例外処理 (チュートリアル ポイント) 基本的な Java 例外処理

7月10日

- アミーゴ、今日のレッスンについてどう思いますか? あなたの陽電子脳はまだ機能していませんか?ディエゴの任務は誰をも疲弊させるのに十分だ。ビールを飲みながらリラックスしましょう。まだ立っていますか?

11 キャプテンリス

- こんにちは、兵士さん! - おはようございます! - 素晴らしいニュースがあります。スキルを強化するための簡単なチェックを次に示します。毎日やれば、すぐにスキルが向上します。タスクは、Intellij IDEA で実行するように特別に設計されています。
Intellij Idea で実行する追加タスク
1 1. ゼロ除算public static void DivisionByZero()
メソッドを作成します。このメソッドでは、任意の数値をゼロで除算し、除算の結果を画面に表示する必要があります。DivisionByZero()メソッド呼び出しをtry..catchに ラップします。メソッドException.printStackTrace()を使用して、例外スタック・トレースを画面に表示します。
2 2. 10 から 0 へのカウントダウン
10 から 0 へカウントダウンするループを作成します。遅延させるにはThread.sleep(100)を使用します。sleep呼び出しをtry..catch
ラップします。
3 3. メソッドを try..catch にラップします。
キーボードから数値を読み取ります。キーボードから数値を読み取るコードを別のメソッドreadData()に記述します。
このメソッドの本体全体 (数値が格納されるリストの宣言を除く、 readData()メソッド内のコード全体) を try..catch にラップします。

ユーザーが数値を入力する代わりにテキストを入力した場合、メソッドは例外をキャッチし、前に入力されたすべての数値を画面に表示する必要があります。
画面に数字を表示します。各番号は新しい行に入力する必要があります。数値の順序は入力時と同じである必要があります。
4 4. 日付コンバータ
キーボードから«08/18/2013»の形式で日付を読み取り、
その日付を«AUG 18, 2013»の形式で画面に表示します。DateオブジェクトとSimpleDateFormat
オブジェクトを使用します。
5 5. 母音と子音
キーボードから行を読み取るプログラムを作成します。
プログラムは 2 つの文字列を画面に表示します。1
) 最初の文字列には母音が含まれている必要があります
。2) 2 番目の文字列には、入力されたテキストの子音と句読点文字が含まれている必要があります。
文字はスペースで区切ります。

入力例:
Stop look listen
出力例:
oooie
stplklstn
6 6. 赤ずきんちゃんの物語
1. 赤ずきんちゃん、おばあちゃん、パティ、きこり、オオカミの 5 つのクラスがあります。2. 各クラスには、 ArrayList
タイプ の 2 つのフィールド(killed とate) があります。 3. 必要なオブジェクトはすでに作成されています (フード、おばあさんなど)。 4. 正しい関係 (誰が食べ、誰を殺したのか) を作成して、«赤ずきんちゃん» のロジックを取得します。

7 7. 静的修飾子の移動
コードがコンパイルされるように静的修飾子を移動します。
8 8. 数値の配列のリスト
数値の配列を要素とするリストを作成します。それぞれ長さ 5、2、4、7、0 の 5 つのオブジェクト配列をリストに追加します。配列に任意のデータを入力し、画面に表示します。
9 9. 10 匹の猫String nameフィールドを持つクラス Cat
を作成します。 辞書Map<String, Cat>を作成し、モデル «Name» - «Cat» に 10 匹の猫を追加します。マップ から名前のセットを取得し、そのセットを画面に表示します。

-それらのタスクはグリーン用でした。より複雑なボーナスタスクを追加しました。トップガン専用。
ボーナスタスク
1 1. プログラムがコンパイルされず、実行されない。修理する。
タスク:プログラムはキーボードから 2 つのファイル名を読み取り、最初のファイルを 2 番目の名前で指定された場所にコピーする必要があります。
2 2. プログラムに新しい機能を追加します。
古いタスク:プログラムはキーボードから 2 つのファイル名を読み取り、最初のファイルを 2 番目の名前で指定された場所にコピーする必要があります。
新しいタスク:プログラムはキーボードから 2 つのファイル名を読み取り、最初のファイルを 2 番目の名前で指定された場所にコピーする必要があります。

指定された名前のファイル (コピーされるファイル) が存在しない場合、プログラムは画面に「ファイルが存在しません」というメッセージを表示し、ファイル名を読み取る前にコンソールからもう一度ファイル名を読み取る必要があります。 2 番目の (宛先) ファイルの名前。
3 3. アルゴリズムを学び、実践する。
キーボードから単語と数字のリストを読み取ります。単語を昇順で、数字を降順で画面に表示します。

入力例:
Cherry
1
Bean
3
Apple
2
0
Watermelon

出力例:
Apple
3
Bean
2
Cherry
1
0
Watermelon
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION