반응형

[Swift 입문] 접근제어자


1. 접근제어

접근제어는 앱개발 뿐만 아니라, 프로그래밍에 있어서 기본이 되는 부분입니다.
특히, 내가만든 프로그램을 남들에게 공유하겠다는 목표를 갖고있다면, 필수적인 요소이죠.

접근제어는 프레임워크나 클래스등에서 꼭 필요한 부분만을 외부로 공개한다는 것이 핵심입니다.

다시말해 외부 접근자는 프레임워크나 클래스의 접근에 있어서 필요한 부분만을 보기 때문에 더욱 쉽고 올바르게 접근할 수 있고, 내부 설계자는 외부로 노출하기 꺼려되는 정보를 차단할 수 있다는 장점이 있습니다.

접근 수준

내부 접근여부

외부 접근여부

open

접근가능 (O)

접근가능 (O)

public 

접근가능 (O)

접근가능 (X)

internal (기본값 )

접근가능 (O)

접근불가 (X)

fileprivate 

같은 파일 내 접근가능 (X)

접근불가 (X)

private

접근불가 (X)

접근불가 (X)

( O, X 는 상속 및 Override의 가능 여부 )



2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 1. 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 2. Project 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 3. 에뮬레이터로 앱 실행하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 4. 앱 아이콘 설정하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 5. LaunchScreen 만들기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 6. Swift 문법 알아보기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 7. Swift 문법 알아보기 (배열, 딕셔너리 등)

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 8. Swift 함수 정의하기

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) 줄바꿈 없는 print

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) Call by reference ( 참조에 의한 전달 )

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 9. Class 만들기 (생성, 상속)

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 10. 열거형 Enum


반응형
반응형

[Swift 입문] 열거형(Enumeration) 사용하기


사실 남들이 짜둔 C코드에서 열거형을 많이 보았지만, 제대로 사용해본적이 없습니다...

아직 미숙한점이 많다는 것을 느끼는 부분이네요... ㅠㅠ


1. 열거형 만들기

열거형은 새로운 자료형을 선언해준다고 생각하시면 좋을꺼같습니다.



간단하쥬?


2. RawValue

아래와같이 열거형에 값을 넣어주는 것도 가능합니다.

그리고 이 값은 rawValue를 통해서 확인이 가능합니다.

Int형 뿐만 아니라 원하는 자료형으로 쓸 수 있으니, 잘만 쓴다면 편하겠죠?



2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 1. 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 2. Project 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 3. 에뮬레이터로 앱 실행하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 4. 앱 아이콘 설정하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 5. LaunchScreen 만들기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 6. Swift 문법 알아보기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 7. Swift 문법 알아보기 (배열, 딕셔너리 등)

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 8. Swift 함수 정의하기

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) 줄바꿈 없는 print

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) Call by reference ( 참조에 의한 전달 )

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 9. Class 만들기 (생성, 상속)


반응형
반응형

[Swift 입문] Class 만들고 사용해보기


Swift는 볼수록 조금 규칙이 엄격한 파이썬이라는 느낌이 있네요. 

1. Class 만들기

Class를 표현할 때, 많이 사용되는 표현이 제품의 '틀'이라는 말을 씁니다.

예를들어 자동차의 번호판을 만드는 공장이 있다면, 여기서 class는 철판에 번호를 찍고 색을 입히는 기계일 뿐이지 번호판이 아닙니다.

번호판을 만들기전에, 용도에 따라 번호판의 색은 어떤것으로 할지, 숫자는 어떤게 들어가고, 문자는 어떤게 들어갈지 미리 전해서 번호판을 만드는 기계(Class)에 알려줍니다. 그 과정이 아래에 init이라는 함수로 초기값을 설정해 주는 부분이라고 할 수 있습니다.

그리고 class가 만들어낸 결과물이 아래에서 my_car1, my_car2라는 부분으로, 이게 하나의 번호판이 되는거겠죠.

죄송합니다. 설명은 번호판, 실제 코드는 자동차라니... ㅠㅠ



위에서 이런저런말을 하는 이유는 Car라는 클래스는 Car.id와 같은 방법으로 불러와서 값을 확인하는 용도가 아니라는 것을 말씀드리고 싶었기 때문입니다.


번호판을 만드는 기계가 어떻게 생겼는지가 뭐가 중요할까요? 우리는 만들어질, 그리고 만들어진 번호판에만 집중하도록 합시다.



2. 클래스의 상속

처음 자바라는 언어에서 상속을 봤을 때, 멘붕했던 기억이 나네요...

상속은 기존에 존재했던 클래스를 가져와서 새로운 기능을 추가하거나 기존의 내용을 수정하여 사용하는 방식이라고 생각하면 좋을꺼 같습니다.


위 코드에대해서 간단하게 설명하자면 아래와 같습니다.


부모클래스 : Game

자식클래스 : Phone_game

override : 부모 클래스에서 정의된 내용을 수정

super : 부모 클래스에서 사용된 변수를 의미


지금 눈으로 볼때 쓸때없어보이고 어렵기만 할 수 있지만, 코드를 예쁘게 짜기 위해서는 필수이니 꼭 기억해두고 응용합시다.



 추가) 구조체와의 큰 차이

구조체와 다르게 class는 객체를 참조하는 형태입니다. 클래스에 의해 만들어진 어떤 변수는 해당 객체의 주소값을 갖고있습니다.

따라서 
let car1 = Car()

let car2 = car1

과 같은 경우 car2와 car1는 동일한 객체를 참조합니다.


즉, car1의 내용을 변경하면 car2도 변경된다는 의미입니다.

추가) 소멸자

소멸자는 "deinit"를 사용합니다.

class가 역할을 다하고 메모리에서 사라질 때 수행됩니다.



2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 1. 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 2. Project 시작하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 3. 에뮬레이터로 앱 실행하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 4. 앱 아이콘 설정하기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 5. LaunchScreen 만들기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 6. Swift 문법 알아보기

2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 7. Swift 문법 알아보기 (배열, 딕셔너리 등)

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 8. Swift 함수 정의하기

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) 줄바꿈 없는 print

2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) Call by reference ( 참조에 의한 전달 )


반응형

+ Recent posts