[iOS][Swift] 객체 지향 프로그래밍, 클래스, 상속, 구조체

Jay·2023년 7월 19일
0

iOS

목록 보기
3/47

1. 객체 지향 프로그래밍

Swift는 객체 지향 프로그래밍 언어입니다. 객체 지향 프로그래밍은 프로그램을 객체들의 모임으로 보고, 객체 간의 상호작용으로 이해하는 프로그래밍 패러다임입니다. 이 패러다임은 상속, 캡슐화, 다형성 등의 주요 개념을 포함하고 있습니다.

2. 클래스(Class)

클래스는 객체를 생성하기 위한 템플릿입니다. 클래스는 메서드(함수)와 속성(변수, 상수)으로 구성됩니다.

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!"

3. 상속(Inheritance)

클래스는 다른 클래스로부터 속성과 메서드를 상속받을 수 있습니다. 이를 통해 코드 재사용과 객체 간의 계층적 관계를 정의할 수 있습니다.

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!"

4. 구조체(Struct)

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"
profile
Junior Developer

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

소중한 정보 감사드립니다!

답글 달기