Kotlinゆったり入門(3日目)
こんばんわ、@trajanmeです。
平日は飲み会や他にやりたいことがあったりするので、週末に書いていければ、と思っています。
余談ですが、仙台で今ジョジョ展をやっていまして、今日はそれを見てきました。
25周年のときは東京で見ましたが、杜王町のモデルとなった仙台で見ることができて感激でした:)
クラス(オブジェクトベース)
クラスはオブジェクトの1つで、無理やり書くとこんな感じでしょうか。
銀行口座の例で簡単に作ってみましたが、この辺はJavaのクラスとだいたい一緒ですかね。
(実際には、オブジェクトを意識せずに書いたり、インタフェースを使わずに書くこともできますが…)
interface BankInterface { fun deposit(quantity: Int) fun debit(quantity: Int) fun transfer(dest: BankInterface, quantity: Int) val account: Int var balance: Int } class Bank(_account: Int): BankInterface { override val account = _account override var balance: Int = 0 override fun deposit(quantity: Int) { balance += quantity } override fun debit(quantity: Int) { if (balance >= quantity) balance -= quantity } override fun transfer(dest: BankInterface, quantity: Int) { if (balance >= quantity) { balance -= quantity dest.deposit(quantity) } else { println("[!] Don\'t have enough money! Please deposit to account.") } } } fun main(args: Array<String>) { val bank1: BankInterface = Bank(1234567) val bank2: BankInterface = Bank(2345678) bank1.deposit(120000) bank1.transfer(bank2, 50000) println(bank1.balance) println(bank2.balance) bank1.transfer(bank2, 80000) }
今日は、オブジェクトとクラスの関係、インタフェースがオブジェクトに型を持たせることができることを学びました。
明日はクラスのset
やget
、コンストラクタなどを学習していこうと思います。
コードが長くなってきてしまっているので、そろそろGithubに適当なリポジトリを作って管理することも検討します。
バナーでKotlinがなかったので、一応Javaで登録してみました。笑