見出し画像

プログラミングを始める。 - "もの"を表現する(class)。

生活している中で、いろんな"もの"があります。プログラミングで使うパソコンもそうですね。

例えばパソコンには、ディスプレイ、キーボードなどから出来上がっています。これをコードで表現する場合には使うのが構造体、クラスというものになります。

構造体は主にあるまとまったデータ、クラスはある"もの"の雛形、設計図を表すことを目的としています。"もの"とは何なのかということですが、何でも、"コード"で表そうということです。

構造体とは切り離して考えた方がわかりやすいと思うので、これからはクラスの話をします。

クラスは"class"という接頭語を付けて表します。基本の形は

class クラスの名前l{
// プロパティ
// メソッド
}

実例では、

class Animal{
   var name:String
   var age:Int

   func description(){
       print("gao")
   }
}

クラス名が"Animal"、そしてプロパティで、名前"name"と、年齢"age"を持っている。あと、メソッドで言葉"func discription(){}"を話す。

実行してみると、これではエラーがでます。

画像1

でも大丈夫。赤丸の"Fix"を押してみると、

class Animal{
   var name:String = ""
   var age:Int = 0
   func description(){
       print("gao")
   }
}

と思います。エラーが出て、"initializer"されていないと出ていたので

var name:String = ""
var age:Int = 0

自動で直してくれています。初期化ということで、最初に何かを入れておかないといけないということです。

このように初期値を入れてしまう方法がありますが、別の方法として、

class Animal{
   var name:String
   var age:Int
   
   init(name:String,age:Int){
       self.name = name
       self.age = age
   }
   
   func description(){
       print("gao")
   }
}

のように

init(name:String,age:Int){
self.name = name
self.age = age
}

イニシャライザー"init()"を使う方法です。これで設計図、"もの"の雛形ができました。

雛形から実体を作る場合をインスタンス化と言い、変数に入れる形で使います。

class Animal{
   var name:String
   var age:Int
   
   init(name:String,age:Int){
       self.name = name
       self.age = age
   }
   
   func description(){
       print("gao")
   }
}

のインスタンスを作ります。

var animal = Animal(name:"dog",age:3)

として、メソッドを使ってみます。

animal.description()

とすると

gao

と出力されます。

これでこのクラス"Animal"が一つの"もの"なりました。

この記事が気に入ったらサポートをしてみませんか?