KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

  1. KENスクール TOP >
  2. KENスクールブログ > プログラム > Kotlinのプロパティとコンストラクタ

プログラム

Kotlinのプロパティとコンストラクタ

概要

Kotlinのコンストラクタの話の前に、クラスについて説明します。

KotlinもJavaと同じくオブジェクト指向言語になります。なので、クラスについての基本的概念もJavaと何ら変わりはありません。クラス定義もJavaと同じ「class」キーワードを使用します。

KotlinとJavaで大きく違うのはプロパティとコンストラクタになります。

プロパティ

Javaでいうプロパティは、privateなフィールドを設定し、基本的に他クラスから、それにアクセスするためのアクセサメソッドを用意します。

上記の組み合わせでプロパティと呼ばれ、Java以外の言語でも多く使用されています。

定義側と呼び出し側に分けて説明していきます。

<定義>

  • Java(プロパティ)

Kotlinの場合、自分でアクセサメソッドを記述する必要はありません。

 

Kotlinは変数宣言の際、valまたはvarキーワードが必要です。

  • val:値の変更が不可(定数)
  • var:値の変更が可能

 

<定義>

  • Kotlin(プロパティ)

この記述でプロパティの設定は終わりです。Javaと比較するとだいぶスッキリしています。

アクセサメソッドは暗黙的に生成されます。ただし、valの場合は値を変更できないのでsetterは生成されません。

 

<呼び出し>

Kotlinで作成したEmployeeクラスはJavaからも使用することができます。その際は通常通りアクセサメソッドを使用して呼び出します。

Kotlinで呼び出す際はプロパティを直接参照する形で記述します。

 

  • Kotlin(プロパティ)

コンストラクタとはオブジェクト生成時に自動的に呼ばれる処理です。その性質からクラスのメンバの初期化処理等によく使用されます。クラスに1つ以上のコンストラクタが必ず存在します。

コンストラクタ

KotlinにおいてJavaと違うのは、コンストラクタを区別していることです。

Kotlinにはプライマリコンストラクタセカンダリコンストラクタがあります。コンストラクタとはオブジェクト生成時に自動的に呼ばれる処理です。その性質からクラスのメンバの初期化処理等によく使用されます。クラスに1つ以上のコンストラクタが必ず存在します。

プライマリコンストラクタ

プライマリコンストラクタとはクラスの定義と同時に定義されるコンストラクタです。プライマリコンストラクタでできることは下記になります。

  • プロパティの初期化処理
  • インスタンス化の際に行いたい処理

  init{}にインスタンス化の際に行いたい処理を書くことが可能です。

 

<定義>

  • Kotlin(プライマリコンストラクタ)

 

Kotlin(プライマリコンストラクタ)<呼び出し>

 

 プライマリコンストラクタでプロパティno,nameを宣言し、init{}で表示をしています。<結果>

セカンダリコンストラクタ 

コンストラクタを複数書くことができます。セカンダリコンストラクタはconstructorキーワードを使用して定義します。

  • プライマリコンストラクタが記述してある場合、必ず呼び出す必要がある
  • thisキーワードを使用してプライマリコンストラクタを呼び出す

 

<定義>

  • Kotlin(セカンダリコンストラクタ)

 

Kotlin(セカンダリコンストラクタ)<呼び出し>

 

 

 this()でプライマリコンストラクタを呼んでいます。<結果>

まとめ

  • Kotlinのプロパティはアクセサメソッドを明示的に書く必要はない
  • クラス定義時の()がプライマリコンストラクタ
  • セカンダリコンストラクタでコンストラクタの複数定義可能
  • プライマリコンストラクタを記述した場合、セカンダリコンストラクタで必ず呼ばなければならない