Más contenido relacionado
Similar a 0720 abc seminar (19)
0720 abc seminar
- 6. 謎解きその1
Company Domain
アプリを一意に識別するための名前
ドメイン名を使うのがならわし
Package name
Javaのプログラム
(クラス)を
まとめておくために
使う
関連のあるクラスを
ひとまとめにして
おくと便利
(ですよね)
- 15. 変数には値型の変数と参照型の変数がある
値型の変数には値そのものが入れられます(値型はプリミ
ティブ型とも呼ばれます)
これは分かる。int i;とかでしょ
参照型の変数にはオブジェクトの参照が入れられます。
だから、参照って何!
→参照とは、オブジェクトがどこにあるかという情報だと考える
とよい
※ここでは「オブジェクト」と「インスタンス」をほぼ同じ意味で使って
います
コードを2つに分けて見てみましょう。
Random r; …… ① 参照型の変数rを宣言(Randomクラスのオブ
ジェクトを参照する)
r = new Random(); …… ② Randomクラスのオブジェクトを新
しく作り、その参照をrに代入する
(次のスライドに続く)
謎解きその5
- 18. ②のコード全体
r = new Random();
r オブジェクト
nextIntメソッド
ほんたいを、りもこん
に、
むすびつけた
• new演算子は、作成したオブジェクトの参照を返す
• それをrに代入する(データの流れは青い矢印)
• rを使ってオブジェクトが操作できるようになる(参
照の方向は赤い矢印:通常はこの矢印だけを示す)
- 19. 謎その6:コードの謎(イベントリスナー)
イベントリスナーってなんであんなに複雑?
Button b = (Button)this.findViewById(R.id.buttonShow);
final ImageView img = (ImageView)this.findViewById(R.id.imageDroid);
final TextView t = (TextView)this.findViewById(R.id.textFortune);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int fortune;
Random r = new Random();
fortune = r.nextInt(2);
if (fortune == 0) {
img.setImageResource(R.drawable.good);
t.setText("大吉");
} else {
img.setImageResource(R.drawable.bad);
t.setText("凶");
}
}
});
- 21. OnClickListenerを実装したクラスを作る
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button)this.findViewById(R.id.buttonShow);
final ImageView img = (ImageView)this.findViewById(R.id.imageDroid);
final TextView t = (TextView)this.findViewById(R.id.textFortune);
listener obj = new listener(); …… listenerクラスのオブジェクトを作る
b.setOnClickListener(obj); …… この2行をまとめる(次のスライド)
}
public class listener implements View.OnClickListener { …… OnClickListenerを実装
@Override
public void onClick(View v) { …… クリックされたときに実行されるメソッド
int fortune;
Random r = new Random();
fortune = r.nextInt(2);
if (fortune == 0) {
img.setImageResource(R.drawable.good);
t.setText("大吉");
} else {
img.setImageResource(R.drawable.bad);
t.setText("凶");
}
}
}
- 22. OnClickListenerを実装したクラスを作る
protected void onCreate(Bundle savedInstanceState) {
:
b.setOnClickListener(new listener()); …… objという変数が不要になった
}
public class listener implements View.OnClickListener { …… listenerの部分に埋め込む(次のスライ
ド)
@Override
public void onClick(View v) {
int fortune;
Random r = new Random();
fortune = r.nextInt(2);
if (fortune == 0) {
img.setImageResource(R.drawable.good);
t.setText("大吉");
} else {
img.setImageResource(R.drawable.bad);
t.setText("凶");
}
}
}
- 24. 謎ファイナル:コードの謎(final)
finalって何?
Button b = (Button)this.findViewById(R.id.buttonShow);
final ImageView img = (ImageView)this.findViewById(R.id.imageDroid);
final TextView t = (TextView)this.findViewById(R.id.textFortune);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int fortune;
Random r = new Random();
fortune = r.nextInt(2);
if (fortune == 0) {
img.setImageResource(R.drawable.good);
t.setText("大吉");
} else {
img.setImageResource(R.drawable.bad);
t.setText("凶");
}
}
});