Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【身内向け】中間試験前のJava復習
Search
KAZU34
May 30, 2019
0
100
【身内向け】中間試験前のJava復習
必修落とさないようにしような(ブーメラン)
KAZU34
May 30, 2019
Tweet
Share
More Decks by KAZU34
See All by KAZU34
無償で使えるJDK事情について 〜商用利用も可なLTS JDKとJavaFX〜
kazu34
1
950
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
2.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
GraphQLとの向き合い方2022年版
quramy
43
13k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Unsuck your backbone
ammeep
668
57k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Designing Experiences People Love
moore
138
23k
Transcript
【身内向け】中間前のJavaまとめ • 頼むから最後まで見て、実際にコード書いて • 教科書や授業資料から要所々々掻い摘んだだけだ から、教科書も読んで実際にコード書いて • 専門用語とか詳細は教科書なりGoogleなり自分 で調べて、各自の為にならないから教えないよ •
頼むから最後まで見て、実際にコード書いて
しつこい注意事項 • マジで自分で書かないと覚えないし理解できない から書いて • 授業前後以外でサクラエディタ開かないとか論外 だし、正直教えるのに金取っていいレベル • 最初は1年生の頃の内容だけど見た方がいいよ だってコンパイルの仕方から危ういじゃん
コンパイルと実行の仕方 • 必要なソース全部同じディレクトリ内に入れる • コンパイルはjavac ファイル名.java(拡張子必要) • 実行はjava クラス名 [必要な場合のみ実行時引
数] (こっちは拡張子不要、classとかも要らんぞ) • 複数クラス時は利用する側(大抵mainメソッドがあ るクラス)だけコンパイルすれば、利用される側も自 動でコンパイルしてくれる
よく使う型 • 整数→int • 実数(小数)→double • 文字列→String 暗黙的な型変換はJavaでは原則行われずコンパイ ルエラーになる、必要ならキャストやパースをしよう
条件分岐判定(P1〜) • if、if〜else、if〜else if〜else • switch Javaには条件演算子ってのもあるけど、授業では 使わん
繰り返し(P6〜) • for • while • do〜while 継続条件がTrueならループ、終了条件じゃないよ! ネスト構造にすれば多重ループにできる break;でループ中断、continue;で今のループをス
ルーしてループ継続できる
配列(P9〜) • 同じ型で複数要素は配列にまとめると便利 型名[] 配列名 = new 型名[要素数]; • []を重ねると多次元配列にできる、↓は2次元配列
型名[][] 配列名 = new 型名[要素数][要素数]; • 多次元配列は多重ループと一緒に使う事が多い • 配列名.lengthで要素数が取れる、これはループの 継続条件に使う事が多い
メソッド • 定義 [修飾子] 戻り値型 メソッド名(引数) { //中身 } •
使用 メソッド名(引数); • 何気なく使ってるSystem.out.printlnもメソッドだよ
ここまで1年の内容 • いい加減コンパイルの仕方くらいは覚えてね…? • かなりザックリ書いたから気になる点は自分で(ry • こっから2年の内容だけど、1年の内容すら危ういと かなりしんどいよ
修飾子 • メソッドんとこでもさり気使ったけど、[修飾子]っての は必要な場合のみね • 授業でやったのはpublic、private、static • 追々説明しなくはないけど、教科書(ry
クラスの定義(P11〜) [修飾子] class クラス名 { [修飾子] 型名 フィールド名; コンストラクタ() {
} [修飾子] 戻り値型 メソッド名(引数) { [return 戻り値;] } }
クラスの使い方(P14〜) • 基本的にはインスタンスを生成する、インスタンスは クラスの複製 • インスタンスを生成しない場合は後述のstaticで • インスタンスの生成 クラス名 インスタンス名
= new クラス名(コンストラクタ引数); • インスタンスの使用 インスタンス名.各種要素名(変数なりメソッドなり)
public、private修飾子(P18〜) • フィールドは原則privateでカプセル化する 必要以上にアクセスできなくしてバグを防ぐ為 • 直接アクセス不可だからpublicなset、getメソッドを 作り、それ経由でアクセスする set+変数名…フィールドに代入するメソッド get+変数名…フィールドから取得するメソッド •
this.フィールド名で自クラスフィールドと明示できる
コンストラクタ(P27〜) • インスタンス生成時に実行される初期化命令群 • 戻り値は無い、コンストラクタの名前は必ずクラスと 同じ • コンストラクタを多重定義(オーバーロード)してる場 合、this(引数);でコンストラクタから他のコンストラ クタを呼べる。初期化用だからコンストラクタの先
頭でなければ呼べない • コンストラクタでもprivate等修飾子を付けられる
クラス変数、クラスメソッド(P33〜) • フィールドにstaticでクラス変数、メソッドにstaticで クラスメソッドとなる • アクセスはクラス名.各種要素名(インスタンス名で はない!) • staticの文字通り静的だから何度呼び出しても初 期化はされない
• インスタンスの数に関係なく1つだから、共通にすべ き要素をstaticにすると便利
Scannerクラス • おまじないの如く使ってたScannerは実はクラス • いつもscanインスタンスを作って.nextInt(); や.nextDouble();を使っていた • Stringも基本型じゃなくてクラスによるオブジェクト 型だから、.length();で文字列の長さ取れたりする
乱数生成の方法(P52〜) • Randomクラスのインスタンスを生成 • インスタンス名.nextInt(100);で0〜99の整数 0〜100じゃないから注意! • インスタンス名.nextDouble();で0.0〜1.0の実数 • 他のメソッドは教科書なりJDKの仕様書なり参照
パース(P54〜) • 実行時引数などはStringでそのままintやdoubleと して扱えないのでパースが必要、Integerクラスや Doubleクラスなどにパース用メソッドがある • Integer.perseInt(String型の整数); • Double.perseDouble(String型の実数); •
他のメソッドは教科書なりJDKの仕様書なり参照
オブジェクト型変数の代入(P57〜) • クラスによるオブジェクト型も基本型同様代入がで きる Student st1 = new Student(4545); Student
st2 = st1; • オブジェクト型変数はインスタンスの場所を示すか ら、この場合はst2でもst1インスタンスを指すように なる
値渡しと参照渡し(P61〜) • 今までメソッドに引数として渡してきたのは、普通の 変数の値だから値渡し • メソッド定義時に引数の型をオブジェクト型にして、 使用時の引数にそのオブジェクト型変数を書くと参 照を渡せる • 理解するまでは面倒な概念だけど、これでもアセン
ブラやポインタよりは簡単だから頑張ろう
オブジェクト型の配列(P63〜) • 文字通り、基本型だけじゃなくてクラスによるオブ ジェクト型も配列にできる。それだけ Student[] members = new Student[2]; members[0]
= new Student(114); members[1] = new Student(514); • 正直手間だけど用途は割とあるはず
中間試験終わったら • ラーメン食いに行きたい(いつも行ってるけど) • 終 制作・著作 NHK