Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

コンパイルと実行の仕方 ● 必要なソース全部同じディレクトリ内に入れる ● コンパイルはjavac ファイル名.java(拡張子必要) ● 実行はjava クラス名 [必要な場合のみ実行時引 数] (こっちは拡張子不要、classとかも要らんぞ) ● 複数クラス時は利用する側(大抵mainメソッドがあ るクラス)だけコンパイルすれば、利用される側も自 動でコンパイルしてくれる

Slide 4

Slide 4 text

よく使う型 ● 整数→int ● 実数(小数)→double ● 文字列→String 暗黙的な型変換はJavaでは原則行われずコンパイ ルエラーになる、必要ならキャストやパースをしよう

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

配列(P9〜) ● 同じ型で複数要素は配列にまとめると便利 型名[] 配列名 = new 型名[要素数]; ● []を重ねると多次元配列にできる、↓は2次元配列 型名[][] 配列名 = new 型名[要素数][要素数]; ● 多次元配列は多重ループと一緒に使う事が多い ● 配列名.lengthで要素数が取れる、これはループの 継続条件に使う事が多い

Slide 8

Slide 8 text

メソッド ● 定義 [修飾子] 戻り値型 メソッド名(引数) { //中身 } ● 使用 メソッド名(引数); ● 何気なく使ってるSystem.out.printlnもメソッドだよ

Slide 9

Slide 9 text

ここまで1年の内容 ● いい加減コンパイルの仕方くらいは覚えてね…? ● かなりザックリ書いたから気になる点は自分で(ry ● こっから2年の内容だけど、1年の内容すら危ういと かなりしんどいよ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

クラスの定義(P11〜) [修飾子] class クラス名 { [修飾子] 型名 フィールド名; コンストラクタ() { } [修飾子] 戻り値型 メソッド名(引数) { [return 戻り値;] } }

Slide 12

Slide 12 text

クラスの使い方(P14〜) ● 基本的にはインスタンスを生成する、インスタンスは クラスの複製 ● インスタンスを生成しない場合は後述のstaticで ● インスタンスの生成 クラス名 インスタンス名 = new クラス名(コンストラクタ引数); ● インスタンスの使用 インスタンス名.各種要素名(変数なりメソッドなり)

Slide 13

Slide 13 text

public、private修飾子(P18〜) ● フィールドは原則privateでカプセル化する 必要以上にアクセスできなくしてバグを防ぐ為 ● 直接アクセス不可だからpublicなset、getメソッドを 作り、それ経由でアクセスする set+変数名…フィールドに代入するメソッド get+変数名…フィールドから取得するメソッド ● this.フィールド名で自クラスフィールドと明示できる

Slide 14

Slide 14 text

コンストラクタ(P27〜) ● インスタンス生成時に実行される初期化命令群 ● 戻り値は無い、コンストラクタの名前は必ずクラスと 同じ ● コンストラクタを多重定義(オーバーロード)してる場 合、this(引数);でコンストラクタから他のコンストラ クタを呼べる。初期化用だからコンストラクタの先 頭でなければ呼べない ● コンストラクタでもprivate等修飾子を付けられる

Slide 15

Slide 15 text

クラス変数、クラスメソッド(P33〜) ● フィールドにstaticでクラス変数、メソッドにstaticで クラスメソッドとなる ● アクセスはクラス名.各種要素名(インスタンス名で はない!) ● staticの文字通り静的だから何度呼び出しても初 期化はされない ● インスタンスの数に関係なく1つだから、共通にすべ き要素をstaticにすると便利

Slide 16

Slide 16 text

Scannerクラス ● おまじないの如く使ってたScannerは実はクラス ● いつもscanインスタンスを作って.nextInt(); や.nextDouble();を使っていた ● Stringも基本型じゃなくてクラスによるオブジェクト 型だから、.length();で文字列の長さ取れたりする

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

パース(P54〜) ● 実行時引数などはStringでそのままintやdoubleと して扱えないのでパースが必要、Integerクラスや Doubleクラスなどにパース用メソッドがある ● Integer.perseInt(String型の整数); ● Double.perseDouble(String型の実数); ● 他のメソッドは教科書なりJDKの仕様書なり参照

Slide 19

Slide 19 text

オブジェクト型変数の代入(P57〜) ● クラスによるオブジェクト型も基本型同様代入がで きる Student st1 = new Student(4545); Student st2 = st1; ● オブジェクト型変数はインスタンスの場所を示すか ら、この場合はst2でもst1インスタンスを指すように なる

Slide 20

Slide 20 text

値渡しと参照渡し(P61〜) ● 今までメソッドに引数として渡してきたのは、普通の 変数の値だから値渡し ● メソッド定義時に引数の型をオブジェクト型にして、 使用時の引数にそのオブジェクト型変数を書くと参 照を渡せる ● 理解するまでは面倒な概念だけど、これでもアセン ブラやポインタよりは簡単だから頑張ろう

Slide 21

Slide 21 text

オブジェクト型の配列(P63〜) ● 文字通り、基本型だけじゃなくてクラスによるオブ ジェクト型も配列にできる。それだけ Student[] members = new Student[2]; members[0] = new Student(114); members[1] = new Student(514); ● 正直手間だけど用途は割とあるはず

Slide 22

Slide 22 text

中間試験終わったら ● ラーメン食いに行きたい(いつも行ってるけど) ● 終 制作・著作 NHK