Swift 입문 | 클래스 기본 | 클래스 이용

클래스를 실제로 사용하기 위해서는 해당 클래스를 바탕으로 “인스턴스"를 만들고 그 안에 속성과 메소드를 이용하는 방법을 이해하지 않으면 안된다.

인스턴스 생성

클래스에서 인스턴스를 생성하려면 해당 클래스명을 함수처럼 호출할 뿐이다. 예를 들어, “Abc"라고 하는클래스가 있었다면, 다음과 같이 인스턴스를 생성할 수 있다.

var obj:Abc = Abc();

인수에는 일반적으로 아무것도 지정하지 않다 (인스턴스 작성 시에 인수를 지정할 수 있다. 이것은 나중에 설명하겠다). 이런 식으로 클래스명의 함수를 호출하여 인스턴스를 생성할 수 있다.

속성 / 메소드 호출

속성과 메소드의 호출은 인스턴스를 얻은 변수 뒤에 점(.)으로 속성 및 메서드를 호출하도록 작성한다. 예를 들어, 클래스 Abc에 efg라는 속성 xyz라는 메소드가 있었다고 하면 이런 식으로 사용할 수 있다.

var obj:Abc = Abc();
var x = obj.efg; // efg 값을 추출한다
obj.efg = 〇〇; // efg 값을 변경한다
obj.xyz(); // xyz를 호출한다

이전에 Helo 클래스를 사용하는 예제를 보도록 하자.

import Cocoa

class Helo {
    var name = "Taro";
    
    func say(){
        print("Hello, " + name + "!");
    }
}

var obj:Helo = Helo();
obj.say();
 
obj.name = "Hanako";
obj.say();

여기에서는 Helo 인스턴스를 만들어 say 메소드로 메시지를 표시한다. 그 후에 인스턴스의 name 속성을 다시 변경하여 say를 호출한다.

인스턴스를 생성할때, 그 안에 클래스의 내용이 통째로 제공된다. 이는 여러 인스턴스를 만들 때마다 각 인스턴스마다 독립적으로 속성이 저장되는 것을 의미한다. 예를 들어, 이 예제라면 인스턴스마다 name 값은 다르게 설정할 수 있다. 그렇게 되면, 같은 Helo 클래스에서 만든 인스턴스이기에 say로 표시되는 메시지는 인스턴스마다 달라진다.