Java入門

Android開発のためのJava入門 第5回「クラスとメソッド」

Android Studio 4.1.1 に対応しました!

ここまでの記事はこちら
 

今回のテーマは

  • クラス
  • メソッド

についてです。

クラスとメソッドは、Java でコードを書いていくにあたって大切な考え方になります。

Android Studio を使ったアプリ開発ではクラスとメソッドをたくさん組み合わせて開発していくことになるので、ここでしっかりと理解しておきましょう
 


 

クラスとは?

基本的な使い方

java でコードを書く場合、必ずクラスを1つ用意する必要があります。
 

書き方は class クラス名 と書いて {} をつけるだけです。

 

これがクラスの基本型です。
 

一つ覚えていただきたいルールが「クラス名の最初の文字は大文字にすること」です。
例)Sample, Test, Animal, Car

単語の区切りも大文字にします。
例)SampleProject, TestClass, MyCar
 
 

クラスがどんなものなのか、ロボットを動かすプロジェクトを例にして考えてみましょう。

まずは Robot クラスを用意します。

 

このクラス内にロボットの頭・腕・足を動かすコードを書いていきますが、全て Robot クラスの中に書こうとすると以下のようになります。

 

今は文字だけで書いているので良いですが、これをコードで書いていくと何十行・何百行にもなります。

もちろんプログラムとしては動きますが、どこに何のコードを書いているのか分かりにくくなり、コードの管理が難しくなります。
 

この時に便利なのがクラスです。
 

クラスは複数作成することができるので「メインのクラスを1つ用意して、そこに補助的なクラスを組み込んでいく」という使い方ができます。

ロボットの場合は、Robot クラスとは別に

  • 頭を動かすクラス
  • 腕を動かすクラス
  • 足を動かすクラス

を作成して、これを Robot クラスと組み合わせて使うことができます。
 


 

このようにクラスを分けて書くことでコードが読みやすくなることはもちろんですが、複数人で開発する時にも役立ちます。

例えば

  • A さんは Head クラス担当
  • B さんは Arm クラス担当
  • C さんは Leg クラス担当

とクラスごとに役割分担してコードを書くことができます。

また途中で「頭を動かす機能はいらないな」と思ったら、 Head クラスだけを Robot クラスから外せば良いわけです。

クラスを上手く使うことで、効率的に開発を進めていくことができます。

具体的な使い方は実際にコードを書きながら紹介していきますが、クラスがどんなものかイメージが湧いたでしょうか?

Android Studio でのアプリ開発では、この「クラス」をたくさん使って開発していくことになります。
 

コメントの書き方

文の前に // をつけることで、その行を「コメント」とすることができます。

class Sample {
  // ここにコメントを書きます。
}

 

コメントとは「プログラムには影響しないけれど書いておきたいこと」です。

プログラムに影響しないからといって何を書いて良いわけではありません。

コードを読みやすくしたり、コードの作成者や権利について書く場合にも使用します。
 

複数行のコメントを書くときは /**/ で囲みます。

class Sample {
  /*
    複数行のコメントを
    書くことができます。
  */
}

 
 

MainActivity.java の構造

クラス

Android Studio ではどのようにクラスが作成されるのか確認してみましょう。

MainActivity.java を開いて下さい。

7行目に MainActivity クラス がありますね!


 

クラス名 MainActivity もルールの通り、最初の文字と単語の区切りが大文字で書かれています。
 
 

もう少し詳しくコードを見てみましょう。

