筋トレ大好きな文系女学生のJava入門〜クラス定義とオブジェクト生成①〜


はじめに

新年度になり、わたしは大学4年生になりました
今日久々に学校に行き、学生証発行とついでに健康診断受けようと思ったんですけど、キラキラ 1年生が行列になって受診待ちしていたので、居心地悪くなり引き返しました笑
私も3年前は、大学の立地的?にファッションやメイクに気合を入れてたんですけど、歳を取るにつれUNIQLO縛りになったり、すっぴんで出歩くようになったりと・・・笑
でも、鍛えているので、ボディラインが出るUNIQLOの服をセクシーに着こなしています
では、今回から何回かに分けてクラス定義とオブジェクト生成についてやっていきたいと思います!
独学でやってるので、「これはJavaやっていくにあたって役に立つ知識だぞ!!」というのがあれば、コメントして頂けるととても嬉しいです

クラス定義

クラス名の1文字目以降
Unicode文字、アンダースコア「_」、ドル記号「$」
2文字目以降
上記に加え、数字(0〜9)

※Javaび予約語、リテラルであるtrue,false,nullは使用できません。
Unicodeも利用可能なのでひらがなや漢字を使うことができるが一般的でないため推奨されません。

クラスのブロック内に定義できる要素
1.フィールド
 インスタンスの状態を表現するもの
2.コンストラクタ
 インスタンスの事前準備のためのもの
3.メソッド
 処理するもの

クラス定義の書式

アクセス修飾子 class クラス名 {
  //クラス内の定義
}

1 public class Main {
2   public static void main(String[] args) {
3     Muscle m = new Muscle();
4     m.name = "腹筋";
5     System.out.println(m.name);
6   }
7 }

こんな感じです

クラス宣言には、必ずclassキーワードを付けます!

クラスのインスタンス化

いきなりですが、問題です !!
3行目の //※ には何が入るでしょうか!!

1 public class Main {
2   public static void main(String[] args) {
3     //※
4   }
5 }
6 class Muscle {
7   //クラス内の定義
8 }
  1. Muscle muscle = new Muscle();
  2. Muscle muscle = new Muscle;
  3. Muscle muscle = create Muscle();
  4. Muscle muscle = create Muscle;

↓答え

正解は1番です!おめでとうございます

クラスは型の定義であり、そのままでは利用することができません!!
定義されたクラスを使って、インスタンスを生成することによって初めて利用することができます。

インスタンスを生成する書式

クラス名 変数名 = new クラス名();
または
クラス名 変数名 = new クラス名(引数);

クラス名
インスタンス化するクラスの名前を記述
クラス名() または クラス名(引数)
呼び出すコンストラクタの名前(クラスの名前と同じ)および引数を記述
new
コンストラクタを呼び出してインスタンスを生成する

コンストラクタ

コンストラクタとは、インスタンスを使用できるように準備するための初期化処理を記述したもの。
newによるインスタンス化の際に自動的に呼び出される。

書式

アクセス修飾子 コンストラクタ名(引数) {
  //インスタンスを使用できるようにするための初期化処理
}

1 public class クラス名 {
2   public コンストラクタ名() {
3    //ここにインスタンス生成処理を記述
4   }
5 }

コンストラクタのルール

  1. コンストラクタ名は、クラス名と同じ
  2. 戻り値型は記述できない(void等)
  3. インスタンス生成時のみ