クラスとメソッド
目次
はじめに
今回のテーマは
- クラス
- メソッド
についてです。
クラスとメソッドは、Java でコードを書いていくにあたってとても大切な考え方になります。
Android アプリ開発では、クラスとメソッドをたくさん組み合わせて開発していくことになるので、まずは基本的な仕組みに慣れていきましょう。
クラスとは?
1. 基本的な使い方
java でコードを書く場合、まずはクラスを1つ用意します。
書き方は class クラス名 と書いて {} をつけるだけです。これがクラスの基本型です。
一つ覚えていただきたいルールが「クラス名の最初の文字は大文字にすること」です。
単語の区切りも大文字にします。
クラスがどんなものなのか、ロボットを動かすプロジェクトを例にして考えてみましょう。
まずは Robot クラスを用意します。
このクラスの中にロボットの頭・腕・足を動かすコードを書きますが、全てを Robot クラスの中に書こうとすると以下のようになります。
今は文字だけで書いているので良いですが、これをコードで書いていくと何十行、何百行にもなります。
もちろんプログラムとしては動きますが、どこに何のコードを書いているのか分かりにくくなり、コードの管理が難しくなります。
この時に便利なのがクラスです。
クラスは複数作成することができるので「メインのクラスを1つ用意して、そこに補助的にクラスを組み込んでいく」という使い方ができます。
ロボットの場合は、Robot クラスとは別に
- 頭を動かすクラス
- 腕を動かすクラス
- 足を動かすクラス
を作成して、これを Robot クラスと組み合わせて使うことができます。
このようにクラスを分けて書くことでコードが読みやすくなることはもちろんですが、複数人で開発する時にも役立ちます。
例えば
- A さんは Head クラス担当
- B さんは Arm クラス担当
- C さんは Leg クラス担当
とクラスごとに役割分担してコードを書くことができます。
また途中で「頭を動かす機能はいらないな」と思ったら、 Head クラスだけを Robot クラスから外せば良いわけです。
クラスを上手く使うことで、効率的に開発を進めていくことができます。
具体的な使い方は実際にコードを書きながら紹介していきますが、クラスがどんなものかイメージが湧いたでしょうか?
Android Studio でのアプリ開発では、この「クラス」をたくさん使って開発していくことになります。
2. コメントの書き方
コードやテキストの前に // をつけることで、その行を「コメント」とすることができます。
// ここにコメントを書きます。
}
コメントとは「プログラムには影響しないけれど書いておきたいこと」です。
プログラムに影響しないからといって何を書いて良いわけではありません。
コードを読みやすくしたり、コードの作成者や権利について書く場合にも使用します。
複数行のコメントを書くときは /* と */ で囲みます。
/*
複数行のコメントを
書くことができます。
*/
}
MainActivity.java の構造
1. クラス
Android Studio ではどのようにクラスが作成されるのか確認してみましょう。
MainActivity.java を開いて下さい。
7行目に MainActivity クラスがありますね!クラス名もルールどおりに最初の文字と単語の区切りが大文字で書かれています。
もう少し詳しくコードを見てみましょう。
public
クラス名に public を付けるかどうかで、このクラスを使える範囲を決めることができます。
現時点では「クラスは public にする」と理解しておいて下さい。
extends
extends(エクステンズ) は「拡張する」という意味で
は「MainActivity クラスは AppCompatActivity クラスを拡張する」という意味になります。
このとき MainActivity クラスをサブクラス、拡張するクラスのことをスーパークラスと呼びます。
前回「アプリ画面のことをアクティビティと呼ぶ」と紹介しました。
そのアクティビティに関する基本的な機能、例えば画面の開始・終了、ナビゲーションバーの作成などのコードを用意しているのが AppCompatActivity クラスです。
AppCompatActivity クラスを拡張することで、AppCompatActivity クラスにあるコードを MainActivity クラスでも使えるようになるので、画面の開始・終了などのコードを自分で書く必要がなくなります。
スーパークラスのメソッドを使うことを「スーパークラスのメソッドを継承する」とも言います。
拡張できるクラスは AppCompatActivity クラス以外にもありますが、これはアプリを開発しながら徐々に覚えていけば問題ありません。
2. package
次は MainActivity.java の1行目を見てみましょう。
ここにはプロジェクトを作成した時に入力したパッケージ名が表示されています。
ここを変更してしまうとプロジェクトを実行できなくなってしまうのでご注意ください。
3. import
import 文の確認
次は MainActivity.java の3行目です。
コードが折り畳まれていると思うので「+」を押して開いてください。
5行目あたりに
というコードがありますね。
import(インポート)は「取り込む」という意味で、継承している AppCompatActivity クラスを取り込んでいます。
AppCompatActivity クラスは androidx/appcompat/app/AppCompatActivity.java ファイルに書かれているので、androidx.appcompat.app.AppCompatActivity という書き方になっています。
AppCompatActivity クラスを確認
AppCompatActivity.java ファイルの中身を少し見てみましょう。
Windows の場合は Ctrl キー、Mac の場合は Command キーを押しながら、AppCompatActivity をクリックして下さい。
MainActivity と同じように class AppCompatActivity と書いてクラスが作成されていることが分かりますね。
5 行目の import android.os.Bundle; も同じように Bundle クラスを取り込んでいます。
4. メソッド
MainActivity クラスの中に protected void onCreate(Bundle savedInstanceState) { というコードがあります。
クラスの中にあるこのまとまりをメソッドと言います。
メソッドとは?
1. メソッドの種類
メソッドとは簡単に言うと「処理をまとめたもの」で
- 処理を行うだけのメソッド
- 処理をして結果を返すメソッド
の2種類があります。
① 処理を行うだけのメソッド
簡単な例として sample という名前のメソッドを用意してみました。
void は空っぽという意味で「処理だけをする」メソッドに使います。
// ここに処理を書いていきます。
}
② 処理をして結果を返すメソッド
処理をして結果を返すメソッドの場合は、void ではなく結果として返したいデータ型を書きます。
データ型については次回以降詳しく紹介しますが、boolean 型は true または false の値をもつデータ型です。
// ここに処理を書いていきます。
return true;
}
処理をして結果を返すメソッドは、指定したデータ型の値を return で返します。
このとき返す値を「戻り値(もどりち)」と言います。
2. 引数
メソッド内で使いたい値がある場合は()の中に値を書くことができます。
これを「引数(ひきすう)」と言います。
// ここで引数を使うことができます。
}
3. onCreate メソッドの確認
もう一度 onCreate メソッドを見てみましょう。
void なので onCreate メソッドは処理をするだけのメソッドであることが分かります。
Bundle savedInstanceState は引数です。
protected は修飾子と言います。次回以降の記事で紹介していきます。
onCreate メソッドはアクティビティを初期化するメソッドで、MainActivity を呼び出した時に必ず実行されます。
アクティビティを作成すると必ずこの4行が追加されるので「onCreate メソッドは初期化する場所」と覚えておいて下さい。
@Override
onCreate メソッドのすぐ上に @Override と書いてあります。
Override(オーバーライド)は英語で「優先する、無効化する」という意味ですが、Java では「上書きする」に近い意味で使われます。
メソッドのすぐ上に @Override と書くことで「スーパークラスにある同じ名前のメソッドを上書きしている」ことを表しています。
MainActivity クラスは AppCompatActivity クラスを継承しているので、AppCompatActivity がスーパークラスでした。
実はこの AppCompatActivity クラスも FragmentActivity クラスを継承していて、FragmentActivity クラスも ComponentActivity クラスを継承して、、、という構造になっています。
@Override を書かなくてもプログラムは動きますが、きちんと書いておくことでメソッドに間違いがあった場合などにエラーを表示してくれます。
ほとんどの場合 Android Studio 側で自動的に追加してくれるので現時点ではあまり気にせずに進みましょう。
まとめ
少し盛りだくさんになってしまいましたが、いかがだったでしょうか?
extends, override, import などはコードを書きながら覚えていくものなので「なんとなく分かるかな」くらいで大丈夫です。
現時点では
- java では クラスを必ず1つ用意する。
- クラス名の最初の文字と単語の区切りは大文字で書く。
- メソッドには「処理を行うだけのメソッド」「処理をして結果を返すメソッド」がある。
- onCreate メソッドはアクティビティを初期化する場所。
ということを覚えておきましょう。
次に行うこと
次回からはコードを書きながら、クラスとメソッドについてもう少し詳しく調べてみましょう。
0 コメント