Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【身内向け】中間試験前のJava復習
Search
KAZU34
May 30, 2019
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【身内向け】中間試験前のJava復習
必修落とさないようにしような(ブーメラン)
KAZU34
May 30, 2019
More Decks by KAZU34
See All by KAZU34
無償で使えるJDK事情について 〜商用利用も可なLTS JDKとJavaFX〜
kazu34
1
1.4k
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
We Have a Design System, Now What?
morganepeng
55
8.4k
Between Models and Reality
mayunak
4
480
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Believing is Seeing
oripsolob
1
240
Site-Speed That Sticks
csswizardry
13
1.5k
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