-자바는 프로그램 자체도 클래스입니다. 클래스로 프로그램의 실행과 자료들이 모두 관리됩니다. ->객체 지향 프로그램
-객체 지향 프로그램의 반대개념이 구조화프로그램입니다. 이는 함수 중심으로 프로그램의 시작과 끝이 관리됩니다
-코틀린은 자료들은 클래스로, 프로그램 시간과 끝 관리는 함수로 병행하여 운용되는 형태입니다.
-생성된 클래스 형태로 객체를 생성합니다.
자바문법: TestClass1 obj1 = new TestClass1()
코틀린 : val 참조변수이름 : 클래스이름 = 클래스이름()
class TestClass1{
} //비어있는 클래스의 생성
class TestClass2 //비어있는 클래스를 생성 & {} 생략
//비어있는 클래스를 생성한다면 {}를 생략할 수 있습니다.
val obj1:TestClass1 = TestClass1() //정의된 클래스의 객체 생성
val obj2:TestClass2 = TestClass2() //new를 쓰지 않아도 새공간이 할당됩니다
class TestClass3{
val a1:Int = 0 //getter만 있는 val은 밑줄이 없습니다.
var a2:Int = 0 // getter와 setter가 모두 생성되는 var변수는 밑줄이 표시됩니다.
//멤버 변수 : 멤버변수는 var 또는 val로 자유롭게 생성이 가능합니다.
//자료형은 초기값에 따라 결정되도록 생략 가능합니다.
//코틀린 클래스에서 생성된 멤버변수는 기본적으로 private으로 생성됩니다.
//멤버 메서드
fun testMethod1(){
println("testMethod1")
}
fun testMethod2(){
println("testMethod2")
}
}
val obj5 = TestClass3()
-자료형이 대입되는 객체의 자료형에 의해 명확히 결정되므로 변수 옆에 :TestClass3는 생략됩니다.
println("obj5.a1 : ${obj5.a1}")
println("obj5.a2 : ${obj5.a2}")
obj5.a2 = 200
println("obj5.a2 : ${obj5.a2}")
//obj5.a1 = 100 //에러 : setter가 없는 a1변수는 값을 변경할 수 없습니다. (val 변수이므로)
'Kotlin' 카테고리의 다른 글
Extends (상속) (0) | 2022.09.01 |
---|---|
Constructor (생성자) (0) | 2022.09.01 |
Array (배열) (0) | 2022.09.01 |
Loop (반복문) (0) | 2022.09.01 |
NoNameFunction(익명함수) (0) | 2022.09.01 |