public class MainActivity extends AppCompatActivity {

 

public

クラス名に public を付けるかどうかで、このクラスを使える範囲を制限することができます。現時点では「クラスは public にする」と理解しておいて下さい。
 

extends

extends(エクステンズ) は「拡張する」という意味で

class MainActivity extends AppCompatActivity

「MainActivity クラスは AppCompatActivity クラスを拡張する」という意味になります。
 
 

このとき MainActivity クラスをサブクラス、拡張するクラスのことをスーパークラスと呼びます。


 

前回「Android 開発ではアクティビティで画面を作っていく」と紹介しました。

そのアクティビティに関する基本的な機能、例えば画面の開始・終了、ナビゲーションバーの作成などのコードを用意してくれているのが、AppCompatActivity クラスです。

AppCompatActivity クラスを拡張することで、AppCompatActivity クラスにあるコードを MainActivity クラスでも使えるようになるので、自分で画面の開始・終了などのコードを自分で書く必要がなくなります。

スーパークラスのメソッドを使うことを「スーパークラスのメソッドを継承する」とも言います。

拡張できるクラスは AppCompatActivity クラス以外にもありますが、これはアプリを開発しながら徐々に覚えていけば問題ありません
 

package

次は MainActivity.java の1行目を見てみましょう。

package jp.codeforfun.sample;

ここにはプロジェクトを作成した時のパッケージ名が表示されています。

ここを変更してしまうとプロジェクトを実行できなくなってしまうのでご注意ください。
 
 

import

次は MainActivity.java の3行目です。

コードが折り畳まれていると思うので「+」を押して開いてください。


 

import androidx.appcompat.app.AppCompatActivity;

import(インポート)は「取り込む」という意味で、先ほど継承した AppCompatActivity クラスを取り込んでいます。

AppCompatActivity クラスは androidx/appcompat/app/AppCompatActivity.java ファイルに書かれているので、androidx.appcompat.app.AppCompatActivity という書き方になっています。
 

AppCompatActivity.java ファイルの中身を少し見てみましょう。

Windows の場合は Ctrl キー、Mac の場合は Command キーを押しながら、AppCompatActivity をクリックして下さい。


 

MainActivity と同じように class AppCompatActivity と書いてクラスが作成されていることが分かりますね。


 

5 行目の import android.os.Bundle; も同じように Bundle クラスを取り込んでいます。
 
 

メソッド

MainActivity クラスの中に protected void onCreate(Bundle savedInstanceState) { というコードがあります。

クラスの中にあるこのまとまりをメソッドと言います。


 

メソッドとは簡単に言うと「処理をまとめたもの」です。

メソッドには

  1. 処理を行うだけのメソッド
  2. 処理をして結果を返すメソッド

の2種類があります。
 

1. 処理を行うだけのメソッド

例として簡単なメソッドを用意してみました。

void sample() {
    // ここに処理を書いていきます。
}

void は空っぽという意味で「処理だけをする」メソッドに使います。
 
 

2. 処理をして結果を返すメソッド

処理をして結果を返すメソッドの場合は、void ではなく結果として返したいデータ型を書きます。

boolean sample() {
    // ここに処理を書いていきます。
    return true;
}

 

データ型については次回以降詳しく紹介しますが、boolean 型は true または false の値をもつデータ型です。

結果として返したいデータ型を指定して、そのデータ型の値を return で返します。このとき返す値を「戻り値」と言います。


 

引数

メソッド内で使いたい値がある場合は()の中に値を書くことができます。これを「引数」と言います。

void sample(引数1, 引数2) {
    // ここに処理を書いていきます。
}

 
 

もう一度 onCreate メソッドを見てみましょう。


 

void なので onCreate メソッドは処理をするだけのメソッドであることが分かります。

Bundle savedInstanceState は引数です。

protected は修飾子と言います。次回以降の記事で紹介していきます。
 
 

onCreate メソッドはアクティビティを初期化するメソッドで、MainActivity を呼び出した時に必ず実行されます。

アクティビティを作成すると必ずこの4行が追加されるので「onCreate メソッドは初期化する場所」と覚えておいて下さい。
 
 

@Override

onCreate メソッドのすぐ上に @Override と書いてあります。

Override(オーバーライド)は英語で「優先する、無効化する」という意味ですが、Java では「上書きする」に近い意味で使われます。
 

メソッドのすぐ上に @Override と書くことで「スーパークラスにある同じ名前のメソッドを上書きしている」ことを表しています。
 

MainActivity クラスは AppCompatActivity クラスを継承しているので、AppCompatActivity がスーパークラスでしたね。

ここでは、スーパークラス AppCompatActivity にある onCreate メソッドを上書きしているので @Override と書かれています。
 

AppCompatActivity.java を確認してみると onCreate メソッドがあります。


 

AppCompatActivity.java の onCreate メソッドにも @Override が付いているので、AppCompatActivity クラスもスーパークラスから onCreate メソッドを上書きしていることが分かります。
 

@Override を書かなくてもプログラムは動きますが、きちんと書いておくことでメソッドに間違いがあった場合などにエラーを表示してくれます。ほとんどの場合 Android Studio 側で自動的に追加してくれるので現時点ではあまり気にしなくて大丈夫です。
 
 

まとめ

少し盛りだくさんになってしまいましたが、いかがだったでしょうか?

extends, override, import などはコードを書きながら覚えていくものなので「なんとなく分かるかな」くらいで大丈夫です。

この講座の完全版 では extends, override, package, import についても詳しく紹介していきます。

 

現時点では

  1. java では クラスを必ず1つ用意する。
  2. クラス名の最初の文字と単語の区切りは大文字で書く。
  3. メソッドには「処理を行うだけのメソッド」「処理をして結果を返すメソッド」がある。
  4. onCreate メソッドはアクティビティを初期化するメソッド。

ということを覚えておいてください。
 
 
 

次に行うこと

次回は少しコードを書きながら、クラスとメソッドについてもう少し詳しく調べてみましょう
 

第6回「Hello Worldを書き換える」に進む
 
 
 

この講座の完全版について

Java入門講座についてはこちら
 

私はこれまでにオンライン講座と書籍に35万円以上使ってプログラミングを勉強してきました。

しかし、講座や書籍でプログラミングの基礎を学んでも

  • それを使って何ができるのか
  • いつ役立つのか
  • 次に何をすれば良いのか

と分からないことばかりでした。
 

特に Android アプリ開発(Java)には苦労しました。
 

Android 開発には Java を学ぶ必要があると知って Java の入門書を買いましたが、文字と数字を出力するばかりで Android 開発との関係性がわからず、途中で読むのを辞めてしまいました。
 

次に Android Studio を使ったアプリ開発の本を数冊か買いましたが、今度は Java の解説が少なくて、説明も専門用語ばかりであまり読む気がしなかったことを覚えています。
 

この経験から、これからプログラミングを始めようという方に

  • 「プログラミングって楽しい!」
  • 「もっと勉強してみたい!」
  • 「もっとアプリを開発してみたい!」

と思っていただける入門講座を作れないかとずっと考えていました。
 
 

約2年かかってようやく完成したのが「Android 開発のための Java 入門講座」です!

 
 

 

講座では Java の基礎を学びながら、簡単なアプリを開発していきます。

Android 開発に興味がある方、Java に一度挫折してしまったという方はぜひご参加お待ちしています
 

 
 

ABOUT ME
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
あなたにオススメのプログラミング講座

この講座では Android Studio で簡単なアプリを開発しながら Java の基礎・Android 開発を学ぶことができます。

Android 開発に興味がある方、Java に一度挫折してしまったという方にオススメの講座です。

guest
0 Comments
Inline Feedbacks
View all comments
0
この記事にコメントするx