メソッド
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 6/110。
メソッドは、クラスに属する関数です。これらは、オブジェクトが実行できる振る舞いやアクションを定義します。
以下は、メソッドを持つクラスの例です。
class Calculator {
void greet() {
print('Hello! I am a calculator.');
}
int add(int a, int b) {
return a + b;
}
int multiply(int x, int y) {
int result = x * y;
print('$x x $y = $result');
return result;
}
}Dartのメソッドシグネチャには、常に戻り値の型が含まれます。メソッドが何も返さない場合は、voidを使用します。
calculatorオブジェクトを作成します:
Calculator myCalc = Calculator();引数を必要としないメソッドを呼び出します:
myCalc.greet();引数を指定してメソッドを呼び出し、戻り値を取得します:
int sumResult = myCalc.add(5, 3);
print(sumResult);値を出力し、かつ値を返すメソッドを呼び出します:
int product = myCalc.multiply(4, 7);出力:
Hello! I am a calculator.
8
4 x 7 = 28メソッドは以下のことが可能です:
int add(int a, int b)のような戻り値の型を持つreturnを使用して値を返すprint()を使用して出力を直接表示する- 何も返さない場合は
voidになる
重要なポイント: ドット演算子を使用してオブジェクトのメソッドを呼び出します: object.methodName(args)。
チャレンジ
簡単bank_account.dart 内に BankAccount クラスを作成し、以下のものを含めてください:
0に設定されたdouble balanceインスタンス変数double amountを受け取り、それをbalanceに加算するdepositメソッドdouble amountを受け取り、それをbalanceから減算するwithdrawメソッド- 現在の
balanceを返すgetBalanceメソッド
次に driver.dart で、アカウントを作成し、100 を預け入れ、30 を引き出し、次の形式で残高を表示してください:'Current balance: $[balance]'
チートシート
メソッドはクラスに属する関数であり、オブジェクトが実行できる振る舞いを定義します。
戻り値の型を指定してメソッドを定義します。メソッドが何も返さない場合は void を使用します:
class Calculator {
void greet() {
print('Hello! I am a calculator.');
}
int add(int a, int b) {
return a + b;
}
int multiply(int x, int y) {
int result = x * y;
print('$x x $y = $result');
return result;
}
}ドット演算子を使用して、オブジェクトのメソッドを呼び出します:
Calculator myCalc = Calculator();
myCalc.greet(); // パラメータなし
int sumResult = myCalc.add(5, 3); // パラメータあり、戻り値をキャプチャ
print(sumResult);
int product = myCalc.multiply(4, 7); // 出力して値を返すメソッドは戻り値の型を持つことができ、return を使用して値を返したり、print() を使用して直接出力を表示したり、何も返さない場合は void にしたりすることができます。
自分で試してみよう
import 'bank_account.dart';
void main() {
BankAccount myAccount = BankAccount();
myAccount.balance = 0;
// TODO: 100を入金する
// TODO: 30を引き出す
// TODO: 次の形式で残高を表示する: 'Current balance: $[balance]'
// Hint: 出力をきれいにするために balance に対して .toInt() を使用する
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