클래스는 어떤 객체를 만들기 위해 프로퍼티와 메서드를 정의해놓은 틀입니다. 상속은 한 클래스에 정의된 프로퍼티와 메서드를 물려받는 것을 말합니다. 스위프트에서 상속이 가능한 것은 클래스와 프로토콜이며, 이번 포스팅에서는 클래스의 상속에 대하여 알아볼 것입니다. class SuperClass(){ func v(){} // 인스턴스 메서드 final func w(){} // 인스턴스 메서드.. 재정의 불가 class func y(){} // 타입 메서드 final class func z(){} // 타입 메서드.. 재정의 불가 static func x(){} // 타입 메서드.. 재정의 불가 } class SubClass: SuperClass { override func v(){} override class..
변수는 때로는 값을 갖고있지 않을 때도 있습니다. Optional은 변수의 값이 없을(=변수의 값이 nil 일) 가능성이 있다는 것을 암시하는 장치입니다. 변수명 뒤에 ?를 붙여서 옵셔널 타입 변수임을 명시할 수 있고, 옵셔널 타입 변수가 아니면 nil이 될 수 없습니다. Optional이 붙지 않은 변수에 nil을 대입하려고 시도하면 에러가 나타나며 프로그램이 동작하지 않습니다. 이를 통해 정상적이지 않은 코드가 생성되지 않도록 방지할 수 있습니다. var A : Int? = 1 var B = A //A와 B는 nil일 수도 있으며, 값 1을 가지고 있습니다. var C : Int? = 2 var D : Int = C // 오류 //C는 nil일 수도 있으며, 값 2을 가지고 있습니다. //D는 자료형..
클래스와 구조체는 함수나 자료형을 선언하고 사용하는 방식이 비슷해보이지만 몇 가지 차이점들이 존재합니다. 공통점 구조체와 클래스는 다른 자료형이나 타입들을 묶어서 하나의 새로운 타입으로 사용할 수 있습니다. 내부에 프로퍼티와 메서드를 정의할 수 있고 서로 문법이 유사합니다. 할당되는 영역 class 인스턴스를 생성할 때 Heap영역에 저장됩니다. struct 인스턴스를 생성할 때 Stack영역에 저장됩니다. 타입 class 클래스는 파라미터로 데이터 전달 시 객체를 가리키고 있는 주소를 복사하는 참조 타입입니다. 주소를 가져오기 때문에 원본에서의 변화가 복사본에서의 변화로 이어집니다. 물론 한 복사본의 변화도 원본이나 다른 복사본의 변화를 이끌어냅니다. Multi-threaded 환경에서 한 thread..
안녕하세요 Hani입니다. 이번 포스팅에서는 Object Oriented Programming(OOP), 객체 지향 프로그래밍에 대하여 알아보겠습니다. 객체 객체 지향 프로그래밍은 절차 지향 프로그래밍을 넘어, 프로그램을 객체들의 상호작용으로 해석합니다. 여기서 객체는 객체의 상태(State)와 객체가 할 수 있는 행동(Behavior)으로 구성됩니다. 상태와 행동을 다른 말로 각각 Property와 Method라고 합니다. 클래스 클래스는 객체를 생성하기 위해 정의된 설계도이며, 객체가 갖게 될 Property와 Method를 선언하는 공간입니다. 클래스라는 틀로 메모리에 찍어 객체를 만들 수 있는데, 이는 클래스의 인스턴스를 생성한다는 말과 동일합니다. 하나의 클래스로 서로 다른 객체들을 생성할 수 ..
- Total
- Today
- Yesterday
- 네트워크 유량
- 최단경로 문제
- MeTal
- 다익스트라 시간복잡도
- WWDC16
- 에드몬드 카프 알고리즘
- IOS
- 벨만포드 시간복잡도
- 벨만포드 알고리즘
- State Restoration
- observeOn
- 최단경로문제
- 최단경로 알고리즘
- CPU와 Memory
- CompositionalLayout
- 네트워크 플로우
- 강한 순환 참조
- 부스트캠프 6기
- Testable
- 포드 풀커슨 알고리즘
- HIG
- WWDC17
- WWDC21
- test coverage
- 최대 매칭
- 코딩대회
- 컴퓨터 추상화
- mach-o
- rxswift
- WWDC19
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |