プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

私がおすすめするプログラミング教材のまとめ【書籍と動画】

プログラミング言語 スクリプト言語 コンパイル言語 アプリ開発 サーバー、インフラ、セキュリティなど 機械学習系 ゲーム開発 データベース 子供向け デザイン その他 おまけ まとめ この記事では、様々なプログラミング教材を紹介しました。 ...

続きを見る

【Dart入門】クラスの基本とインスタンス

更新日:

記事の内容


この記事では、Dartのクラスとインスタンスについて説明します。

クラスとインスタンス

では、実際にクラスを書いていきたいと思います。
Person(人間)クラスを作っていきます。

プロパティ

まず最初に、Personにname(名前)とage(年齢)というプロパティ(属性)を実装します。
クラスを定義するためには、「class」というキーワードの後に、大文字で始まる単語と「{}」を書きます。
「class Person {}」「class Animal {}」「class Country」とか、何でも成り立ちます。

コンストラクタで初期化してインスタンス化

基本的なインスタンス化

クラスとはあくまでも設計図なので、それだけでは何も実行をすることができません。
クラスを実行するためには、インスタンス化(new)する必要があります。

クラスをインスタンス化(new)する時に、初期値を設定します。
その初期値を設定(初期化)する作業をコンストラクタと呼びます。

例ではPersonクラスという設計図を元に、「のび太」という人間を生成する時に、名前(のび太)と年齢(11)を設定しています。
また、Personクラスは設計図なので、「ブラックジャック」という人間を生成することもできます。
Personクラスを元に「のび太」や「ブラックジャック」という人間を生成する処理のことを、「インスタンス化」と呼んでいます。
ドット(.)を使うことで、インスタンスのプロパティにアクセスすることができます。

プロパティへの代入を省略

コンストラクタは、このように書くことで、代入するコードを省略することもできます。

newを省略したインスタンス化

インスタンス化する時に、newを省略することもできます。

{}をつけたコンストラクタ

コンストラクタに「{}」をつけると、呼び出す時にプロパティ名を指定する必要があります。
コードをシッカリと書きたい時には、{}をつける方がいいかもしれません。

名前付きのコンストラクタ

コンストラクタは、名前付きで、別に書くことができます。

ここがポイント

  • クラスは設計図なので、そのままでは実行することができない
  • クラスを元にして、いくつものインスタンスを生成することができる
  • インスタンス化する時には、「new」というキーワードを使う
  • コンストラクタを使うことで、インスタンスを初期化することができる
  • 名前付きコンストラクタをつけることもできる

メソッド

次にクラスに振る舞いを実装します。
ここでは、「introduce」というメソッドを実装しました。

プロパティへのアクセス権限

現状、プロパティにはダイレクトにアクセスできるのですが、これはあまり良くありません。
エラーを引き起こしやすいコードです。

それをリファクタリングします。
クラス内で使うプロパティに「_」をつけて、人間が誤りづらいようにします。
(「_」をつけるとprivateになるということですが、同じパッケージ内だと普通に「_」がついているプロパティにもアクセスできます)
そして、その代わりのゲッターと呼ばれるデータの取得用のメソッドを作成します。
セッターは、データの変更用のメソッドです。
ゲッターには、「get」、セッターには「set」を使って定義します。

クラスでメソッド名だけを定義して、後で中身を実装する

クラス定義でメソッド名と引数の型だけを指定して、コンストラクタにメソッドの中身を渡すこともできます。
応用のテクニックですね。

メソッドの中身を定義しておいて、それを渡すこともできます。
やっていることは、上のコードも下のコードも同じです。

クラスの継承

継承とはソースコードを再利用する仕組みです。
「extends」というキーワードを使います。
NewTypeクラスは、Personクラスを継承(extends)しています。
そして、NewTypeにはintroduceメソッドは実装されていないのにも関わらず、introduceメソッドを使うことができています。
つまり、プログラムが再利用されています。

まとめ

この記事では、Dartのクラスとインスタンスについて説明しました。

Good luck for your engineer life!

エラーが起こりづらいクラスを書きたい人は、この記事を読んで下さい

【Dart入門】UnmodifiableListViewの説明と使い方

DartとFlutterをより詳しく勉強したい人は、この記事を読んで下さい

Dart
FlutterとDartの学習でおすすめの本と動画【2021年最新】

初心者向け Dart入門 - Dartの要点をつかむためのクイックツアー Dartの構文などを短時間で確認したい人にオススメの本です。 他の言語を全く使ったことがない人には難しいかもしれないので、ある程度の経験を積んだ人向けです。 でも、内 ...

続きを見る


SwiftでiOSアプリを開発したい人は、この記事を読んで下さい

Swiftの学習でおすすめの本と動画【2021年最新】

初心者向け 【6日で速習】iOS 13アプリ開発入門決定版 20個のアプリを作って学ぼう ▼ 今すぐ詳細を見てみる 地図検索、カメラ投稿、タイマー、日出時刻検索、ARアプリ、AIアプリなど実用アプリを20個以上作って学ぶことができます。 作 ...

続きを見る


KotlinでAndroidアプリを開発したい人は、この記事を読んで下さい

Kotlinの勉強でおすすめの本と動画【2021年最新】

初心者向け やさしいKotlin入門 プログラミング経験がない人にもオススメできる一冊です。 これ一冊で、アプリを作れるようにはなりませんが、Kotlinの楽しさを知るにはいい本だと思います^^ 速習 Kotlin: Javaより簡単!新A ...

続きを見る


Gitをより詳しく勉強したい人は、この記事を読んで下さい

Gitの学習でおすすめの本と動画【2021年最新】

漫画?でわかりやすく学ぶ入門書の定番 わかばちゃんと学ぶGit使い方入門 Gitの入門書の定番と言っても差し支えありません。 絵や図で解説している本なので、わかりやすく頭に入ってきます。 サルでもわかるGit入門 Gitの解説サイトが書籍化 ...

続きを見る


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 私が定義するWebエンジニア まず、最初に以下の図を見て下さい。 これが、Web業界で働く人達の大分類です ...

続きを見る


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? スクールの理想と現実 これからプログラミングを学ぼうとしている人が描 ...

続きを見る

関連コンテンツ

-Dart, プログラミング

Copyright© プログラミング道場 , 2021 All Rights Reserved Powered by AFFINGER4.