サイトアイコン ハジカラ

【Kotlin入門】複数のクラスを使ってみる〜クラスちょっとだけ応用

こんにちは。

今回もクラスをみていきます。
もう少し複雑に作ってみましょう。

まずはクラスを作ってみます。
クラスには、プログラムの目的を果たしていくために必要な
値を保持する変数が必要になります。
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オブジェクトが実行されていますね。

実際の開発では、その目的に応じてクラスをいくつか作成します。
クラスの追い方や使い方に慣れておくと処理の幅がより
広がります✌

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

モバイルバージョンを終了