Class

0

코틀린

목록 보기
9/11

클래스 선언

코틀린의 클래스는 전역이기 때문에 패키지 내에서만 적용되는 디폴트 클래스가 없다.


클래스는 Property 와 Method로 이루어져있다.

class Human{
	val name = "joyce" // property 정의
	fun eatingCake(){
		println("Yummu")
	}
}

fun main()
	val human = Human() // 객체 생성 과정
	human.eatingCake() // 객체가 클래스 내부의 메소드 활용과정

객체 생성 과정

만약에 프로퍼티를 객체 생성할때 정의하고 싶다면?

constructor를 이용한다.

class Human /*생략가능*/constructor(name : String){
//class Human (val name : "Annonymous") name을 정의하는것.//
	fun eatingCake(){
		println("Yummu")
	}
}

fun main()
	val human = Human("TS") // 객체 생성시 name을 넣어주면 객체 생성과 동시에 프로퍼티가 정의된다.
	val stranger = Human() // Annonymous
	human.eatingCake() 

코드 블록을 사용하고싶으면 init을 이용하자.

class Human constructor(name : "Annonymous"){
	init {
		println("New human has been born!!"
	}

	fun eatingCake(){
		println("Yummu")
	}
}

fun main()
	val human = Human("TS") // 객체 생성시 name을 넣어주면 객체 생성과 동시에 프로퍼티가 정의된다.
	val stranger = Human() // Annonymous
	human.eatingCake()

//결과값 
New human has been born!! 
New human has been born!!
Yummu
class KotlinSample 
	constructor (val a : String){
	
	constructor(a:String, b:String): this(a)

fun print(){
	println("Out $a, $b"
}//b의 변수를 지정해주지 않았기 때문에 에러. 
//선언 방식.

코틀린은 1개의 primary constructor이 만들어지고

class Kotlinsample constructor(val a : string)

여러개의 secondary constructor이 만들어 질 수 있다.

class Human (val name : String " Annonymous"){
	//age라는 부생성자 생성, this(name)으로 주생성자 위임
	constructor(name : String,age : Int): this(name){
		println("my name is${name}, ${age}years old")
	}

	init{
		println("New humans has been born!!")

	}
	fun eatingCake(){
		println("Yummy")

	}

}

fun main(){

	val mom = Human("JS",59)

	println("this human's name is ${stranger.name}")
}

// New humans has been born!!
// my name is JS , 59 years old
class Sample(val name : String){
	init{
		println("name $name")
			}
// name 만 출력
	constructor(name:String, name2:String):this(name)
		println("name $name name $name2")
}
//

1개의 Primary Consructor

N개의 secondary constructor

secondary constructor를 위해서는 primary constructor을 호출해야한다.

primary constructor을 위한 init{} block을 제공한다.

primary constructor와 함께 오는 변수는 전역이다.

primary constructor은 디폴트값을 정의할 수 있다.


Class : 틀

Object : 틀에 의해 생성된 객체

Instance : 생성된 객체를 지칭하는 단어

profile
러닝커브를 따라서 등반중입니다.

0개의 댓글