Kotlin

Class

본이qq 2022. 9. 1. 20:15

-자바는 프로그램 자체도 클래스입니다. 클래스로 프로그램의 실행과 자료들이 모두 관리됩니다. ->객체 지향 프로그램

-객체 지향 프로그램의 반대개념이 구조화프로그램입니다. 이는 함수 중심으로 프로그램의 시작과 끝이 관리됩니다

-코틀린은 자료들은 클래스로, 프로그램 시간과 끝 관리는 함수로 병행하여 운용되는 형태입니다.

 

-생성된 클래스 형태로 객체를 생성합니다.

 자바문법: 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