こんにちは。
今回もクラスをみていきます。
もう少し複雑に作ってみましょう。
まずはクラスを作ってみます。
クラスには、プログラムの目的を果たしていくために必要な
値を保持する変数が必要になります。
Kotlinでは、その変数を「プロパティ」と呼びます😄
javaでは、メンバ変数と呼びますね。
以下のクラスでは、そのプロパティを定義しています。
また、「constructor」(コンストラクタ)を使用しています。
「constructor」は、引き数に与えた値を用いてオブジェクト
を作る関数です。
これは、プライマリコンストラクタとも呼びます。
// コンストラクタを使用するクラス
class Animal constructor(animal:String, num:Int){
// プロパティ
val animal = animal
val num =num
// 引き数なしの関数
fun getBirds(){
println(“${animal}が${num}匹います。”)
}
}
では、mainクラスからこのクラスを呼んでみましょう😀
6行目と7行目で2回呼んでいるのがわかるでしょうか。
引き数を変えてオブジェクトを作っています。
10行目は、最初に作成した方を実行しています。
12行目は何をしているかというと、2つのオブジェクトの
変数animalが同じかどうかを判定しています。
fun main(args: Array<String>) {
println(“処理開始ーーーー”)
// クラスからオブジェクトを作る。
val bird = Animal(“白鳥”,4)
val bird2 = Animal(“白鳥”,6)
// オブジェクトの関数を呼び出す。
bird.getBirds()
if (bird.animal == bird2.animal) {
println(“${bird.animal}は最初${bird.num}匹だったが、” +
“後に${bird2.num}匹になった。”)
}
println(“ーーーー処理終了”)
}
↓ 実行してみましょう。
オブジェクトとその変数の呼び出しがわかりますね💡
次は、クラスからクラスを呼んでみましょう。
クラスを2つ用意します。
1つは、上記のAnimalクラスを使用します。
もう1つは以下のZooクラスを作成します。
特徴は、引き数にAnimalクラスを持っていることです。
クラスのオブジェクトは値なので、関数の引き数としても
プロパティとしても使用できます。
6行目で、getBirds関数を実行しています。
class Zoo (val animals:Animal,val zoo:String) {
fun getZoo() {
println(“${zoo}動物園には、”)
animals.getBirds()
}
}
main関数で呼び出します。
5行目で、ZooクラスのgetZooクラスを実行しているのが
わかります。
また引き数に先ほどのAnimalクラスのオブジェクトをセット
しています。
fun main(args: Array<String>) {
println(“処理開始ーーーー”)
Zoo(Animal(“白鳥”,4),”DOKOKANO”).getZoo()
println(“ーーーー処理終了”)
}
↓ では、実行してみましょう。
まず、Zooオブジェクトが実行され、その後Zooオブジェクト
内からAnimalオブジェクトが実行されていますね。
実際の開発では、その目的に応じてクラスをいくつか作成します。
クラスの追い方や使い方に慣れておくと処理の幅がより
広がります✌
今回はここまで🤚
では、また次回。