今回の記事ではJavaのクラスについて現役エンジニアがわかりやすく解説していきます。
クラスの理解はオブジェクト指向言語を理解する上で欠かせない存在ですが、何しろ概念的で難しく、初心者が躓きがちです。
しかしこのクラスを理解できた時に本当のプログラミングの楽しさがわかると著者は考えています。
著者自身もプログラミングを勉強し始めたばかりの頃は、クラスの概念がわからずプログラミングが嫌いになりかけました。
ところがある日急にクラスの理解ができた日がありました。その日以降プログラミングが楽しくなり、現在までエンジニアとして働くことができています。
そのためクラスの理解ができていないままプログラミングの勉強を諦めてしまう方がいるのが残念であるため今回の記事を執筆しました。
この記事ではTwitterを例にとってクラスの説明をします。
「クラスについて理解したい」
「プログラミングを楽しくできるようになりたい」
そんなあなたにはぜひ最後まで読んでほしいです。よろしくお願いします!
クラスとは
Javaでのクラスというのはメンバ変数やメソッドといったまとめておくと便利になる情報をまとめたものです。
基本的な書き方は次のようになります。
class クラス名 {
// メンバ変数
String メンバ変数名;
// メソッド
void メソッド名() {
メソッドの処理...
}
}
ではここからクラスのメンバ変数とメソッドにはどんなことを書けば良いのか?ということについてTwitterを用いてわかりやすく解説していきます。
あなたはTwitterを使ったことがあるでしょうか?
Twitterのユーザーはどのような情報を持っていて、どのような操作をすることができるかを考えながら、クラスについて説明していきます。
メンバ変数(フィールド)
クラスにはメンバ変数とメソッドがあると説明しました。
まずはメンバ変数について解説していきます。
Twitterのユーザーはそれぞれ情報をいくつか持っています。
考えられるのは次のような情報です。
- ユーザー名
- フォロワー数
- フォロー数
これらの情報はそれぞれのユーザーで違いますが、みんな持っています。
こういった情報をメンバ変数としてまとめておくことで便利に利用することができます。
メソッド
次にメソッドについて考えてみます。
メソッドは処理の塊のことです。
Twitterのユーザーはどんな操作(処理)をすることができるでしょうか?
次のようなものが考えられます。
- ツイートする
- DMを送る
- フォローする
など様々な操作をすることができます。
これをクラスにまとめておくことで、便利に利用することができます。
Twitterのユーザークラスを実際のコードで書いてみた
ではここまで洗い出してきたTwitterの情報をもとに実際にJavaでTwitterのユーザークラスを作成してみます。
/**
* Twitterのユーザーを表すクラス
* @author uhablog
*
*/
public class TwitterUser {
// メンバ変数1:ユーザー名
String userName;
// メンバ変数2:フォロワー数
int follower;
// メンバ変数3:フォロー数
int follow;
// メソッド1:ツイートする
void tweet(String msg) {
System.out.println(msg);
}
// メソッド2:DMを送る
void directMessage(String msg, String sendPartner) {
System.out.println(sendPartner + "に" + msg + "と送りました!");
}
// メソッド3:フォローする
void doFollow(String userName) {
System.out.println(userName + "をフォローしました");
follow = follow + 1;
}
}
このTwitterのユーザークラスではそれぞれのユーザーが持っている共通の情報と、共通の処理を記述しています。
このクラスを準備しておくことで、アプリ内でユーザーを大量生産することが可能になります。
クラスを利用するためには?
ここまでクラスについて解説してきました。
クラスはあくまで情報と処理の塊みたいなもので、クラスがあるだけでは何も始まりません。
クラスにまとめてある情報や処理を実行するためにはクラスをインスタンス化して利用する必要があります。
このインスタンス化については別の記事で詳しく解説していますので、ぜひそちらの記事も合わせて読んでみてください。
より、Javaのクラスやオブジェクト指向についての理解が深まります。
まとめ
まとめにいきます。
今回はJavaのクラスについてTwitterのユーザーを例に出してわかりやすく解説してきました。
クラスは情報と処理の集まりで、Twitterのユーザー情報をまとめておくことで、ユーザーを大量生産できるようになるというようにプログラミングを効率よく行うことができます。
クラスは記述しただけでは実際にメソッドの実行をすることができず、インスタンス化する必要があります。
インスタンス化については別記事で解説していますので、詳しくはそちらの記事を読んでみてください!
このクラスやインスタンス化といった概念は非常に理解がしにくく、初心者が躓きがちです。
しかしこれらの概念はオブジェクト指向の重要な概念であり、プログラミングをしていく上で理解が必須となります。
「独学ではどうしてもクラスやインスタンスの理解ができない!」という方にはプログラミングスクールで学ぶことがおすすめです。
CodeCampはオンラインで完結するプログラミング学習サービスであるため、プログラミング初心者の方でも仕事や学校と両立しながら効率よくプログラミングを学べる環境となっています。!
コメント