Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【身内向け】中間試験前のJava復習

KAZU34
May 30, 2019
81

 【身内向け】中間試験前のJava復習

必修落とさないようにしような(ブーメラン)

KAZU34

May 30, 2019
Tweet

Transcript

  1. 【身内向け】中間前のJavaまとめ • 頼むから最後まで見て、実際にコード書いて • 教科書や授業資料から要所々々掻い摘んだだけだ から、教科書も読んで実際にコード書いて • 専門用語とか詳細は教科書なりGoogleなり自分 で調べて、各自の為にならないから教えないよ •

    頼むから最後まで見て、実際にコード書いて
  2. しつこい注意事項 • マジで自分で書かないと覚えないし理解できない から書いて • 授業前後以外でサクラエディタ開かないとか論外 だし、正直教えるのに金取っていいレベル • 最初は1年生の頃の内容だけど見た方がいいよ だってコンパイルの仕方から危ういじゃん

  3. コンパイルと実行の仕方 • 必要なソース全部同じディレクトリ内に入れる • コンパイルはjavac ファイル名.java(拡張子必要) • 実行はjava クラス名 [必要な場合のみ実行時引

    数] (こっちは拡張子不要、classとかも要らんぞ) • 複数クラス時は利用する側(大抵mainメソッドがあ るクラス)だけコンパイルすれば、利用される側も自 動でコンパイルしてくれる
  4. よく使う型 • 整数→int • 実数(小数)→double • 文字列→String 暗黙的な型変換はJavaでは原則行われずコンパイ ルエラーになる、必要ならキャストやパースをしよう

  5. 条件分岐判定(P1〜) • if、if〜else、if〜else if〜else • switch Javaには条件演算子ってのもあるけど、授業では 使わん

  6. 繰り返し(P6〜) • for • while • do〜while 継続条件がTrueならループ、終了条件じゃないよ! ネスト構造にすれば多重ループにできる break;でループ中断、continue;で今のループをス

    ルーしてループ継続できる
  7. 配列(P9〜) • 同じ型で複数要素は配列にまとめると便利 型名[] 配列名 = new 型名[要素数]; • []を重ねると多次元配列にできる、↓は2次元配列

    型名[][] 配列名 = new 型名[要素数][要素数]; • 多次元配列は多重ループと一緒に使う事が多い • 配列名.lengthで要素数が取れる、これはループの 継続条件に使う事が多い
  8. メソッド • 定義 [修飾子] 戻り値型 メソッド名(引数) { //中身 } •

    使用 メソッド名(引数); • 何気なく使ってるSystem.out.printlnもメソッドだよ
  9. ここまで1年の内容 • いい加減コンパイルの仕方くらいは覚えてね…? • かなりザックリ書いたから気になる点は自分で(ry • こっから2年の内容だけど、1年の内容すら危ういと かなりしんどいよ

  10. 修飾子 • メソッドんとこでもさり気使ったけど、[修飾子]っての は必要な場合のみね • 授業でやったのはpublic、private、static • 追々説明しなくはないけど、教科書(ry

  11. クラスの定義(P11〜) [修飾子] class クラス名 { [修飾子] 型名 フィールド名; コンストラクタ() {

    } [修飾子] 戻り値型 メソッド名(引数) { [return 戻り値;] } }
  12. クラスの使い方(P14〜) • 基本的にはインスタンスを生成する、インスタンスは クラスの複製 • インスタンスを生成しない場合は後述のstaticで • インスタンスの生成 クラス名 インスタンス名

    = new クラス名(コンストラクタ引数); • インスタンスの使用 インスタンス名.各種要素名(変数なりメソッドなり)
  13. public、private修飾子(P18〜) • フィールドは原則privateでカプセル化する 必要以上にアクセスできなくしてバグを防ぐ為 • 直接アクセス不可だからpublicなset、getメソッドを 作り、それ経由でアクセスする set+変数名…フィールドに代入するメソッド get+変数名…フィールドから取得するメソッド •

    this.フィールド名で自クラスフィールドと明示できる
  14. コンストラクタ(P27〜) • インスタンス生成時に実行される初期化命令群 • 戻り値は無い、コンストラクタの名前は必ずクラスと 同じ • コンストラクタを多重定義(オーバーロード)してる場 合、this(引数);でコンストラクタから他のコンストラ クタを呼べる。初期化用だからコンストラクタの先

    頭でなければ呼べない • コンストラクタでもprivate等修飾子を付けられる
  15. クラス変数、クラスメソッド(P33〜) • フィールドにstaticでクラス変数、メソッドにstaticで クラスメソッドとなる • アクセスはクラス名.各種要素名(インスタンス名で はない!) • staticの文字通り静的だから何度呼び出しても初 期化はされない

    • インスタンスの数に関係なく1つだから、共通にすべ き要素をstaticにすると便利
  16. Scannerクラス • おまじないの如く使ってたScannerは実はクラス • いつもscanインスタンスを作って.nextInt(); や.nextDouble();を使っていた • Stringも基本型じゃなくてクラスによるオブジェクト 型だから、.length();で文字列の長さ取れたりする

  17. 乱数生成の方法(P52〜) • Randomクラスのインスタンスを生成 • インスタンス名.nextInt(100);で0〜99の整数 0〜100じゃないから注意! • インスタンス名.nextDouble();で0.0〜1.0の実数 • 他のメソッドは教科書なりJDKの仕様書なり参照

  18. パース(P54〜) • 実行時引数などはStringでそのままintやdoubleと して扱えないのでパースが必要、Integerクラスや Doubleクラスなどにパース用メソッドがある • Integer.perseInt(String型の整数); • Double.perseDouble(String型の実数); •

    他のメソッドは教科書なりJDKの仕様書なり参照
  19. オブジェクト型変数の代入(P57〜) • クラスによるオブジェクト型も基本型同様代入がで きる Student st1 = new Student(4545); Student

    st2 = st1; • オブジェクト型変数はインスタンスの場所を示すか ら、この場合はst2でもst1インスタンスを指すように なる
  20. 値渡しと参照渡し(P61〜) • 今までメソッドに引数として渡してきたのは、普通の 変数の値だから値渡し • メソッド定義時に引数の型をオブジェクト型にして、 使用時の引数にそのオブジェクト型変数を書くと参 照を渡せる • 理解するまでは面倒な概念だけど、これでもアセン

    ブラやポインタよりは簡単だから頑張ろう
  21. オブジェクト型の配列(P63〜) • 文字通り、基本型だけじゃなくてクラスによるオブ ジェクト型も配列にできる。それだけ Student[] members = new Student[2]; members[0]

    = new Student(114); members[1] = new Student(514); • 正直手間だけど用途は割とあるはず
  22. 中間試験終わったら • ラーメン食いに行きたい(いつも行ってるけど) • 終 制作・著作 NHK