본문 바로가기

전체 글60

[Swift] 상속 상속 상속의 개념과 키워드 Swift에서 상속(Inheritance)은 클래스(Class) 간에 코드 및 속성을 공유하는 메커니즘을 제공한다. 상속은 기존 클래스에서 새로운 클래스를 만들고, 기존 클래스의 특성(속성과 메서드)을 재사용하면서 새로운 기능을 추가할 수 있도록 해준다(서브 클래싱). 장점 코드 재사용성: 기존 클래스의 특성을 재사용하여 중복을 피하고 유지보수성을 높일 수 있다. 계층 구조: 부모 클래스와 이를 상속받는 자식 클래스 간에 계층 구조를 형성하여 다양한 수준의 추상화와 분류를 가능하게 한다. 키워드 override 부모 클래스에서 상속받은 메서드, 속성 또는 서브스크립트를 자식 클래스에서 다시 정의할 때 사용된다. 자식 클래스에서 부모 클래스의 메서드를 재정의하여 새로운 구현을 제.. 2023. 12. 7.
[Swift] 클래스, 구조체, 열거형 클래스, 구조체, 열거형 클래스 (Class) 클래스는 프로퍼티(Property)과 메서드(Method)로 구성 프로퍼티(Properties): 프로퍼티는 클래스, 구조체, 또는 열거형 안에 있는 변수 또는 상수를 나타낸다. 클래스의 속성으로 객체의 상태를 저장하거나 제공한다. 이러한 상태는 클래스의 인스턴스가 가질 수 있는 고유한 데이터를 나타낸다. 프로퍼티는 저장 프로퍼티(Stored Properties)와 계산 프로퍼티(Computed Properties)로 나뉜다. 저장 프로퍼티: 값을 저장하고, 인스턴스의 일부로서 그 값을 유지한다. 계산 프로퍼티: 특정한 계산을 통해 값을 반환하며, 값을 저장하지 않고 필요할 때마다 새로 계산된다. 메서드(Methods): 메서드는 클래스, 구조체, 또는 열거.. 2023. 12. 7.
[Swift] 객체 지향 객체 지향 객체 지향 프로그래밍 (Object-Oriented Programming) 줄여서 OOP라고 부른다. 프로그램을 어떻게 설계해야하는 지에 대한 방법론 중 하나(패러다임) 각 객체와 그 객체들간의 관계를 설계하는 것 객체 지향으로 짜여진 프로그램은 여러 객체들의 모임 각 객체는 메시지를 주고 받을 수 있으며, 데이터를 처리할 수 있다. 📘 OOP 특징 추상화 (Abstraction): 추상화는 객체 지향 프로그래밍의 핵심 개념 중 하나 복잡한 시스템을 단순화하여 중요한 부분을 강조하고 불필요한 부분을 숨기는 것을 의미 클래스나 프로토콜을 통해 데이터와 동작을 추상화하여 필요한 정보만을 노출시키는 것을 포함 캡슐화 (Encapsulation): 객체의 상태(데이터)와 행동(메서드)를 하나로 묶고,.. 2023. 12. 7.
[Swift] 배열, 세트, 딕셔너리 배열, 세트, 딕셔너리 배열 (Array) 동일한 타입의 요소들을 저장하는 순서가 있는 컬렉션 배열은 특정 요소의 인덱스를 사용하여 접근하고 수정할 수 있으며, 배열의 크기는 동적으로 조절된다. 인덱스(index)는 0 부터 시작한다. 처음에 선언할 때(초기화할 때) 배열의 길이를 미리 지정하지 않아도 된다. 배열 생성하기 // 배열 생성하기 // 1. 타입 추론으로 생성하기 var array1 = [1, 2, 3] var array2 = [] // error! 타입 추론으론 빈 배열 생성 불가 // 2. 타입 Annotation으로 생성하기 var array3: [Int] = [1, 2, 3] var array4: [Int] = [] //빈 배열 생성 // 3. 생성자로 생성하기 var array5 =.. 2023. 12. 7.
[Swift] 스택, 큐 스택, 큐 큐 (Queue) 큐와 스택은 데이터에 대한 개념이다. Swift에서는 따로 큐와 스택을 지원하지 않으면 Array 등을 이용해서 직접 구현할 수 있다. First-In-First-Out (FIFO) 먼저 들어온 값을 먼저 내보내는 구조 /* 란? 제네릭이라는 것인데, 하나의 타입으로 국한되지 않고 타입에 유연하게 코드를 작성할 수 있는 기능 */ // struct - 내부 속성들을 감싸고 있는 틀 struct Queue { private var queue: [T] = [] public var count: Int { return queue.count } public var isEmpty: Bool { return queue.isEmpty } public mutating func enqueue(.. 2023. 12. 6.
[Swift] 옵셔널 옵셔널 옵셔널 (Optional) 값이 없을 수 있는 상황에서 옵셔널(Optional)을 사용 옵셔널은 물음표 ? 로 나타낸다. (타입 어노테이션) 옵셔널은 두 가지 가능성을 나타낸다. 값이 있고 옵셔널로 래핑(wrapping)해놓은 값을 언래핑(unwrapping)하여 해당 값에 액세스할 수 있다. 값이 전혀 없다. 옵셔널 타입끼리의 연산은 불가능 // 축약 타입 표현 var serverResponseCode: Int? = 404 // 정식 타입 표현 var myPetName: Optional = "멍멍이" func pay(with card: String?) { // 구현 코드 } // 옵셔널 타입끼리의 연산은 불가능 var num1: Int? = 4 var num2: Int? = 2 num1 + nu.. 2023. 12. 6.