[Kotlin] Class & Inheritance
15066 ワード
クラスの基本構造
クラスは、値とその値を使用する機能を組み合わせます.
ユニークな特徴値<属性>+機能実装<関数>
≪インスタンス|Instance|emdw≫
クラスを使用して作成された異なるプロパティを持つオブジェクト.
fun main() {
var a =Person("박보영", 1990) //인스턴스 a
var b = Person("전정국", 1997) //인스턴스 b
var c = Person("장원영",2004) //인스턴스 c
a.introduce()
b.introduce()
c.introduce()
}
class Person(var name:String, val birthYear: Int) {
fun introduce(){ //함수 추가
println("안녕하세요, ${birthYear}년생 ${name}입니다")
}
}
オブジェクト向けの基本構造+関数言語の利点=エラークラスのコンストラクタ
:新しいインスタンスを作成するために呼び出される特殊な関数.
<機能>
初期化
(init関数は、ジェネレータによるインスタンスの作成時に呼び出されるパラメータまたは戻りタイプのない特殊な関数です)
デフォルト作成者
:クラス作成時のデフォルト宣言
ほじょジェネレータ
:必要に応じてさらに宣言します.
インスタンスの作成を容易にするために、基本作成者とは異なる形式の作成者を提供するか、追加の構築を実行する機能を提供するか、必要に応じて宣言を追加するか、基本作成者、およびインスタンスの作成を容易にするための他の形式の作成者を提供するか、追加の構築を実行する機能を提供します.
セカンダリジェネレータを作成する場合は、デフォルトジェネレータでプロパティを初期化する必要があります.
アクセシビリティジェネレータ呼び出しデフォルトジェネレータ
constructor(name:String):this(name,1997)
fun main() {
var a =Person("박보영", 1990)
var b = Person("전정국", 1997)
var c = Person("장원영",2004)
var d = Person("박지민")
var e = Person("김석진")
var f= Person("김남준")
}
class Person(var name:String, val birthYear: Int) {
init {
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다")
}
constructor(name:String):this(name, 1997){
println("보조생성문이 사용되었습니다")
}
}
クラスの継承
inheritance
継承の必要性
既存のクラスを拡張して、新しいプロパティまたは関数を追加するクラスを作成する必要がある場合.
コード管理を容易にするために共通点を抽出するために複数のクラスが作成されました.
サブクラス:継承クラス
実装継承:Animal Dog,Cat決定
Openは、クラスを宣言するときにクラスに割り当てられるキーワードで、クラスを継承します.
fun main() {
var a =Animal("별이", 5, "개")
var b = Dog("별이", 5)
a.introduce()
b.introduce()
b.bark()
var c = Cat("루이", 1)
c.introduce()
c.meow()
}
open class Animal(var name:String, var age:Int, var type:String){
fun introduce(){
println("저는 ${type} ${name}이고, ${age}살입니다.")
}
}
class Dog(name: String, age:Int) : Animal(name, age, "개"){
fun bark() {
println("멍멍")
}
}
class Cat(name:String, age:Int): Animal(name,age,"고양이"){
fun meow(){
println("야옹야옹")
}
}
결과값 :
저는 개 별이이고, 5살입니다.
저는 개 별이이고, 5살입니다.
멍멍
저는 고양이 루이이고, 1살입니다.
야옹야옹
継承ルールReference
この問題について([Kotlin] Class & Inheritance), 我々は、より多くの情報をここで見つけました https://velog.io/@jiyoon/Kotlin-Classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol