티스토리 뷰
Kotlin #8. 클래스의 기본 구조
- 클래스는 고유의 특징적인 값을 담는 속성과 기능을 구현한 함수로 이루어져 있음
- 클래스는 인스턴스를 만드는 틀
- 인스턴스란? 클래스를 이용해서 만들어내는 서로 다른 속성의 객체를 지칭하는 용어
- 코틀린은 객체지향 언어를 기반으로 함수형 언어의 장점을 흡수한 언어.
- 따라서 객체지향언어의 기본인 클래스를 이해하는 것이 중요하다.
fun main() {
var a = Person("박보영", 1990)
var b = Person("전정국", 1997)
var c = Person("장원영", 2004)
a.introduce()
b.introduce()
c.introduce()
}
class Person (var name: String, val birthYear: Int) {
fun introduce(){
println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다.")
}
}
Kotlin #9. 클래스의 생성자
- 생성자 ( constructor)란? 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
- 생성자를 호출하면 클래스에 인스턴스를 만들어 반환할 수 있음
- 생성자는 인스턴스의 속성을 초기화, 인스턴스 생성시 구문을 수행하는 역할을 함 (init 함수를 통해 수행 가능)
- Init 함수는 파라미터나 반환형이 없는 특수한 함수로써, 생성자를 통해 인스턴스가 만들어질 때 호출되는 함수
- *This는 인스턴스 자신의 속성이나 함수를 호출하기 위해 클래스 내부에서 사용되는 키워드
class Person (var name: String, val birthYear: Int) {
init {
println("안녕하세요, ${this.birthYear}년생 ${this.name}입니다.")
}
}
- 클래스를 만들때 기본으로 선언하는 기본생성자와 필요에 따라 추가적으로 선언하는 보조 생성자를 만들 수 있음.
- 보조생성자는 constructor라는 키워드를 사용. 보조생성자를 만들때는 반드시 기본 생성자를 통해 속성을 초기화 해야함
- 보조생성자가 기본생성자를 호출하게 하려면 콜론을 붙인 후 this라는 키워드를 사용하고, 기본 생성자가 필요로 하는 파라미터를 괄호안에 넣으면 됨
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("보조 생성자가 사용되었습니다.")
}
}
출처 : 디모의 Kotlin 강좌를 통해 학습한 내용을 정리했습니다.
'개발지식 > TIL (Today I learned)' 카테고리의 다른 글
Kotlin 기초 문법 (6) - 클래스의 상속 (0) | 2021.04.13 |
---|---|
안드로이드 - Activity 생명주기 (Life Cycle) (0) | 2021.04.06 |
Kotlin 기초 문법 (4) - 반복문, 증감연산자, 흐름제어, 논리연산자 (0) | 2021.04.05 |
Kotlin 기초 문법 (3) - 조건문, 비교연산자 (0) | 2021.04.05 |
Kotlin 기초 문법 (2) - 형변환, 배열, 타입추론, 함수 (0) | 2021.04.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- cocoapods
- disposeBag
- 카카오인턴십
- 안드로이드
- SwiftUI
- 코코아팟
- ios
- blendshapes
- DispatchQueue
- Lottie
- infallible
- C++
- ARKit
- boj
- Neo4j
- Swift
- 알고리즘
- Reactivex
- 프로그래머스
- 백준
- GraphDB
- Swift unowned
- blendshape
- rxswift
- Kotlin
- coreml
- Swift weak
- SWEA
- rxswift6
- 백준온라인저지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함