[Swift 기초] - 클래스의 선언과 사용

justdotheg·2023년 10월 4일
0
post-thumbnail

목차
1. 클래스를 선언하는 방법
2. 클래스의 인스턴스 생성하기
3. 클래스의 생성자를 활용해 변수 선언해보기

1. 클래스를 선언하는 방법

📌 클래스를 사용하는 큰 목적 중 하나는 "재사용"을 위해서다.

1.1. 선언 예시

1.2. 네이밍 룰

1) 클래스 이름은 대문자로 시작한다.

ex) class Circle

2) 변수, 상수, 함수는 소문자로 시작한다.

ex) var radius

1.3. 클래스의 구성

1) 속성(property) - 변수, 상수
2) 메서드(method) - 함수
3) 생성자(constructor) - 2번 메서드에 포함됨

1.4. 주의사항

1) 클래스는 property의 초기값을 선언하지 않으면 에러가 발생한다.

class Circle{
	var radius = 10.0 //✅ Ok
}
class Circle{
	var radius //🚫 Error 
}

2) 변수를 초기화하지 않고 선언만 하고 싶다면 init() 생성자 함수를 통해 값을 초기화 하면 된다. (단, 자료형까지는 선언해줘야 에러가 발생 x)

class Circle{
	var radius //🚫 Error 
    
	init() {    
		radius = 10.0
	}

}
class Circle{
	var radius: Double //✅ Ok
    
	init() {    
		radius = 10.0 
	}

}

2. 클래스의 인스턴스 생성하기

2.1. 생성자

구조체 또는 클래스에 생명을 불어 넣어주는 마법의 함수이다.

💁🏻‍♂️ 즉, 구조체 또는 클래스의 구성, 틀에 맞는 인스턴스(객체)를 생성해주는 함수이다.

✅ 키워드 - init
✅ 기본 생성자 - 클래스 안에서 init을 따로 선언하지 않아도 init을 호출해 인스턴스 생성이 가능하다.

init() {
	
}

✅ 생성자 응용

1) 매개변수 없이 기본 생성자를 오버로딩

init() {
	self.name = "just do the G"
}

📌 self - 클래스 인스턴스 자기자신을 가리킨다.

2) 인스턴스 생성시 인자를 받아 초기화하도록 기본 생성자를 오버로딩

init(name : String) {
   self.name = name
}

2.2 인스턴스 생성

📌참고. swift 공식 문서에서는 '오브젝트', '객체'라는 표현보다 '인스턴스' 라는 표현을 사용한다.

✅ 클래스 예시 - Circle1

✅ 클래스 예시 - Circle3

✅ 인스턴스 생성

✏️ 생성자 init 함수를 호출해 Circle1의 인스턴스를 생성하였다.
✏️ Circle1의 경우 클래스 안에서 init을 따로 선언하지 않았지만 init을 이용해 기본 생성자를 호출하여 생성 가능하다.

📌 보통은 생성자 함수 init을 통해 생성하지 않고 circle 방식과 같이 소괄호만으로 생성한다.

✏️ CircleB의 경우 init을 생략하고 매개변수가 radius인 생성자를 호출하여 초기화하였다.
➡️ circleB를 출력해보면 radius를 10.0으로 초기화했으므로 10.0이 출력된다.

✏️ CircleC의 경우 기본 생성자를 호출하였다.
➡️ circleC를 출력하면 radius를 0으로 초기화하는 기본 생성자를 호출했으므로 0이 출력된다.

3. 클래스의 생성자를 활용해 변수 선언해보기

변수, 상수를 선언하는 방법은 2가지가 있다.

3.1. 리터럴(값)를 통해 생성하기

  • 65, "Hello", [2, 4, 6, 8]

3.2. 생성자 함수를 통해 변수, 상수를 선언하기

자료형 클래스의 init 생성자 함수를 호출해 변수와 상수를 선언할 수 있다.

📌 너무 길면 init을 생략할 수 있다.

  • 65

  • "Hello"

  • [2, 4, 6, 8]

0개의 댓글