Instance Method 클래스 , 구조체 , 열거형 내 선언되는 함수이며, 이러한 메서드는 특정한 인스턴스에 속하는 동작이나 기능을 표현한다. 해당 인스턴스의 속성에 엑세스 하거나 상태를 변경하는데 사용 특정 인스턴스에 속해있음 : 이 메서드를 호출할 땐 해당 인스턴스의 이름을 사용하여 호출 인스턴스 속성에 접근 : 인스턴스 메서드는 동일한 인스턴스 내 속성에 접근할 수 있다. (self 키워드를 활용하여) 인스턴스 상태 변경 : 인스턴스 메서드는 해당 인스턴스의 상태를 변경할 수 있다. class MyClass { var property: Int init(property: Int) { self.property = property } func instanceMethod() { //인스턴스 메서드의 ..
계산 속성 (Computed Properties) 계산 속성은 클래스 , 구조체 , 열거형 내 값을 계산하여 반환하는 속성이다. 이 속성은 실제로 값을 저장하지 않고 속성에 접근할 때 마다 특정한 코드 블록(getter) 을 실행하여 값을 계산 , 반환한다. 계산 속성은 저장 속성과는 달리 값을 직접 저장하지 않지만, 값을 계산하기 위한 연산을 수행하는 코드 블록을 제공한다. (getter) 계산 속성은 값을 동적으로 생성하거나 계산할 때 유용하다. var propertyName: PropertyType { get { // 속성의 값을 계산하고 반환하는 코드 } set(newValue) { // 속성에 새 값을 할당하거나 다른 작업을 수행하는 코드 } }get 블록은 속성에 접근할 때 실행되며, 값을 반..
변수 저장 속성 클래스나 구조체에 값을 저장 하는데 사용하는 속성이며, 이러한 속성은 해당 클래스 혹은 구조체의 인스턴스에 속하며, 인스턴스가 생성될 때마다 메모리에 할당된다. 변수 저장 속성은 ‘var’ 를 사용 class Person { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } let person = Person(name: “John”, age: 30) person.age = 35 // 나이를 변경할 수 있다. (30 → 35)상수 저장 속성 클래스 또는 구조체 내에서 값을 저장하는데 사용 되는 속성이며, 한번 할당되면 그 값을 변경 할 수 없는 속성이다. 이 속성은 초..
값 형식(Value Type)과 참조 형식(Reference Type) 값 형식 - Structure , Enumeration , Tuple 참조 형식 - Class , Closure 값 형식은 원본에 영향을 미치지 않지만 참조 형식은 원본에 영향을 미친다. 객체지향 프로그래밍에서는 대부분 참조형식으로 구현한다. 상대적으로 적은 데이터를 구현하고 상속이 필요하지 않으면 값 형식을 사용한다. 값이 전달되는 시점에 복사본이 생성되어야 하는 경우에도 값 형식을 사용한다. 참조를 전달해야 하거나 상속을 해야하는 경우는 Class를 사용한다. 값 형식 struct Point { var x: Int var y: Int } var point1 = Point(x: 5, y: 10) var point2 = point1 ..
Structure 값 타입이며 , 구조체 변수를 새로운 변수에 할당할 때 마다 새로운 구조체가 할당되는 특징을 가지고 있다. 즉, 같은 구조체를 여러개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않는다. Class 참조 타입이며, ARC로 메모리를 관리한다. 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면, 할당한 모든 변수에 영향을 준다. 상속이 가능하며, 타입 캐스팅을 통해 클래스의 인스턴스 타입을 확인할 수 있다. deinit 을 사용하여 클래스 인스턴스의 메모리 할당을 해제 할 수 있다. Structure 와 Class 의 공통점 값을 저장할 프로퍼티를 선언할 수 있습니다. 함수적 기능을 하는 메서드를 선언할 수 있습니다. 내부 값에 . 을 사용하여 접근할..
enum 이란 열거형으로써 서로 연관된 특성을 갖는 형태끼리 집합을 구성할 수 있다. 코드를 간결하고 가독성 있게 작성할 수 있다. 또한, String형식은 heap에 저장되지만, enum은 값의 형태로 Stack 으로 성능면에서 향상된다. enum Asia { case korea case japan case china } 위 와 같이 각 나라별로 손 쉽게 집합 형식으로 묶어줄 수 있다. enum Asia: String { case korea = "대한민국" case japan = "일본" case china = "중국" } var korea = Asia.korea.rawValue print(korea) // "대한민국"enum 은 이런식으로 rawValue 를 사용하여 값을 표현 할 수도 있다.