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

プログラミング道場

私がオススメするプログラミング教材です

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

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 デザイン9 組織作り10 自作シリーズ11 その他12 おまけ これ ...

続きを見る

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

更新日:

記事の内容


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

クラスとインスタンス

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

プロパティ

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

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

基本的なインスタンス化

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

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

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

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

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

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

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

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

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

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

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

ここがポイント

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

メソッド

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

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

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

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

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

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

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

クラスの継承

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

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

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

目次1 UnmodifiableListViewを使わないクラスの書き方2 UnmodifiableListViewを使ってリファクタリング UnmodifiableListViewを使わないクラスの書き方 コードの問題点(ミスを引き起こし ...

続きを見る

DartとFlutterをより詳しく勉強したい人には、この記事がオススメです

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

目次1 動画教材2 初心者向け3 中級者向け 動画教材 Flutter & Dart - The Complete Guide [2023 Edition] ▼ 興味がある方は、画像をクリック 英語版ですが、人気のコースです。 Fl ...

続きを見る


SwiftでiOSアプリを開発したい人には、この記事がオススメです

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

目次1 動画教材2 初心者向け3 中級者向け 動画教材 【iOS】SwiftUI 超入門 - Swift を基礎から学んで iOS (iPhone) アプリを開発しよう ▼ 興味がある方は、画像をクリック Swift , SwiftUI , ...

続きを見る


KotlinでAndroidアプリを開発したい人には、この記事がオススメです

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

目次1 動画教材2 初心者向け3 中級者向け 動画教材 はじめての Kotlin【Java 知らなくてOK!丁寧な解説で Android に必要な Kotlin の基本を学習】 ▼ 興味がある方は、画像をクリック 今学ぶべき言語、Kotli ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

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

目次1 動画教材2 漫画?でわかりやすく学ぶ入門書の定番3 初心者向け4 中級者向け5 上級者向け 動画教材 もう怖くないGit!チーム開発で必要なGitを完全マスター ▼ 興味がある方は、画像をクリック Gitの基本コマンド、ブランチやマ ...

続きを見る


ゼロからWebエンジニアになりたい人には、この記事がオススメです

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

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 目次1 私が定義するWebエンジニア2 必ずやるべきこと3 推奨されること4 まとめ 私が定義するWebエ ...

続きを見る


独学で実務っぽい経験を積みたい人には、この記事がオススメです

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

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? 目次1 スクールの理想と現実2 IT業界が抱える矛盾点3 擬似的に実 ...

続きを見る

-Dart, プログラミング

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