More Related Content
Similar to LITメンター研修_Android0212
Similar to LITメンター研修_Android0212 (20)
LITメンター研修_Android0212
- 3. §本日のおさらい
→Activity, Service,Broadcast receiver, Content
・Androidコンポーネント Providerの4つが存在。一つの画面に対して一つのActivity
が対応
・Acticityのライフサイクル →Activityが生成されてから、消滅するまでには一定の流れが
存在。その中で、onCreate(), onPause()などはライフサイク
ルの中で自動的に呼び出されるメソッド
・画面遷移とIntent →IntentはAndroidにおける連絡役。画面遷移やデータの受け渡
しなどに使用する。アプリ間での使用も可能
・Android Manifest →プロジェクトの情報を管理している。画面を増や
したらManifestへも記載する
・イベント処理について →代表例:ボタンのクリックについても複数
の処理が存在。
→R.javaが存在しない時はXMLファイルのエラー。
・エラーの対処方法
13年2月13日水曜日
- 5. §アプリ開発方法のまとめ
・アプリ作成の流れ
→コンセプト、デザイン、コーディング
・アルゴリズム
→入出力、演算、条件分岐、ループetc
・オブジェクト指向プログラミング
→クラス(フィールド、メソッド)
13年2月13日水曜日
- 6. §構想から製作まで
・アプリ作成の流れ
→コンセプト、デザイン、コーディング
作りたいアプリのアイデアは人に説明出来ますか?
アプリのデザイン、画面遷移は図にできますか?
必要な処理について洗い出しができますか?
コンセプト、デザイン、コーディングは
順番に進めていきましょう
13年2月13日水曜日
- 7. §プログラムの実際の処理内容
・アルゴリズム
→入出力、演算、条件分岐、ループetc
if, switch, for, while文は正しく書けますか?
処理させたい内容をプログラムに落とし込めますか?
具体的な処理の実現方法、それらを組み
合わせて複雑な処理を行わせる方法、両
方とも出来る必要があります
13年2月13日水曜日
- 8. §アプリ開発方法のまとめ
・オブジェクト指向プログラミング
→クラス(フィールド、メソッド)
オブジェクト指向とは何か?
オブジェクト、クラス、インスタンスとは何?
インスタンスのメンバへのアクセス方法は?
目標:これまで作ってきたアプリのコー
ドを読めるようにしよう
13年2月13日水曜日
- 9. オブジェクト指向とは?? 分かりやすさ重視で正確な定義などから
は外れています。ご留意下さい
◆抽象的な概念 ◆具体的な形式 プログラムに落としこむと…
オブジェクト… データ と 処理方法 をまとめた集合 クラス… フィールド と メソッド を指定する
メッセージ…オブジェクト同士が受け渡す情報 オブジェクトの定義(みたいなもの)
インスタンス…クラスを基に生成される具体的
→オブジェクトという相互に連絡しあう構成単位で なデータの集合( データ と 処理方法 を持っ
プログラムを組み立てる設計思想の事 ているので、オブジェクト)
オブジェクト
メ
ッ
フィールド セ
ー
ジ
の
や オブジェクト
り
オブジェクト 取
メソッド り
フィールド
フィールド ◆メッセージの内容
値の読み取り、書き込み
メソッド
メソッドの実行命令
メソッド
etc
オブジェクト
フィールド
メソッド
13年2月13日水曜日
- 10. クラス:フィールドとメソッド
◆クラス
クラスはオブジェクトの設計図として考えることができます。大きく分けてフィールド
(メンバ変数)とメソッドから成り立ちます。
実際にオブジェクトを使用する時はクラス(設計図)から、インスタンス(実物)を作成
して、使用します
具体例
TextViewクラス メソッドの形式 Javaの場合
(アクセス修飾子) (戻り値の型) メソッド名 (引数の型 引数名){
フィールド メソッドの内容
}
android:text
コードを理解するために(メソッド内の変数)
メソッドの中で宣言された変数などは、メソッド内のみ有効
メソッド →クラスの変数とは区別されるので注意
public final void setText
(CharSequence text) フィールドの形式 Javaの場合
・・・ (アクセス修飾子) (型) フィールド名;
13年2月13日水曜日
- 11. インスタンスの作成、関連付け
TextViewクラス クラス名 インスタンス名;
と書くことでインスタンスを
フィールド 作成する
android:text
private TextView mTextNumber;
private TextView mTextAho;
メソッド
public final void setText
private TextView mTextRatio;
(CharSequence text) コードを理解するために(基本型と参照型)
変数には基本型(int doubleなど)と参照型という物が存在する。
・・・ 基本型は 値(フィールド) のみ!
参照型はクラスから作られるインスタンスなので、 値 と メソッド を
持っている。どちらもフィールドとして使用可能
コードを理解するために(インスタンスとXMLオブジェクトの関連付け)
Javaのフィールド XMLのオブジェクト
mTextNumber = (TextView)findViewById(R.id.textView_number);
mTextAho = (TextView) findViewById(R.id.textView_aho);
mTextRatio = (TextView) findViewById(R.id.textView_ratio);
キャスト メソッド名 int型
int型からTextView型へ
13年2月13日水曜日
- 12. フィールド、メソッドへのアクセス
◆インスタンスのフィールド、メソッドの使用方法
インスタンスはクラス(設計図)が持つフィールド、
メソッドを使用することができます。
Carクラス(設計図)
フィールドの形式
int number Car1.number = 20130212;
String setText()
このコードが書かれているオブジェクトから
Car1オブジェクト(インスタンス)に値書き込みのメッセージが渡っている
メソッドの形式
Car1(インスタンス)
TextView text1;
int number
text1.setText( Car1.setText() );
String setText()
13年2月13日水曜日
- 13. クラスの継承
◆super, Extends, Implementsとは??
クラスは親子関係をもたせる事が可能です。
子供に親の持つ機能を使わせる事ができるようになります
Javaの全ての親クラス
Java.lang.Object
コードを理解するために(アクセス修飾子)
コードを理解するために(オーバーライド)
public, private, protectedなどはアクセス
親クラス(スーパークラス)から継承したメ
修飾子という物です。そのデータに対して、
のアクセス(読み込み書き込みなど)の制限
親クラス ソッドの内容を、変更して、新しいメソッド
内容を作成すること。
を行なっている
MethodA()
子クラスA 親クラスは一つしか持つこ
とができない。それゆえ、 子クラスB
クラスは全て樹形図の様に
super.MethodA() @override
繋がっている
親メソッドの使用 MethodA(int number)
MethodB() オーバーライド
メソッドの新規作成
13年2月13日水曜日
- 14. コードを実際に読んでみよう(ex:カウントアプリ)
import:使用するクラスがSDKの中のどこにあるのかを指定
class クラス名 extends 親クラス:Activityクラスを基に
カウントアプリで表示されるActivityを作成する
Activityクラスのフィールドを指定:他のクラス(TextView)からインスタンス
を作成して、このクラスの変数としている。
onCreate():このActivityのインスタンスが作られ
た時に呼ばれるメソッド
findViewById():Activityの変数とXMLを関連付け
purasu():このクラスが持つメソッド。ボタンからのイベントが引数
(この場合は実行条件の意味合い)となり、void型なので、戻り値を出
さない。
setText():Text1はこのクラスの変数と同時に、TextViewクラスのインスタンスな
ので、そのメソッドを呼び出している。表示内容はStringクラスの静的メソッド
format()によって、int型のnumberから変換した文字列
13年2月13日水曜日
- 15. 参考:Objective-cでの表現
クラスの宣言 @interface クラス名:スーパークラス{
メンバ変数
hファイル }
メソッド宣言
@end
クラスの実装 #import hoge.h
@implementation
mファイル 各種実装
@end
13年2月13日水曜日
- 16. 文字列 @ 文字列
cf) オブジェクト名.メソッド名()
メッセージ式 [オブジェクト名 メソッド名]
オブジェクト間でメッセージを送っている事を表現している
([メッセージの宛先 内容])
メソッド
-(戻り値の型) メソッド名 : (引数の型) 引数名 ラベル名 : (引数の型) 引数名
13年2月13日水曜日