본문 바로가기

카테고리 없음

[Kotlin4-2] 객체지향 프로그래밍

객체 지향 프로그래밍이란 프로그램에서 사용되는 여러 데이터나 기능을 객체로 묶어서 관리하는 프로그래밍 기법이다.
객체는 매개체 하나에 대한 정보와 기능을 담고 있는 프로그램 요소이다.
객체 지향 프로그래밍 (OOP, Object Oriented Programming)
▶프로그램이 가져야 하는 다양한 기능들이나 변수들을 객체라는 단위로 나눠서 관리하는 기법
▶객체지향 프로그래밍 기법에서는 객체를 만들기 위한 클래스를 설계하고 클래스를 통해 필요한 만큼의 객체를 생성한다
▶각 객체들은 서로 독립적인 존재이며 하나의 객체에는 그 객체가 가져야할 모든 변수(맴버 변수)와 모든  함수(메서드)를 가지고 있어야 한다.
객체의 특징

▶ 매개체 하나의 정보를 관리하기 위해서는 객체 하나가 필요하며 관리하고자 하는 매개체의 수 만큼 객체를 생성해야 한다.
▶ 객체는 독립적으로 관리되며 서로에 대해 관여하지 않는다.
클래스

▶ Kotlin에서 객체는 자바와 동일하게 클래스를 설계하고 이를 통해 생성한다.
▶ 클래스에 정의한 변수와 메서드(함수)의 구조대로 객체가 생성되며 같은 형태의 객체가 필요하다면 같은 클래스로 객체들을 생성하면 된다.

class 클래스명 {

}
fun main(){
    // 객체를 생성한다
    // 객체가 생성되면 생성된 객체는 메모리에 자리를 잡는다
    // 생성된 객체를 출력하면
    // 클래스이름@객체의일렬번호 형태로 출력된다
    println(TestClass1())
    
    val obj1:TestClass1 = TestClass1()
    println("obj1 : $obj1")

    val obj2 = TestClass2()
    println("obj2 : $obj2")

    val obj3 = TestClass3()
    // 객체가 가지고 있는 맴버 변수나 맴버 메서드를 사용하려면
    // . 연산자를 사용한다.
    obj3.a1 = 100
    obj3.a2 = 200
    println("obj3.a1 : ${obj3.a1}")
    println("obj3.a2 : ${obj3.a2}")

    obj3.testMethod1()
    obj3.testMethod2()
}

// 클래스를 정의한다
// class 클래스 이용
class TestClass1{

}

// 코틀린에서는 클래스 내부에 코드가 없다면 { } 생략이 가능하다.
class TestClass2

// 객체가 가지는 변수를 객체의 멤버 변수라고 부른다.
// 객체가 가지는 함수를 객체의 멤버메서드라고 부른다.
class TestClass3{

    //멤버 변수
    var a1 = 0
    var a2 = 0

    //멤버 메서드
    fun testMethod1(){
        println("testMethod1")
    }

    fun testMethod2(){
        println("testMethod2")
    }
}

출력결과