クラスって何?
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
教授?
Javaのクラスって何ですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
プログラムを入れるための「器」だと思ってください。
最初に「これはプログラムを入れる器です」と宣言することを、クラスの宣言と言います。
public class Mokemoke{
}
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
Mokemokeというクラスを宣言しているのですね。
何か、決まりはあるのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
まずは、可視性です。
可視性とは、スコープとも言いますよ。
クラスやメソッドが他のクラスから参照できるか決めるものです。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
んー。
メソッドって何ですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
プログラムの処理をまとめたものですよ。
例えば、
public static void main(String[]args)
というのもメソッドの一種です。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
前回、出てきたヤツですね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
前回説明していたのは、メインメソッドというものになります。
話を戻しますが、可視性について最初のうちは覚えるということも大事ですね。
public | アクセス制限は特になく、すべてのクラスから参照可能 |
protected | 同じパッケージと子クラスから参照可能 |
指定なし | 同じパッケージからのみ参照可能 |
private | 自クラスからのみ参照可能 |
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
ということは、さっきのMokemokeクラスは、publicだったのですべてのクラスから参照可能というわけですね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
そうなります。
ちなみに、クラスの名前は、大文字で始めることになっていますので、注意してください。
・クラスの宣言
【可視性】 class 【クラス名】{
}
・クラス名の最初の文字は大文字にする
【変数の宣言】クラスの中身を作る
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
ところで、プログラムはいつ動くのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
Mokemokeクラスのことですね。
もう少し手間がかかりますよ。
変数を宣言しましょう。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
ちなみに、Mokemokeとはなんですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
Mokemokeはもけもけです。
もけもけは、教授の乗り物です。
白くてもけもけしたヤツです。
では、変数の宣言です。
public class Mokemoke{
public String color;
public String size;
private String gainSpeed;
}
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
変数にも決まりがあるのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
もちろん、あります。
・変数の宣言
【可視性】【型】【変数名】
例)private String speed
・変数名の最初の文字は小文字にします
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
ところで、変数gainSpeedだけは可視性がprivateですよね。
何か理由があるのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
ええ、colorやsizeは見た目の問題なので、他から見えても問題ありません。
gainSpeedは、見えるものではないのでprivateにしてあります。
教授は安全運転なのですよ?
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
なるほど。
コンプライアンス的に伏せておいた方が良い情報なのですね。
【メソッドの宣言】クラスの中身を作る
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
次はメソッドを作っていきますよ。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
これにも決まりがあるのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
もちろん、ありますよ。
・メソッドの宣言
【可視性】【戻り値の型】【メソッド名】【引数】
・戻り値が無い場合は、void と書きます
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
最初は、スピードからです。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
教授?
安全運転でお願いします。
public void speed(){
//スピードを出す
System.out.println(gainSpeed);
}
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
シンプルに変数gainSpeedの中身を表示するだけですよ。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
スピードメーターみたいな感じですね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
次はしゃべらせてみましょう。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
しゃべるという動きを表現するのですね。
public void speak(String words){
//話す
System.out.println(words + "もけもけ");
}
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
さらに、飛ばしてみましょう。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
なんと!
もけもけは飛べるのですか?!
public String takeOff(){
//飛ぶ
String fly = "もけもけ飛びます!";
return fly;
}
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
これで飛びますよ?
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
初めて、戻り値がString(文字列)になりましたね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
そうですね。
変数flyをreturnで返しますよ。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
この変数flyの可視性は何ですか?
指定なしなのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
メソッドの中の変数は、そのメソッドの中でしか使えませんので、可視性は特にありません。
クラスの変数を「メンバ変数」、メソッドの変数を「ローカル変数」と言います。
・メソッド名の最初の文字は小文字にします
・引数は、型と引数名をセットにします(複数の場合は「,」(カンマ)で区切ります)
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
ここまでよろしいですか?
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
一応、プログラムを書きましたよ。
public class Mokemoke{
public String color;
public String size;
private String gainSpeed;
public void speed(){
//スピードを出す
System.out.println(gainSpeed);
}
public void speak(String words){
//話す
System.out.println(words + "もけもけ");
}
public String takeOff(){
//飛ぶ
String fly = "もけもけ飛びます!";
return fly;
}
}
【オブジェクト化】インスタンス化する【new】
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
それでは、もけもけを召喚しましょう。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
召喚? 呼び出すのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
ええ、実体化させますよ。
その前にコンストラクタの使い方を学びましょう。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
コンストラクタとは何ですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
インスタンス化する時に、必ず必要な情報はコンストラクタで渡すのです。
もけもけの色とかサイズですね。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
そういえば、そんな変数も宣言しましたね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
次のように入力しますよ。
pubulic Mokemoke(String size,String color){
this.size = size;
this.color = color;
}
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
さっきのコードと組み合わせてみました。
public class Mokemoke{
public String color;
public String size;
private String gainSpeed;
pubulic Mokemoke(String color,String size){
this.color = color;
this.size = size;
}
public void speed(){
//スピードを出す
System.out.println(gainSpeed);
}
public void speak(String words){
//話す
System.out.println(words + "もけもけ");
}
public String takeOff(){
//飛ぶ
String fly = "もけもけ飛びます!";
return fly;
}
}
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
ちなみに、thisというのは、メンバ変数を参照するときの書き方になります。
つまり、this.color = colorのthisが付いている方のcolorという変数は、public String colorの方のcolorを示していますよ。
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
同じ変数名だから混同しないように、thisをつけるということですね。
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
では、もけもけ召喚です。
public class Main{
pubulic static void main(String[]args}{
Mokemoke mokemoke = new Mokemoke("白っぽい","大きい");
}
}
![](https://atnettec.com/wp-content/uploads/2023/11/ぱるち通信その44-e1700856760954-902x1024.jpg)
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
思ったより、デカい。
話すこともできるのですか?
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
話す時はこのようにしますよ。
public class Main{
pubulic static void main(String[]args}{
Mokemoke mokemoke = new Mokemoke("白っぽい","大きい");
Mokemoke.speak("ボクを呼びましたか?");
}
}
![教授](https://atnettec.com/wp-content/uploads/2023/02/イラスト.jpg)
ちなみに、飛ぶときはこうします。
public class Main{
pubulic static void main(String[]args}{
Mokemoke mokemoke = new Mokemoke("白っぽい","大きい");
Mokemoke.takeOff();
}
}
![生徒](https://atnettec.com/wp-content/uploads/2023/02/女生徒.jpg)
あ、どっか飛んで行った!
まあ、いいか。
![](https://www14.a8.net/0.gif?a8mat=3TAQ6M+6ZUGR6+3OAI+60OXD)