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
980
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
GraphQLとの向き合い方2022年版
quramy
44
13k
Navigating Team Friction
lara
183
15k
Visualization
eitanlees
146
15k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Building Adaptive Systems
keathley
38
2.3k
Mobile First: as difficult as doing things right
swwweet
222
9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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