코틀린-안드로이드

3일차) 코틀린 문법-3

songyooho 2024. 4. 5. 19:10

클래스와 생성자

 

1. 클래스 

1)선언:  class 클래스명 {}

2)구성 멤버: 생성자, 변수, 함수, 클래스

=>클래스 내에 클래스 선언 가능

3)객체 생성 및 멤버 접근

<1>객체 생성: val/var 객체명 = 클래스명(전달인자)

=>ex) val user=User("kim")

<2>멤버 접근: 점을 찍어 접근

=>ex)user.someFun()

 

2.생성자

1)주생성자

<1>선언:class 클래스명 constructor(){...}

=>constructor생략가능(class 클래스명(){})

=>매개변수가 없으면 ()도 생략가능

=>주생성자 생성안할시 컴파일러가 매개변수없는 주생성자 자동생성

<2>매개변수: 필요에 따라 ( )부분에 name:String, count: Int 처럼 매개변수 넣기가능

<3>주생성자에 본문추가: init{...}으로 주생성자 중괄호 내에 추가해주면 된다. init을 안쓰면 오류발생

<4>주생성자 매개변수 사용:

(1)일반: 그냥 사용하면됨

(2)클래스 내 함수:매개변수를 "val/var 매개변수:타입" 으로 써줘야 사용가능

 

2)보조생성자

<1>선언:  constructor(매개변수){...}

<2>init없이 본문 적기 가능

<3>주생성자가 있는데 보조생성자도 있는경우:둘을 연결해 주어야 함.

=>겹치는 매개변수에 대하여 this를 사용

ex)          

class User(name:String){
	constructor(name:String, count:Int): this(name){...}
	...
}

여러개이면 this(a,b,c...)꼴로 구현

=>이러면 보조생성자 실행시 주 생성자도 실행됨.