학습내용

타입/ 인스턴스/ 프로퍼티/ 메서드

A type = a blueprint

An instance = a house (you built from the blueprint)

블루프린트는 각 집의 features (특징)과 behaviors (행동)을 보여줌.

Features (특징) -> properties

Behaviors (행동) -> methods

e.g. 지하철 매표 자판기

Features (= properties)

  • 색깔
  • 크기

Behaviors (= methods)

  • 돈 출력
  • 표 출력

블루프린트는 각 집의 features (프로퍼티)와 behavior (메서드)를 보여줌.

In a type, features are called properties

And behaviors are called methods.

Properties

Var color = green

Var bedrooms = 2

a property = a variable defined inside a type

Methods

runWater()

turnLightsOn()

a method = a function defined inside a type

각 집의 Garage door를 연다고 치자

herHouse/ myHouse/ hisHouse

어느 집에서, 뭘 할지를 얘기해줘야 함

myHouse.openGarageDoor()

myHouse = the instance (a specific house)

openGarageDoor() = the method (from the myHouse instance)

Structures (구조체) and Classes (클래스) vs. Enumerations (열거형)

구조체와 클래스는 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용

구조체 vs. 클래스

공통점

  • 인스턴스를 만들어내는 문법이 매우 유사하다.

차이점

  • 구조체 (& 열거형)은 값타입/ 클래스는 참조 타입
  • 클래스는 구조체와 달리 상속받을 수 있다.

값 타입이란? 또 하나의 복사본 (또 하나의 인스턴스)를 만들어내는 것

겉으로 보이는 결과물은 같아 보일지는 몰라도!

클래스는 참조 타입이라서 변수를 만들때 새로운 카피본이 생겨나는 것이 아니라

이미 존재하는 인스턴스에 대한 레퍼런스가 이용됨

값타입은 새로운 인스턴스의 공간을 만들어주는 것이라면

참조타입은 그 값이 어디있는지? 위치만 알려주는 것

새로운 공간을 따로 만들어내지 않고.

Enumerations (열거형)

  • 관련있는 값을 가진 그룹에 대해 공통된 타입을 정의함
  • enum의 케이스에서는 각 value가 어떤 타입이든 서로 다른 타입의 케이스와 함께 저장될 수 있음

Structures (구조체) and Classes (클래스)가 비슷하다면 무엇을 사용할지 어떻게 결정할 것인가?

구조체를 언제 사용할지? <애플 가이드라인>

profile
iOS Developer

0개의 댓글