Swift는 객체 지향 프로그래밍 언어입니다. 객체 지향 프로그래밍은 프로그램을 객체들의 모임으로 보고, 객체 간의 상호작용으로 이해하는 프로그래밍 패러다임입니다. 이 패러다임은 상속, 캡슐화, 다형성 등의 주요 개념을 포함하고 있습니다.
클래스는 객체를 생성하기 위한 템플릿입니다. 클래스는 메서드(함수)와 속성(변수, 상수)으로 구성됩니다.
class Dog {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func bark() {
print("\(name) says woof!")
}
}
let myDog = Dog(name: "Fido", age: 4)
myDog.bark() // Prints: "Fido says woof!"
클래스는 다른 클래스로부터 속성과 메서드를 상속받을 수 있습니다. 이를 통해 코드 재사용과 객체 간의 계층적 관계를 정의할 수 있습니다.
class Poodle: Dog {
var color: String
init(name: String, age: Int, color: String) {
self.color = color
super.init(name: name, age: age)
}
override func bark() {
print("\(name) says yap!")
}
}
let myPoodle = Poodle(name: "Molly", age: 2, color: "White")
myPoodle.bark() // Prints: "Molly says yap!"
Swift에서 구조체(struct)는 데이터를 그룹화하는 복합 데이터 타입입니다. 클래스와 유사하게, 구조체를 사용하여 새로운 타입을 만들 수 있고, 이 타입은 프로퍼티와 메서드를 가질 수 있습니다. 하지만, 구조체는 값 타입(value type)이고 클래스는 참조 타입(reference type)입니다.
struct Point {
var x: Int
var y: Int
}
var pointA = Point(x: 0, y: 0)
var pointB = pointA // pointB is a copy of pointA
pointB.x = 5
print(pointA.x) // Prints: "0"
print(pointB.x) // Prints: "5"
소중한 정보 감사드립니다!